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以后进入\logstash\bin目录,新建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

 

posted @ 2016-04-20 20:11  二月长安  阅读(172)  评论(0编辑  收藏  举报