logstash+elasticsearch+kibana搭建日志收集分析系统

时间:2022-09-22 18:25:20

来源: http://blog.csdn.net/xifeijian/article/details/50829617

日志监控和分析在保障业务稳定运行时,起到了很重要的作用,不过一般情况下日志都分散在各个生产服务器,且开发人员无法登陆生产服务器,这时候就需要一个集中式的日志收集装置,对日志中的关键字进行监控,触发异常时进行报警,并且开发人员能够查看相关日志。logstash+elasticsearch+kibana3就是实现这样功能的一套系统,并且功能更强大。

logstash:是一个管理日志和事件的工具,你可以收集它们,解析它们,并存储它们以供以后使用(例如日志搜索),logstash有一个内置的web界面,用来搜索你的所有日志。logstash在部署时有两种运行模式:standalone和centralized:

* standalone:standalone的意思是所有的事情都在一台服务器上运行,包括日志收集、日志索引、前端WEB界面都部署在一台机器上。

* centralized:就是多服务器模式,从很多服务器运输(ship)日志到一台总的日志(collector)服务器上用来索引和查找。

需要注意的是logstash本身并没有什么shipper和indexer这种说法,因为不论是运输日志的进程还是汇集总的日志的进程运行的都是同一个程序,只是使用的配置文件不同而已。

elasticsearch:

基于lucene的开源搜索引擎,是一个分布式的搜索分析系统,主要特点有:real time data、real time analytics、distributed、high availability、multi-tenancy、full text search、document oriented、conflict management、schema free、restful api等等。

kibana3:

可视化日志和数据系统,作为WEB前端可以很容易的和elasticsearch系统结合。kibana有版本2和版本3的区分,版本2采用ruby编写,部署起来很麻烦,需要安装很多ruby依赖包(目前网上多是这个版本的部署),版本3采用纯html+css编写,因此部署起来很方便,解压即用,目前已经是kibana4了,建议大家使用最新版。

出于性能及扩展性考虑,实际应用中logstash我们必然采用centralized模式,最基本的结构图如下:

logstash+elasticsearch+kibana搭建日志收集分析系统

1、安装Redis,安装过程简单,这里不做详细说明。

2、安装ElasticSearch(目前版本1.4)

  1. <span style="font-size:14px;">wget 'https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.7.tar.gz'
  2. tar zxvf elasticsearch-0.90.7.tar.gz
  3. cd elasticsearch-0.90.7/bin
  4. #可以在logstash agent启动后再启动
  5. ./elasticsearch -f</span>

3、启动logstash shipper,定义配置文件logstash.conf,根据实际情况定义,以下主要定义了input源为文件,output到redis,启动logstash shipper,例如:

  1. <span style="font-family: 'Microsoft YaHei';"><span style="font-size:14px;">input {
  2. file {
  3. type => "api_log"
  4. path => "/home/jws/app/nginxserver/logs/apiaccess.log"
  5. debug => true
  6. }
  7. file {
  8. type => "cas_log"
  9. path => "/home/jws/app/nginxserver/logs/casaccess.log"
  10. debug => true
  11. }
  12. file {
  13. type => "id_log"
  14. path => "/home/jws/app/nginxserver/logs/idaccess.log"
  15. debug => true
  16. }
  17. file {
  18. type => "login_log"
  19. path => "/home/jws/app/nginxserver/logs/loginaccess.log"
  20. debug => true
  21. }
  22. file {
  23. type => "proxy_log"
  24. path => "/home/jws/app/nginxserver/logs/proxyaccess.log"
  25. debug => true
  26. }
  27. }
  28. output {
  29. redis {
  30. host => "10.20.164.121"
  31. data_type => "list"
  32. key => "logstash:redis"
  33. }
  34. redis {
  35. host => "10.20.164.122"
  36. data_type => "list"
  37. key => "logstash:uop_file"
  38. }
  39. }</span></span>

启动shipper:

Java -jar /home/jws/htdocs/logstash/lib/logstash.jar agent -f /home/jws/htdocs/logstash/conf/logstash.conf -l /home/jws/htdocs/logstash/logs/logstash.log

4、启动logstash indexer
logstash的配置文件相当简单,主要有三部分:inputs、filters、outputs。事件在配置文件中的出现是有顺序的。在inputs、output、filter中,允许你设置配置插件,配置插件由一个插件名称和紧跟在后面的插件配置代码块构成。插件中的值可以是布尔值、字符串、数字、哈希、数组等,并且支持条件判断(if...else)。

例如以下indexer中的配置,并启动indexer:

  1. <span style="font-size:14px;">input {
  2. file {
  3. path => "/home/rsyslog/asaserver/*/*/*/proxy.log.*"
  4. exclude => "*.bz2"
  5. type => "proxy"
  6. }
  7. }
  8. filter {
  9. grok {
  10. match => [ "message", "%{APIPROXY}" ]
  11. patterns_dir => ["/home/jws/app/logstash/patterns"]
  12. }
  13. if [request_uripath_orig]{
  14. grok {
  15. match => [ "request_uripath_orig", "%{NSSS}" ]
  16. patterns_dir => ["/home/jws/app/logstash/patterns"]
  17. }
  18. }
  19. }
  20. output {
  21. #stdout { codec =>"rubydebug"}
  22. elasticsearch_http {
  23. host => "10.20.161.36"
  24. flush_size => 500
  25. idle_flush_time => 3
  26. index => "logstash_pf_proxy-%{+YYYY.MM.dd.HH}"
  27. template => "/home/jws/app/logstash/template/t.json"
  28. template_overwrite => true
  29. }
  30. }</span>

5、安装并启动kibana3,安装过程与普通软件安装无异,可以配合nginx安装,这里不做描述,需要注意的是需要在kibana config.js中配置elasticSearch的地址与端口。

logstash+elasticsearch+kibana搭建日志收集分析系统

注意红框中的内容,这只是kibana3的默认界面,需要我们用logstash.json代替default.json界面,具体目录源码目录下app/dashboards中。

例如项目中的一个例子,根据需求制作图表(类似饼图,柱状图,折线图等),在笔者实际项目中,从日志中分析数据,实现系统稳定性、响应时间、请求量、业务响应码、HTTP状态码等等以kibana展现;

logstash+elasticsearch+kibana搭建日志收集分析系统

并且,elasticsearch的用途远不如此,可以用来做搜索数据源,ES提供了编程接口,可以使用编程的方式获取ES中的数据自定义开发监控程序,灵活且功能强大。

官方文档(现在都整合在一起了):

logstash:https://www.elastic.co/guide/en/logstash/current/index.html

elasticsearch:https://www.elastic.co/

kibana:https://www.elastic.co/

logstash+elasticsearch+kibana搭建日志收集分析系统的更多相关文章

  1. 基于logstash&plus;elasticsearch&plus;kibana的日志收集分析方案(Windows)

    一 方案背景     通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这样是不是感觉很繁琐和效率低下.开源实时日志分析ELK平台能够完美的 ...

  2. syslog&plus;rsyslog&plus;logstash&plus;elasticsearch&plus;kibana搭建日志收集

    最近rancher平台上docker日志收集捣腾挺久的,尤其在配置上,特写下记录 Unix/Linux系统中的大部分日志都是通过一种叫做syslog的机制产生和维护的.syslog是一种标准的协议,分 ...

  3. filebeat -&gt&semi; logstash -&gt&semi; elasticsearch -&gt&semi; kibana ELK 日志收集搭建

    Filebeat 安装参考 http://blog.csdn.net/kk185800961/article/details/54579376 elasticsearch 安装参考http://blo ...

  4. filebeat&plus;redis&plus;logstash&plus;elasticsearch&plus;kibana搭建日志分析系统

    filebeat+redis+elk搭建日志分析系统 官网下载地址:https://www.elastic.co/downloads 1.下载安装filebeat wget https://artif ...

  5. 用ELK搭建简单的日志收集分析系统【转】

    缘起 在微服务开发过程中,一般都会利用多台服务器做分布式部署,如何能够把分散在各个服务器中的日志归集起来做分析处理,是一个微服务服务需要考虑的一个因素. 搭建一个日志系统 搭建一个日志系统需要考虑一下 ...

  6. Centos6&period;5使用ELK&lpar;Elasticsearch &plus; Logstash &plus; Kibana&rpar; 搭建日志集中分析平台实践

    Centos6.5安装Logstash ELK stack 日志管理系统 概述:   日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的 ...

  7. 使用ELK&lpar;Elasticsearch &plus; Logstash &plus; Kibana&rpar; 搭建日志集中分析平台实践--转载

    原文地址:https://wsgzao.github.io/post/elk/ 另外可以参考:https://www.digitalocean.com/community/tutorials/how- ...

  8. Filebeat&plus;Logstash&plus;ElasticSearch&plus;Kibana搭建Apache访问日志解析平台

    对于ELK还不太熟悉的同学可以参考我前面的两篇文章ElasticSearch + Logstash + Kibana 搭建笔记.Log stash学习笔记(一),本文搭建了一套专门访问Apache的访 ...

  9. 2018年ElasticSearch6&period;2&period;2教程ELK搭建日志采集分析系统(教程详情)

    章节一  2018年 ELK课程计划和效果演示1.课程安排和效果演示    简介:课程介绍和主要知识点说明,ES搜索接口演示,部署的ELK项目演示    es: localhost:9200    k ...

随机推荐

  1. Azure Bill

    MSDN的本月订阅的被用完了,所有的付费订阅均变成了不可用的状态. 信用额度为0元,还有2天能恢复 点击上方的MSDN订阅名会进入更加详细的账单,账单以月的形式提供. 邮件中也会通知您到了限定额度所停 ...

  2. R语言学习笔记之外部文件读取

    在win32位的系统下,RODBC包内的函数是可以直接运行的,但在win64位的系统则不支持! 1.读取外部文件read.table()---csv,txt,excel 最基本函数是read.tabl ...

  3. Ext简单demo示例

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  4. Spring Boot 主类及目录结构介绍

    Spring Boot 与传统项目最大的区别是,传统项目都是打成 WAR 包部署到服务器上面,需要额外的 Servlet 容器, 而 Spring Boot 则可以直接打成 jar 包,并内置集成了 ...

  5. WinHex数据恢复笔记(一)

    WinHex数据恢复功能强大,可以从硬件簇上扇区进行数据扫描恢复.首先对winhex的各个功能介绍.之后对实例记录一个Word文档删除后进行恢复. 1.WinHex数据恢复软件的编辑区输入与其他普通文 ...

  6. ADO&period;net之综合演练

    using ConsoleApplication4.App_Code; using System; using System.Collections.Generic; using System.Lin ...

  7. Compute Shader

    [Compute Shader] 1.Similar to regular shaders, compute shaders are Asset files in your project, with ...

  8. Windows连接Linux虚拟机里面的Docker容器

    一.Windows.Linux虚拟机.docker关系图 如果此时在Windows宿主机中pingDocker容器是ping不同的,因为在宿主机上没有通往172.17.0.0/24网络的路由,宿主机会 ...

  9. Java静态代理学习

    代理模式 代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问. 在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. 代理模式一般涉及 ...

  10. JDK1&period;8源码TreeMap

    基于红黑树(Red-Black tree)的 NavigableMap 实现:键的排序由构造方法决定:自然排序,Comparator排序:非线程安全(仅改变与现有键关联的值不是结构上的修改):线程安全 ...