上篇ELK(ElasticSearch+Logstash+Kibana)5.0 搭建全纪录说到了ElasticSearch和Kibana的搭建,这篇就环绕利用ELK采集分析nginx日志,来记录Logstash的搭建,以及对ELK的知识进行巩固
这个官方对Logstash很直观的一个描述,Logstash其实就是一个管道(Pipeline)
管道的源头input是各种数据源(常见的file、redis、http、log4j、kafka...官方共列了52种 https://www.elastic.co/guide/en/logstash/current/input-plugins.html )
经过自身的过滤机制(filter 匹配的数据才能输出到output https://www.elastic.co/guide/en/logstash/current/filter-plugins.html)
输出到Elasticsearch(output 类型也多达50+ https://www.elastic.co/guide/en/logstash/current/output-plugins.html)
一、Logstash的启动
> cd logstash-5.0.0/config # 进到config目录
> vim logstash-nginx.conf # 创建一个叫logstash-nginx.conf的配置文件
logstash-nginx.conf文件的内容是
input {
file {
path => [ "/var/log/nginx/access.log" ] # nginx日志的目录
start_position => "beginning" # 从文件开头采集
}
}
filter {
#Only matched data are send to output.
}
output {
elasticsearch {
action => "index" #The operation on ES
hosts => "127.0.0.1:9200" #ElasticSearch host, can be array.
index => "applog" # 创建一个ES的index
}
}
启动Logstash
> cd ..
> ./bin/logstash -f config/logstash-nginx.conf
搞掂,至此,我们通过logstash完成了:采集本机nginx的日志,存储到ElasticSearch的配置过程,很简单吧。我们可以通过浏览器就可以查看到存到Es索引为applog的数据了
二、kibana 报表配置
简单介绍下左边菜单栏
- Discover 发现:其实就是个搜索页,运用DSL(es的检索语言)对es的数据进行检索,结果以列表展示
- Visualize 可视报表:待会儿会着重讲到
- Dashboard 仪表盘:在Visualize中配置的所有报表,都可在此页进行展示
- Timelion 时间轴?:官方解释 Timelion is a time series data visualizer that enables you to combine totally independent data sources within a single visualization 我的理解是一个基于时间维度,你可以进行复杂的计算,最终得到可视化结果的一个工具(待后面研究哈)
- Management 管理:一些通用的配置,比如配置索引index,管理Visualize和Dashboard等
- Dev Tools 开发者工具:一般用来调试DSL(es的检索语言)
好,再回到上面的图,我们在Management配置一个 applog 的索引,细心的同学就会发现这其实就是上面logstash-nginx.conf文件,output中Elasticsearch的index,记得Time-field name 时间项那项是必填的,我的理解是,时间对于日志来说,是不可缺少的一个维度,所以我们Es中的数据,一定要有一个时间的字段
去到Discover,我们就可以看到applog索引下的nginx数据了,记得右上角是时间范围的选项
再去到Visualize,让我们自定义一个报表,饼图好了,选择Pie chart
我的需求是,在applog索引数据中统计含有 200、304、404三个字符串的数量,详细的配置说明就不展开,保存并命令这个报表名称为【状态码】
好,我们再来到Dashboard,来配置仪表盘,很简单,选中我们刚刚配置的【状态码】(我另外还配了两个报表),就可以展示出来了,可以随意拖动,放大或缩小
至此,本文通过Logstash采集nginx日志,存到Elasticsearch,再在Kibana上报表展示的全过程已经全部介绍完了,都是最简单的demo,大家可以多实操