Elasticsearch + Logstash + Kibana日志管理方案
一:elk是指logstash,elasticsearch,kibana三件套,这三件套可以组成日志分析和监控工具
- Logstash:负责日志的收集,处理和储存。 地址:https://www.elastic.co/products/logstash
- Elasticsearch:负责日志检索和分析。 地址: https://www.elastic.co/products/elasticsearch
- Kibana:负责日志的可视化。 地址: https://www.elastic.co/products/kibana
- 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