上一篇日志是跟着别人写的文章一步一步走的,并没有自己深刻的理解
今天又研究了一天又有一些新的收获,赶紧记下来。只列出做了修改的部分。
1.不再需要filebeat了,logstash直接就可以读取日志文件
2.logstash配置文件修改
这里推荐一个很棒的网站,学logstash一定要看:LogStash最佳实践
解释一下吧:
logstash配置文件不可或缺的三个部分:input,file,output。
input 指定日志数据来源
file 指明从文件读取日志(其他的方式去上面推荐的网站瞅下)
path是个数组,可以配置多个文件路径,每个路径可以使用通配符,即每个路径可以指向一组文件。
type给读取到的日志设置一个自定义类型
start_position指定从什么位置开始读取,begin是从头开始读(同时要删掉sincedb文件噢,否则还是从尾巴读)
sincedb_path指定sincedb文件存放在什么位置(注:sincedb是logstash存储日志的文件)
filter 用来过滤日志数据,只有通过过滤,才会传给output
date 没有完全理解是干啥的,大概是以当前时间重写了日志时间,如果以File模式以Begining模式读取日志必须要加这条
multiline 有时我们打出的日志数据中间有换行,它在日志文件中有多行,我这里告诉logstash,如果这条日志是以[开头,它就属于前一条日志
if 语句 logstash支持简单的表达式,我这里告诉logstash,如果是空数据,直接丢弃
grok 由于从文件读取日志,logstash不知道日志语义,就无法做信息解析,比如这条日志的级别是什么,这里通过正则匹配出日志级别给level字段
output
输出日志到elasticsearch,指定索引格式(index)和日志类型(document_type,这里取的是file中定义的type)
说一下ELK分别如何启动
三个工具都有bin目录,bin目录下都有可执行文件,elasticsearch和kibana的配置文件都在config目录下,是yml格式,logstash的配置文件是我自己创建的config目录,格式为conf。启动时都定位到它们所在的目录,建议三个程序放在一个screen中,一是好管理,二是启动之后ctrl+a+d就不用管了。按以下顺序启动,elasticsearch要在logstash前面不然读取到的日志没地方输送了
./bin/elasticsearch
./bin/logstash agent -f ./config/logstash.conf
./bin/kibana
elaticsearch和kibana的管理界面怎么使用不说了,不是难点所在