zoukankan      html  css  js  c++  java
  • ELK

    Elasticsearch + Logstash + Kibana日志管理方案

    一:elk是指logstash,elasticsearch,kibana三件套,这三件套可以组成日志分析和监控工具

    1. Logstash:负责日志的收集,处理和储存。 地址:https://www.elastic.co/products/logstash
    2. Elasticsearch:负责日志检索和分析。 地址:  https://www.elastic.co/products/elasticsearch
    3. Kibana:负责日志的可视化。  地址: https://www.elastic.co/products/kibana
    4. Nxlog nxlog 是用 C 语言写的一个跨平台日志收集处理软件。其内部支持使用 Perl 正则和语法来进行数据结构化和逻辑判断操作。不过,其最常用的场景。在 windows 服务器上,作为 logstash 的替代品运行,nxlog收集windows服务器的日志提交给loastash,而不再有logstash负责收集windows服务器的日志(当然logstash也可以去收集,nxlog在windows平台下表现更好);它作为elk系列的一个插件的作用    地址: http://nxlog.org/system/files/products/files/1/nxlog-ce-2.8.1248.msi

    二:elk日志的架构图:

    日志解决方案:日志一般分布在多台服务器上,分析日志需要首先集中这些数据到一个终端,然后执行分析,查询和展示;elk正式这样一套解决方案,当然它不仅限于日志分析

    windows常用的方案:  iislog(原始日志) - 【(kafaka/nxlog/redis) logstash broker】 - 【logstash】-【elasticssearch】-【kibana】

    注意:存储在windows服务器的日志文件可以用 nxlog(该服务也需要单独部署)或者logstash去收集

    【logstash】收集数据配置:

    1 在安装好logstash以后进入logstashin目录,新建Logstash.conf文件

    2  logstash几种简单的配置:

    input{
      tcp{
      port => 514
      }
    }
    output{
      elasticsearch {
      host => "127.0.0.1"
      port => "9200"
      protocol => "http"
      index => "test_system_log"
      }
    }

    一般包含数据输入input和数据输出 output,对于logstash数据一般:输入可以来自文件/redis/或网络  ,而输出是要放到elasticsearch里

    1)对于消息流的情况:上面配置让logstash服务监听514端口,凡是来自514端口的tcp消息都能被它获得,并发送到elasticsearch。

      1 测试时,可以通过cmd命令行 telenet 127.0.0.1 514 来打开tcp客户端,然后敲入消息回车 发送tcp消息到logstash  注意安装了telenect客户端

      2 可以使用nxlog收集日志,然后配置nxlog往127.0.0.1 514 地址以tcp方式发送读取到的日志数据(未成功 )

    2)发送redis数据到 logstash

    input {
    redis {
    host => '127.0.0.1'
    data_type => 'list'
    port => "6379"
    key => 'iis:redis'
    type => 'redis-input'
    }
    }

    此时redis作为消息队列的形式往logstash发送消息,redis里有一个key为iis:redis的list,每一次你可以往改list里push一条数据,然后logstash会自动pop一个数据出来到logstash,并发送到elasticsearch

    3)文件到logstash:它会读取指定路径下的文件,发送到logstash;加入codec=>plain{charset=>"GB2312"} 指定编码格式防止乱码

    input{
    file {
    path => "E:/test/3.log"
    start_position => beginning
    codec=>plain{charset=>"GB2312"}
    }
    }
    output{
    elasticsearch {
    host => "127.0.0.1"
    port => "9200"
    protocol => "http"
    index => "test_system_log"
    codec=>plain{charset=>"GB2312"}
    }
    }

     4 Grok 

    是 Logstash 最重要的插件。你可以在 grok 里预定义好命名正则表达式,在稍后(grok参数或者其他正则表达式里)引用它。

    相关网址:

     http://udn.yyuap.com/doc/logstash-best-practice-cn/filter/grok.html
    
    配置相关资料:
    
    logstash配置介绍:http://udn.yyuap.com/doc/logstash-best-practice-cn/get_start/index.html
    
    windows下安装elk:http://udn.yyuap.com/thread-54591-1-1.html
    
    http://bluereader.org/article/79143974
    
    http://www.open-open.com/lib/view/open1455673846058.html#articleHeader5
    
    https://wsgzao.github.io/post/elk/
    
    http://www.tuicool.com/articles/QFvARfr
    
    http://www.cnblogs.com/yjf512/p/4199105.html
    View Code
  • 相关阅读:
    07_zookeeper的客户端工具curator_基本api
    06_zookeeper原生Java API使用
    05_zookeeper的ACL
    04_zookeeper的watcher机制
    03_Zookeeper基本数据模型及基本命令操作
    02_zookeeper配置
    01_Zookeeper简述
    thinkphp之url的seo优化
    thinkphp Upload上传文件在客户端生成的临时文件$_FILES['file']['tmp_name']
    php过滤表单输入的emoji表情
  • 原文地址:https://www.cnblogs.com/shaner/p/5414155.html
Copyright © 2011-2022 走看看