ELK系统主要由三部分组成,各自是elasticsearch、logstash、kibana。
ELK系统收到推送过来的日志后。首先由logstash解析日志中的字段,分解成一个一个的关键字。
elasticsearch将关键字与日志信息关联起来,以一种特定的格式化方式存储数据到硬盘。kibana提供与用户的交互界面,依据用户需求,从elasticsearch中读取信息并在网页上显示。
本文以Redhat为例搭建一套很easy的ELK系统步:
logstash从本地日志文件读取信息
elasticsearch存储信息
在中通过kibana显示完整信息
全部工作都在本地完毕,即全部server和client地址都是127.0.0.1
一、安装工具
1.安装elasticsearch
wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.1.tar.gztar -xvzf elasticsearch-1.7.1.tar.gzcp -a elasticsearch-1.7.1 /usr/localcd /usr/localln –s elasticsearch-1.7.1 elasticsearch
2.安装logstash
wget https://download.elastic.co/logstash/logstash/logstash-1.5.4.tar.gztar –xvzf logstash-1.5.4.tar.gzcp –a logstash-1.5.4 /usr/localcd /usr/localln –s logstash-1.5.4 logstash
3.安装kibana
wget https://download.elastic.co/kibana/kibana/kibana-4.1.2-linux-x64.tar.gztar –xvzf kibana-4.1.2-linux-x64.tar.gzcp –a kibana-4.1.2-linux-x64 /usr/localcd /usr/localln –s kibana-4.1.2-linux-x64 kibana
二、配置logstash
cd /usr/local/logstashmkdir etctouch central.conf
central.conf是logstash的配置文件,文件名称任意配置件,文件内容例如以下:
input{ file { path => "/tmp/*.log" start_position => beginning }}output { stdout {} elasticsearch { cluster => "elasticsearch" codec => "json" protocol => "http" }}
启动logstash程序:
/usr/local/logstash/bin/logstash agent --verbose --config /usr/local/logstash/etc/central.conf
配置文件将从/tmp/*.log中读到的日志,同一时候传给elasticsearch和标准输出。我如今如今还没有配置elasticsearch。能够从标准输出窗体中观察。
假设有将日志内容输出,可知logstash搭建成功察。
三、配置elasticsearch
因为elasticsearch和logstash是安装在一台机器上,elasticsearch默认配置就可以。
/usr/local/elasticsearch/bin/elasticsearch -d #以deamon方式启动elasticsearch
打开127.0.01:9200看到这种内容可知elasticsearch搭建成功
{ "status" : 200, "name" : "Blaquesmith", "cluster_name" : "elasticsearch", "version" : { "number" : "1.7.1", "build_hash" : "b88f43fc40b0bcd7f173a1f9ee2e97816de80b19", "build_timestamp" : "2015-07-29T09:54:16Z", "build_snapshot" : false, "lucene_version" : "4.10.4" }, "tagline" : "You Know, for Search"}
四、配置kibana
kibana也不须要配置,直接启动
/usr/local/kibana/bin/kibana
打开127.0.01:5601就可以看到Kibana的页面。选择默认配置。进入。/tmp/*.log中的信息在kibana中显示,可知kibana搭建成功。
五、遇到的问题
1.打开127.0.0.1:9200或127.0.0.1:5601时,提示网页无法打开。但kibana与elasticsearchserver确实已经启动。
解决方法:代理关掉
2./tmp/*.log是存在的,可是kibana上提示没有数据,logstash的stdout也看不到数据
解决方法:logstash仅仅读取近期一段时间的日志,把日志文件时间更新一下就能够解决