redhat下使用ELK套件搭建日志分析和监控平台

13830阅读 0评论2015-07-27 china_Linux_hy
分类:系统运维

ELK套件(ELK stack)是指ElasticSearch、Logstash和Kibana三件套。这三个软件可以组成一套日志分析和监控工具。
官方下载地址:

测试环境:redhat6.5

所需软件:JDK1.7.0,Logstash,ElasticSearch,Kibana
首先我们先了解一下上面三个套件的功能:
    ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
   Logstash是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜索),您可以使用它。说到搜索,logstash带有一个web界面,搜索和展示所有日志。
   kibana也是一个开源和免费的工具,他可以帮助您汇总、分析和搜索重要数据日志并提供友好的web界面。他可以为 Logstash 和 ElasticSearch 提供的日志分析的 Web 界面

   下面是他们三者的一个关系架构图:

下面我们开始搭建这个ELK日志分析和监控平台
这里为了方便起见,我们直接配置centos的yum源:
wget  style="background-color:inherit;" /> mv CentOS6-Base-163.repo CentOS-Base.repo
vim CentOS-Base.repo      #将所有的$release为6然后保存
yum clean all

设置iptables打开相应端口:
vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT  
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9200 -j ACCEPT  
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9292 -j ACCEPT
service iptables restart

安装jdk:
yum install java-1.7.0-openjdk* -y
java -version

安装ElasticSearch
ElasticSearch默认的对外服务的HTTP端口是9200,节点间交互的TCP端口是9300
wget 
mkdir /usr/local/elk
tar zxf elasticsearch-1.4.2.tar.gz -C /usr/local/elk/
mv /usr/local/elk/elasticsearch-1.4.2 /usr/local/elk/elasticsearch

安装elasticsearch-servicewrapper,并启动ElasticSearch服务:
wget 
tar zxf master
mv elasticsearch-servicewrapper-master/service /usr/local/elk/elasticsearch/bin/
/usr/local/elk/elasticsearch/bin/service/elasticsearch start

下面我们测试一下ElasticSearch服务是否正常,预期返回200的状态码:

说明这个服务正常。

安装Logstash
Logstash默认的对外端口是9292.
wget 
tar zxf logstash-1.4.2.tar.gz -C /usr/local/elk/
mv /usr/local/elk/logstash-1.4.2 /usr/local/elk/logstash

测试一下Logstash服务是否正常,预期可以将输入简单的日志形式打印的界面上:
/usr/local/elk/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} } '
hello we are hy            #这里我们输入信息
2015-07-27T00:38:38.317+0000 elk hello we are hy        #它会自动输出到屏幕

我们可以自己配置到文件,这是它的官方配置文档地址: style="background-color:inherit;" />
mkdir /usr/local/elk/logstash/etc
vim /usr/local/elk/logstash/etc/hy_search.conf

点击(此处)折叠或打开

  1. input {
  2. stdin {
  3. type => "human"
  4. }
  5. }
  6. output {
  7. stdout {
  8. codec => rubydebug
  9. }
  10. elasticsearch {
  11. host => "192.168.40.131"
  12. port => "9300"
  13. }
  14. }
logstash的命令行标志:
agent
   -f    configfile     加载logstash的配置文件,可以是文件、目录、通配符,如果是目录或者通配符,则读取第一个匹配到的文件
   -e   configset     设置一些配置文件中的配置
   -w   count          设置filter的工作者个数,默认是1
   -l     logfile         设置日志路径,默认是stdout
web
   -a    address      启动一个webserver,默认监听0.0.0.0
   -p    port           webserver监听的地址,默认是9292

/usr/local/elk/logstash/bin/logstash -f hy_search.conf 
我们可以看到他的执行结果。
我们也可以给他安装一些其他的组件,更多信息可以查看/usr/local/elk/logstash/README.md

安装Kibana
wget 
tar zxf kibana-3.1.2.tar.gz
将他放到nginx的发布目录里面然后启动nginx服务:
mv kibana-3.1.2  /usr/local/lnmp/nginx/html/kibana

修改Kibana的配置文件,把elasticsearch所在行的内容替换成如下:
vim /usr/local/lnmp/nginx/html/kibana/config.js 
elasticsearch: " style="color:#000000;font-size:16px;">"

修改ElasticSearch的配置文件,追加一行内容,并重启ElasticSearch服务:
vim /usr/local/elk/elasticsearch/config/elasticsearch.yml
http.cors.enabled:true
/usr/local/elk/elasticsearch/bin/service/elasticsearch64 restart

然后在浏览器中输入就可以访问Kibana


配置Logstash
再次创建Logstash配置文件,这里将nginx日志和系统日志作为输出,输出直接传给ElasticSearch,不再打印在界面上:
vim /usr/local/elk/logstash/etc/logstash_agent.conf

点击(此处)折叠或打开

  1. input {
  2. file {
  3. type => "http.access"
  4. path => ["/usr/local/lnmp/nginx/logs/access.log"]
  5. }
  6. file {
  7. type => "http.error"
  8. path => ["/usr/local/lnmp/nginx/logs/error.log"]
  9. }
  10. file {
  11. type => "messages"
  12. path => ["/var/log/messages"]
  13. }
  14. }
  15. output {
  16. elasticsearch {
  17. host => "192.168.40.131"
  18. port => 9300
  19. }
  20. }
使用下面命令:
nohup /usr/local/elk/logstash/bin/logstash -f /usr/local/elk/logstash/etc/logstash_agent.conf
然后在web端使用Kibana进行查看,这样我们的一个简单的日志分析和监控平台就搭建完成了。



参考资料:
http://blog.csdn.net/i_chips/article/details/43309415
http://my.oschina.net/guol/blog/179848
http://www.cnblogs.com/yjf512/p/4199105.html



上一篇:PXE+Centos5.2+Unattended4.7+Windows 2003
下一篇:制作自己的Docker Registry