当前位置: 首页 > news >正文

ELK日志系统:Elasticsearch + Logstash + Kibana 搭建教程

环境:OS X 10.10.5 + JDK 1.8

步骤:

一、下载ELK的三大组件

Elasticsearch下载地址: https://www.elastic.co/downloads/elasticsearch (目前最新版本:2.1.1)

Logstash下载地址: https://www.elastic.co/downloads/logstash (目前最新版本:2.1.1)

Kibana下载地址: https://www.elastic.co/downloads/kibana (目前最新版本:4.3.1)

下载后将其解压到某个目录即可,本文中的解压目录为:

~/app/elasticsearch-2.1.1

~/app/logstash-2.1.1

~/app/kibana-4.3.1-darwin-x64

注:这3个组件相互之间的关系及作用如下:

Logstash(收集服务器上的日志文件) --》然后保存到 ElasticSearch(搜索引擎) --》Kibana提供友好的web界面(从ElasticSearch读取数据进行展示)

 

二、启动elasticsearch

2.1

进入elasticsearch目录\bin

./elasticsearch

顺利的话,启动成功后,在浏览器里输入http://localhost:9200/ 应该能看到类似下面的输出:

 1 {
 2   "name" : "Atalanta",
 3   "cluster_name" : "elasticsearch",
 4   "version" : {
 5     "number" : "2.1.1",
 6     "build_hash" : "40e2c53a6b6c2972b3d13846e450e66f4375bd71",
 7     "build_timestamp" : "2015-12-15T13:05:55Z",
 8     "build_snapshot" : false,
 9     "lucene_version" : "5.3.1"
10   },
11   "tagline" : "You Know, for Search"
12 }

2.2 安装kopf插件

先按Ctrl+C停止elasticsearch,接下来准备安装插件,elasticsearch有大量插件资源,用于增加其功能,bin目录下,输入

./plugin list 可以查看当前安装的插件列表,我们刚刚全新安装,输出的是一个空列表,继续输入

./plugin install lmenezes/elasticsearch-kopf

将会联网安装kopf插件,安装完成后,再次用./plugin list确认下:

Installed plugins in /Users/yjmyzz/app/elasticsearch-2.1.1/plugins:
    - .DS_Store
    - kopf

如果输出上述类似,表明kopf安装成功。

然后重启elasticsearch,浏览器里输入http://localhost:9200/_plugin/kopf,将会看到类似下面的界面,可以很直观的看到elasticsearch的一些运行状况

点击看大图

以上操作都ok后,建议Ctrl+C关掉,改用nohup ./elasticsearch & 将其做为后台进程运行,以免退出。

 

三、logstash的启动与配置

3.1 新建索引配置文件

~/app/logstash-2.1.1/bin 下

mkdir conf

vi conf/logstash-indexer.conf

内容如下:

 1 input {
 2  file {
 3    path => ["/var/opt/log/a.log","/var/opt/log/b.log"]
 4  }
 5 }
 6 
 7 output {
 8   elasticsearch { hosts => ["localhost:9200"] }
 9   stdout { codec => rubydebug }
10 }

上面几个步骤的意思就是创建一个名为logstash-indexer.conf的配置文件,input{file{...}}部分指定的是日志文件的位置(可以多个文件),一般来说就是应用程序log4j输出的日志文件。output部分则是表示将日志文件的内容保存到elasticsearch,这里hosts对应的是一个数组,可以设置多个elasticsearch主机,相当于一份日志文件的内容,可以保存到多个elasticsearch中。

至于第9行的stdout,则表示终端的标准输出,方便部署时验证是否正常运行,验证通过后,可以去掉。

3.2 启动

继续保持在logstash的bin目录下,输入

./logstash -f conf/logstash-indexer.conf

稍等片刻,如果看到Logstash startup completed,则表示启动成功。然后另开一个终端窗口,随便找个文本编辑工具(比如:vi),向/var/opt/log/a.log里写点东西,比如:hello world之类,然后保存。观察logstash的终端运行窗口,是否有东西输出,如果有以下类似输出:

1 {
2        "message" => "hello world",
3       "@version" => "1",
4     "@timestamp" => "2016-01-08T14:35:16.834Z",
5           "host" => "yangjunmingdeMacBook-Pro.local",
6           "path" => "/var/opt/log/a.log"
7 }

说明logstash工作正常,此时浏览http://localhost:9200/_search?pretty 也应该能看到一堆输出,表明elasticsearch接收到logstash的数据了。

 

四、kibana的配置及启动

4.1 修改配置文件

~/app/kibana-4.3.1-darwin-x64/config 下有一个配置文件kibana.yml,大概在12行的位置,改成下面这样:

1 # The Elasticsearch instance to use for all your queries.
2 elasticsearch.url: "http://localhost:9200"

即:指定elasticsearch的访问位置

4.2 启动

~/app/kibana-4.3.1-darwin-x64/bin 下,输入:

./kibana

注:如果启动不成功,请检查版本是否为4.3.1,kibana必须与elasticsearch的版本匹配,一般说来,都从官网下载最新版即可。

启动完成后,在浏览器里输入http://localhost:5601/ 即可看到kibana界面,首次运行,会提示创建index,直接点击Create按钮即可。

然后,就能看到类似下面的界面了:

 

参考文章:

http://baidu.blog.51cto.com/71938/1676798?utm_source=tuicool&utm_medium=referral

https://www.elastic.co/products

http://www.cnblogs.com/yjf512/p/4199105.html

http://kibana.logstash.es/content/

相关文章:

  • centos制作yum源
  • android在假设绘制自己定义的bitmap,然后返回给ImageView
  • 通过读取excel文件生成sql语句
  • 指针知识梳理5-字符串与指针,程序内存总结
  • 使用360浏览器访问字体逆时针旋转90度的问题
  • Shell脚本实现自动修改IP地址
  • 参数的排列组合
  • 在当今快节奏的软件更迭当中,我们是否还需要进行系统的学习?
  • JSTL截取字符串
  • Java开发相关配置
  • Java BIO、NIO、AIO-------转载
  • JSPatch
  • RSA加密的测试demo
  • 用 Python 开发自动化测试脚本
  • 运用.net core配合VS 2015制作nuget包
  • 30秒的PHP代码片段(1)数组 - Array
  • CSS居中完全指南——构建CSS居中决策树
  • css选择器
  • CSS中外联样式表代表的含义
  • exports和module.exports
  • leetcode386. Lexicographical Numbers
  • MaxCompute访问TableStore(OTS) 数据
  • React-flux杂记
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 成为一名优秀的Developer的书单
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 工作中总结前端开发流程--vue项目
  • 机器学习中为什么要做归一化normalization
  • 基于axios的vue插件,让http请求更简单
  • 树莓派 - 使用须知
  • 新书推荐|Windows黑客编程技术详解
  • 一些关于Rust在2019年的思考
  • 用element的upload组件实现多图片上传和压缩
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​决定德拉瓦州地区版图的关键历史事件
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (四)Controller接口控制器详解(三)
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转载)PyTorch代码规范最佳实践和样式指南
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .NET Core中Emit的使用
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .NET企业级应用架构设计系列之应用服务器
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .NET中统一的存储过程调用方法(收藏)
  • .py文件应该怎样打开?
  • @vue/cli脚手架