Chinaunix首页 | 论坛 | 博客
  • 博客访问: 873634
  • 博文数量: 72
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1693
  • 用 户 组: 普通用户
  • 注册时间: 2014-08-04 15:53
个人简介

主要从事Linux,云原生架构改造,服务网格,ELK,python,golang等相关技术。

文章分类

全部博文(72)

文章存档

2015年(52)

2014年(20)

分类: 系统运维

2015-07-27 18:25:34

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

测试环境:redhat6.5

所需软件:JDK1.7.0,Logstash,ElasticSearch,Kibana
首先我们先了解一下上面三个套件的功能:
   Logstash是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜索),您可以使用它。说到搜索,logstash带有一个web界面,搜索和展示所有日志。
   kibana也是一个开源和免费的工具,他可以帮助您汇总、分析和搜索重要数据日志并提供友好的web界面。他可以为 Logstash 和 ElasticSearch 提供的日志分析的 Web 界面

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

下面我们开始搭建这个ELK日志分析和监控平台
这里为了方便起见,我们直接配置centos的yum源:

设置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
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服务:
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.
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        #它会自动输出到屏幕

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
tar zxf kibana-3.1.2.tar.gz
将他放到nginx的发布目录里面然后启动nginx服务:
mv kibana-3.1.2  /usr/local/lnmp/nginx/html/kibana


修改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进行查看,这样我们的一个简单的日志分析和监控平台就搭建完成了。






阅读(13793) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~