该系列博客是Logstash的学习应用,部分示例来自官方文档。
参考:
官方文档
拼接在一起多个输入和输出插件编辑
一. 简介
示例参考官网,在本部分中,您将创建一个Logstash管道,该管道从控制台和Filebeat客户端获取输入,然后将信息发送到控制台,并将信息直接写到文件中。
二. 实现
可以先参看上一篇博客,这示例基于它基础上扩展。(也可以忽略)
【弄nèng - Logstash】入门篇(二)—— 使用Logstash解析Apache Web日志(使用Filebeat采集数据)
2.1 下载安装Logstash
下载地址:传送门
解压即可(需要先安装JDK8)
2.2 配置输入端Filebeat
1.准备日志文件
下载地址: Here
解压到E:\technology\elk\beat\目录下(任意目录即可)
2.安装Filebeat
Logstash的默认安装包括Beats input插件。Beats输入插件使Logstash能够从Elastic Beats框架接收事件
-
2.1 下载安装安装很简单,下载zip包解压即可,下载地址: 传送门
-
2.2 解压之后修改filebeat.yml,用以下几行替换内容。确保paths指向logstash-tutorial.log您先前下载的示例Apache日志文件 。
filebeat.prospectors:
- type: log
paths:
- E:\technology\elk\beat\logstash-tutorial.log\*
fields:
level: debug
output.logstash:
hosts: ["localhost:5044"]
output.logstash将尝试连接端口5044
paths 处理的文件的绝对路径
level: debug 代表在每个event中添加level=debug字段
- 2.3 运行Filebeat,在logstash启动之后再启动Filebeat,不然Filebeat会提示连接不到5044
./filebeat -e -c filebeat.yml -d "publish"
*如果启动filebeat后没有数据输出,可以手动改下读取的日志文件,因为filebeat默认每次从上次读取的offset后开始读取 *
2.3 配置logstash
1. 编写logstash配置文件
在logstash-6.0.0\bin创建配置文件(任意目录即可,启动时需要指定目录)
filebeat_std_file.conf
input {
stdin {
}
beats {
port => "5044"
}
}
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}"}
}
geoip {
source => "clientip"
}
}
output {
stdout {
codec => rubydebug
}
file {
path => "E:\test.txt"
}
}
输入源有两个,控制台和beat
输出源有两个,控制台和file
2.启动logstash
cd到Logstash的根目录,执行启动命令 (windows用cmd终端进入)
cd logstash-6.0.0
bin/logstash -f filebeat_std_file.conf
- -e表示在启动时直接指定pipeline配置
- -f表示使用配置文件启动
- –config.test_and_exit 选项解析配置文件并报告任何错误
- –config.reload.automatic 选项允许自动重新加载配置,这样您就不必每次修改配置文件时都要停止并重新启动Logstash
3.测试
启动成功filebeat终端显示如下:
logstash终端显示如下:
在logstash控制台输入123之后,在文件中和控制台就可以看到效果。
文件内容:
源码地址
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~