Ubuntu 14.04搭建ELK日志分析系统(Elasticsearch+Logstash+Kibana)

系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。日志的作用不言而喻,但对于数量庞大且分布在多台机器上的日志,查看就显得特别麻烦了。所以,对于运维人员来说,使用日志分析系统是非常有必要的。

开源实时日志分析ELK平台能够实现日志的监控与分析,ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成。官方网站:https://www.elastic.co/products

Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

Logstash是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜索)。

kibana 也是一个开源和免费的工具,他Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

ELK工作流程大致如下:

Ubuntu 14.04搭建ELK日志分析系统(Elasticsearch+Logstash+Kib

在需要收集日志的所有服务上部署logstash,作为logstash agent(logstash shipper)用于监控并过滤收集日志,将过滤后的内容发送到logstash indexer,logstash indexer将日志收集在一起交给全文搜索服务ElasticSearch,可以用ElasticSearch进行自定义搜索通过Kibana 来结合自定义搜索进行页面展示。

ELK平台搭建:

下载ELK安装包:https://www.elastic.co/downloads/

wKioL1dovnSiitJ_AADQh23WfIA459.png

下载jdk安装包http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

wKioL1dov1KQAVSnAACAdHTl8qk116.png

下载完的数据包:

wKioL1doxV6ijpGCAAAo1FnFW7s990.png

1.安装依赖包jdk8:

1
2
#sudo mkdir /usr/lib/jvm
#tar xvzf jdk-8u91-linux-x64.tar.gz -C /usr/lib/jvm/
1
#vim ~/.bashrc

在文档最下部追加

1
2
3
4
export  JAVA_HOME= /usr/lib/jvm/jdk1 .8.0_91
export  JRE_HOME=${JAVA_HOME} /jre
export  CLASSPATH=.:${JAVA_HOME} /lib :${JRE_HOME} /lib
export  PATH=${JAVA_HOME} /bin :$PATH
1
执行: source  ~/.bashrc

执行java -version和java,有相应数据即安装完成。

2.安装Logstash:

1
#tar xvzf logstash-2.3.3.tar.gz

在logstash-2.3.3目录下创建logstash-test.conf配置文件,内容如下:

1
2
3
4
5
6
# cat logstash-test.conf
  
input { stdin { } }
output {
    stdout { codec=> rubydebug }
}

Logstash使用input和output定义收集日志时的输入和输出的相关配置,本例中input定义了一个叫"stdin"的input,output定义一个叫"stdout"的output。无论我们输入什么字符,Logstash都会按照某种格式来返回我们输入的字符,其中output被定义为"stdout"并使用了codec参数来指定logstash输出格式。

使用如下命令启动:

1
# ./bin/logstash agent -f logstash-test.conf

启动后,你在屏幕上输入什么内容,就会在console里显示出来。如输入"hehe",显示如下:

wKioL1do1N6DHOZKAAAcq2EwIro311.png

说明安装成功。使用Ctrl+C退出进程。

3.安装elasticsearch:

1
#tar xvzf elasticsearch-2.3.3.tar.gz

修改配置文件,允许远程访问:

1
2
cd  elasticsearch-2.3.3 /config
vim elasticsearch.yml

修改network栏为:

wKiom1do1v6xDVPXAAASAEXu-Ss829.png

启动elasticsearch:

1
# ./bin/elasticsearch -d #-d为后台启动

访问http://<elasticsearch-ip>:9200

wKiom1do2APS34aXAAAobSsSSgY464.png

如上,说明安装成功。

安装elasticsearch插件head:

1
2
# cd elasticsearch-2.3.3
# ./bin/plugin install mobz/elasticsearch-head

出现如下:

wKiom1do2YDgZMnGAAA7V_Tiapw489.png

安装成功,访问http://<elasticsearch-ip>:9200/_plugin/head,如下:

wKioL1do2gGCRpx7AABBt_b3Jhg006.png

安装成功。

测试elasticsearch与logstash是否能链接成功:

在logstash-2.3.3安装目录下创建一个用于测试logstash使用elasticsearch作为logstash的后端的测试文件logstash-es-simple.conf,该文件中定义了stdout和elasticsearch作为output,这样的“多重输出”即保证输出结果显示到屏幕上,同时也输出到elastisearch中,内容如下:

1
2
3
4
5
6
7
8
9
# cat logstash-es-simple.conf
  
input { stdin { } }
output {
    elasticsearch {hosts =>  "localhost"  }
    stdout { codec=> rubydebug }
}
  
# hosts为elasticsearch的主机,这里两者在同一机器上

启动:

1
# ./bin/logstash agent -f logstash-es-simple.conf

wKioL1do3H3T6SFLAAAcbWKMbog623.png

打开http://<elasticsearch-ip>:9200/_search?pretty,如下:

wKiom1do3Njwt7OcAAA0YUlkkrI860.png

说明二者链接成功。至此,你已经成功利用Elasticsearch和Logstash来收集日志数据了。

4.安装kibana:

1
# tar xvzf kibana-4.5.1-linux-x64.tar.gz

启动:

1
2
# cd kibana-4.5.1-linux-x64
# ./bin/kibana

启动过程如下:

wKioL1do486yzfEEAABwLNVR1IY355.png

访问http://<ip>:5601,如下:

wKioL1do5DzD2J0uAADGGpvyP60238.png

安装成功。

登录后,首先,配置一个索引,默认,Kibana的数据被指向Elasticsearch,使用默认的logstash-*的索引名称,并且是基于时间的,点击“Create”即可。

看到如下,索引创建完成:

wKioL1do5MPga57jAACgrAIKPjs565.png

点击“Discover”选项卡,可以搜索和浏览elasticsearch中的数据,默认搜索最近15分钟的数据,也可以自定义。

wKiom1do5cbiOtsFAADVwtNiLQs224.png

至此,ELK平台已经部署完成。

5.配置logstash作为Indexer:

 将logstash配置为索引器,并将logstash的日志数据存储到elasticsearch。本案例是索引本地系统日志。

在logstash工作目录中创建配置文件logstash-indexer.conf,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
input {
  file  {
    type  => "syslog"
      path => [ "/var/log/messages" "/var/log/syslog"  ]
  }
  syslog {
    type  => "syslog"
    port => "5544"
  }
}
output {
  stdout { codec=> rubydebug }
  elasticsearch {hosts =>  "localhost"  }
}

启动logstash后,使用echo模拟写入日志,命令执行后信息如下:

wKioL1do7KfTHuWZAABCQOt_-Pg755.png

浏览器中:

wKiom1do7OrhPNMnAAC8VLDxFT8374.png

elasticsearch在浏览器中如下:

wKioL1do7U_j6ZIEAAFsw3KqYOA699.png

由上可见,日志数据都同步成功。

到此,ELK平台部署与测试已经完成。

ElasticSearch 的详细介绍请点这里
ElasticSearch 的下载地址请点这里 

猜你喜欢

转载自www.linuxidc.com/Linux/2016-06/132618.htm