设为首页 收藏本站
查看: 13279|回复: 5

[经验分享] logstash+elasticsearch +kibana 日志管理系统

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-5-5 09:22:55 | 显示全部楼层 |阅读模式
Logstash是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜索),您可以使用它。说到搜索,logstash带有一个web界面,搜索和展示所有日志。
kibana 也是一个开源和免费的工具,他可以帮助您汇总、分析和搜索重要数据日志并提供友好的web界面。他可以为 Logstash 和 ElasticSearch 提供的日志分析的 Web 界面。
目的就是为了运维、研发很方便的进行日志的查询。Kibana一个免费的web壳;Logstash集成各种收集日志插件,还是一个比较优秀的正则切割日志工具;Elasticsearch一个开源的搜索引擎框架(支持群集架构方式)
工作原理图显示如下:

wKioL1NlqYLB8FU-AAF3JQKab2o115.jpg
简单来讲他具体的工作流程就是 logstash agent 监控并过滤日志,将过滤后的日志内容发给redis(这里的redis只处理队列不做存储),logstash index将日志收集在一起交给
全文搜索服务ElasticSearch 可以用ElasticSearch进行自定义搜索通过Kibana 来结合自定义搜索进行页面展示
网上在国内找了很多的文章,但是大部分都是使用的logstash的旧版本,直接使用一个jar包,从logstash的官方网站上找到最新版本logstash-1.4.0,当前服务器操作系统ubuntu
1、安装软件列表
JDK 运行java程序必须
redis 用来处理日志队列
logstash 收集、过滤日志
ElasticSearch 全文搜索服务(logstash集成了一个)
kibana 页面展
2、客户端安装
root@AY140104220747005ca6Z-225:/soft/logstash-1.4.0#pwd
/soft/logstash-1.4.0
root@AY140104220747005ca6Z-225:/soft/logstash-1.4.0#ls
bin lib  LICENSE  locales patterns  README.md  shiper.conf spec  vendor
客户端主要配置shiper.conf文件(一般客户端上命名shiper.conf服务器端命名indexer.conf)
input {
  file {
    type=> "225-hd-prod"
    path=> [ "/mnt/servers/hd-prod/logs/catalina.out" ]
    codec=> multiline {
     pattern => "(^.+Exception:.+)|(^\s+at .+)|(^\s+... \d+ more)|(^\s*Caused by:.+)"
     what=> "previous"
  }
    }
}
filter {
  grok {
    match=> { "message" => "%{DATESTAMP:timestamp}%{LOGLEVEL:level} %{GREEDYDATA:syslog_message}" }
   #match => [ "message","%{TOMCATLOG}","message", "%{CATALINALOG}" ]
  }
  date {
    match=> [ "timestamp","dd/MM/yy:HH:mm:ss Z" ]
  }
}
output {
  stdout{ }
#  stdout{ codec => rubydebug }
  redis {host => "XXXX" data_type => "list" key=> "logstash:redis" }
}
这里我只是分析了一下tomcat的catalina.out文件(此java实例使用log4j将所有的信息全部写入catalina文件里面)
logstash所有参数文章介绍http://logstash.net/docs/1.4.0/
客户端logstash启动命令 /soft/logstash-1.4.0/bin/logstash -f /soft/logstash-1.4.0/shiper.conf &
3、服务器端配置
由于服务器原因所有我这边把redis、elasticsearch全部放在logstash的服务器端
redis安装配置
root@AY140328152940950c78Z:/usr/local/redis# ls
00-RELEASENOTES CONTRIBUTING  deps     logstash.conf  MANIFESTO README      redis.conf.bak  runtest-sentinel  src   utils
BUGS            COPYING       INSTALL  Makefile      prod.conf  redis.conf  runtest         sentinel.conf     tests
redis默认不用修改任何配置文件直接启动就行redis-server redis.conf
elasticsearch安装配置
root@AY140328152940950c78Z:/usr/local/redis# cd/soft/elasticsearch-1.0.1/
root@AY140328152940950c78Z:/soft/elasticsearch-1.0.1#ls
bin config  data  lib LICENSE.txt  logs  NOTICE.txt README.textile
elasticsearch可以直接启动(不修改配置文件启动的话,所有生成的index在从新启动之后都会消失,以前的log信息就不会出现在kibana中),若是想让log信息持久保存可以查阅可以修改config下的elasticsearch.yml
gateway.type: local
gateway.recover_after_nodes: 1
gateway.recover_after_time: 5m
gateway.expected_nodes: 2
gateway.type: local

gateway的类型,默认为local即为本地文件系统,可以设置为本地文件系统,分布式文件系统,hadoop的HDFS,和amazon的s3服务器。
gateway.recover_after_nodes: 1
设置集群中N个节点启动时进行数据恢复,默认为1。
gateway.recover_after_time: 5m
设置初始化数据恢复进程的超时时间,默认是5分钟。
gateway.expected_nodes: 2
设置这个集群中节点的数量,默认为2,一旦这N个节点启动,就会立即进行数据恢复
elasticsearch启动命令 /soft/elasticsearch-1.0.1/bin/elasticsearch &
logstash安装配置
root@AY140328152940950c78Z:/soft/elasticsearch-1.0.1/config#cd /soft/logstash-1.4.0/
root@AY140328152940950c78Z:/soft/logstash-1.4.0#ls
bin data  indexer.conf  lib LICENSE  locales  log.conf patterns  README.md  sh.conf spec  test.conf  vendor
服务端logstash主要配置文件indexer.conf
input {
redis {
       host => '127.0.0.1'
       data_type => 'list'
       port => "6379"
       key => 'logstash:redis'
       type => 'redis-input'
       codec => json
        }
       }
output {
       stdout {}
#      stdout { codec => rubydebug }
        elasticsearch {
       host => localhost
                        }
        }
启动服务端的logstash命令/soft/logstash-1.4.0/bin/logstash -f /soft/logstash-1.4.0/indexer.conf &
启动之后开始启动logstash的图形界面服务 /soft/logstash-1.4.0/bin/logstash-web &
启动之后查看一下logstash是否完全启动
[iyunv@logstash ~]# netstat -tlnp | grep java (9292端口是kibana页面展示的端口)
tcp 0 0 :::9292 :::* LISTEN 2292/java
tcp 0 0 :::9200 :::* LISTEN 2161/java
tcp 0 0 :::9300 :::* LISTEN 2161/java
tcp 0 0 :::9301 :::* LISTEN 2292/java
tcp 0 0 :::9302 :::* LISTEN 2292/java

关于logstash所有配置就完成了接下来直接访问http://logstash服务端:9292就能看到kibana的欢迎界面,关于kibana如何使用就不多写了,搭建一个完整的logstash特别是在国内资料过时的情况下真是十分艰难!


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-18672-1-1.html 上篇帖子: linux之正则表达式 下篇帖子: linux下dhcp服务器的架构与实现 管理系统

尚未签到

发表于 2014-6-26 11:10:33 | 显示全部楼层
hi  我使用你的这种方法部署ELK,都能正常启动,但是我通过redis-cli keys "*" 发现没有内容,是什么情况,而且网页搜索的时候也没有看见日志,求助

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2014-8-7 22:51:55 | 显示全部楼层
楼主在吗?我用你这种方法貌似和楼上一样。客户机的日志为什么,服务端的redis 为什么收不到呢?

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2014-8-20 16:06:55 | 显示全部楼层
zcl3911 发表于 2014-8-7 22:51
楼主在吗?我用你这种方法貌似和楼上一样。客户机的日志为什么,服务端的redis 为什么收不到呢? ...

为什么我按照楼主的步骤做,都是成功的,但是用ip+端口的方式无法进入web欢迎页面呢?谢谢哈~

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2014-8-20 16:07:13 | 显示全部楼层
为什么我按照楼主的步骤做,都是成功的,但是用ip+端口的方式无法进入web欢迎页面呢?谢谢哈~

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表