一、修改system.conf
1.修改内容
找到logstash-sample配置文件,在/etc/logstash/文件夹下,将其复制到/etc/logstash/conf.d/文件夹下
# 转到目录
# cd /etc/logstash/
# 查看
# ls
# 复制
cp /etc/logstash/logstash-sample.conf /etc/logstash/conf.d/logstash-sample.conf
接着修改conf文件的内容。我们要上传的是messages系统日志,在path中填入目录, start_position表示从开头处读取
# 内容
input {
file {
path => "/var/log/messages" # 日志路径
type => "systemlog" # 类型
start_position => "beginning" # 从何处开始
stat_interval => "2" #监听间隔时间
# sincedb_path => "/dev/null"
}
}
output {
elasticsearch {
hosts => ["localhost:9200"] # 修改
index => "logstash-systemlog-%{+YYYY.MM.dd}" # 命名索引为logstash-systemlog-年-月-日
}
}
2.权限调整
但修改好后还不能直接运行,因为一般来说messages有权限限制,因此要重新调整权限,不然就会什么都没有发生,运行权限调整代码,然后再启动
# 修改权限
chmod 644 /var/log/messages*
# 运行
systemctl restart logstash
此时应该在elasticsearch-head生成了相应的索引
二、Kibana查看
创建Index pattern
这里的pattern name不一定要全名,也可以logstash-systemlog*,就可以将所有前缀为logstash-systemlog的一起加载,适合后续多个日期的显示
下一步的Time field选择@timestamp,也就是时间戳
如果数据成功导入,就可以显示出来了
三、其他问题
1.Logstash重启记录变少
logstash在第一次导入数据时将自动创建一个文件监控记录(sincedb),导致若是删除索引重新运行logstash会发现记录量非常少,这有两种解决办法,参见博客ELK入门——解决:删除索引,重运行logstach后messages数据量变少
2.时间戳为导入时间
在Kibana上,我们可以发现,时间戳的信息为导入的时间结点,然而我们想要时间戳匹配的是日志生成时间,这就需要用到grok+data,匹配信息中的时间,并将时间戳修改,参见博客ELK入门(五)——messages日志生成时间替换时间戳(grok+data)
3.Logstash重启报错
Address already in use
错误信息很明显告诉我们是该端口已经被占用了,这可能是因为ctrl+C,因此我们结束此进程,重新启动
# 结束进程
systemctl stop logstash
# 查看
# ps -ef |grep logstash
# 结束
# kill -9 XXXX
参考博客: