文章目录
该系列博客是Logstash的学习应用,示例来自官方文档。
更多示例参考官方文档logstash配置示例
参考:
官方文档
使用Logstash解析日志
一. 简介
示例来自官网,在本部分中,您将创建一个Logstash管道,该管道使用Filebeat来获取Apache Web日志作为输入,解析这些日志以从日志中创建特定的命名字段,并将解析后的数据写入Elasticsearch集群。
二. 实现
2.1 下载安装
下载地址:传送门
解压即可(需要先安装JDK8)
2.2 配置输入端Filebeat
1.准备日志文件
下载地址: Here
解压到E:\technology\elk\beat\目录下(任意目录即可)
2.安装Filebeat
Logstash的默认安装包括Beats input插件。Beats输入插件使Logstash能够从Elastic Beats框架接收事件
-
下载安装安装很简单,下载zip包解压即可,下载地址: 传送门
-
解压之后修改filebeat.yml,用以下几行替换内容。确保paths指向logstash-tutorial.log您先前下载的示例Apache日志文件 。
filebeat.prospectors:
- type: log
paths:
- E:\technology\elk\beat\logstash-tutorial.log\*
output.logstash:
hosts: ["localhost:5044"]
Filebeat将尝试连接端口5044
Filebeat处理的文件的绝对路径
- 运行Filebeat,在logstash启动之后再启动Filebeat,不然Filebeat会提示连接不到5044
./filebeat -e -c filebeat.yml -d "publish"
2.3 配置logstash
1. 编写logstash配置文件
在logstash-6.0.0\bin创建配置文件(任意目录即可,启动时需要指定目录)
filebeat_std.conf
input {
beats {
port => "5044"
}
}
output {
stdout { codec => rubydebug }
}
2.启动logstash
cd到Logstash的根目录,执行启动命令 (windows用cmd终端进入)
cd logstash-6.0.0
bin/logstash -f filebeat_std.conf
- -e表示在启动时直接指定pipeline配置
- -f表示使用配置文件启动
- –config.test_and_exit 选项解析配置文件并报告任何错误
- –config.reload.automatic 选项允许自动重新加载配置,这样您就不必每次修改配置文件时都要停止并重新启动Logstash
3.测试
启动成功filebeat终端显示如下:
logstash终端显示如下:
2.3 使用Grok过滤器插件解析Web日志编辑
我们可以发现每行数据都存储在message字段中,如果我们想要进一步拆分,您想解析日志消息以从日志中创建特定的命名字段,就需要使用Grok过滤器插件。
1. 编写logstash配置文件
重新修改filebeat_std.conf,添加filter
filebeat_std.conf
input {
beats {
port => "5044"
}
}
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}"}
}
}
output {
stdout { codec => rubydebug }
}
2. 启动logstash
显示如下:
2.4 使用Geoip过滤器插件增强数据编辑
除解析日志数据以进行更好的搜索外,筛选器插件还可以从现有数据中获取补充信息
加粗样式
input {
beats {
port => "5044"
}
}
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}"}
}
geoip {
source => "clientip"
}
}
output {
stdout { codec => rubydebug }
}
重新启动logstash和filebeat,显示如下:
(需要重新编辑下日志文件,不然filebeat读取之后就不会重头读取了)
2.5 输出到es
修改filebeat_std.conf
input {
beats {
port => "5044"
}
}
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}"}
}
geoip {
source => "clientip"
}
}
output {
elasticsearch {
hosts => [ "localhost:9200" ]
}
}
源码地址
IT-CLOUD-LOGSTASH :LOGSTASH教程源码。博文在本优快云 logstash系列中。
项目推荐
IT-CLOUD :IT服务管理平台,集成基础服务,中间件服务,监控告警服务等。
IT-CLOUD-ACTIVITI6 :Activiti教程源码。博文在本优快云 Activiti系列中。
IT-CLOUD-ELASTICSEARCH :elasticsearch教程源码。博文在本优快云 elasticsearch系列中。
IT-CLOUD-KAFKA :spring整合kafka教程源码。博文在本优快云 kafka系列中。
IT-CLOUD-KAFKA-CLIENT :kafka client教程源码。博文在本优快云 kafka系列中。开源项目,持续更新中,喜欢请 Star~