【弄nèng - Logstash】入门篇(二)—— 使用Logstash解析Apache Web日志(使用Filebeat采集数据)

该系列博客是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教程源码。博文在本CSDN logstash系列中。


项目推荐

IT-CLOUD :IT服务管理平台,集成基础服务,中间件服务,监控告警服务等。
IT-CLOUD-ACTIVITI6 :Activiti教程源码。博文在本CSDN Activiti系列中。
IT-CLOUD-ELASTICSEARCH :elasticsearch教程源码。博文在本CSDN elasticsearch系列中。
IT-CLOUD-KAFKA :spring整合kafka教程源码。博文在本CSDN kafka系列中。
IT-CLOUD-KAFKA-CLIENT :kafka client教程源码。博文在本CSDN kafka系列中。

开源项目,持续更新中,喜欢请 Star~

发布了160 篇原创文章 · 获赞 46 · 访问量 20万+

猜你喜欢

转载自blog.csdn.net/yy756127197/article/details/104247036