介绍
Logstash是一个具有实时管道功能的开源数据收集引擎,Logstash可以动态地将来自不同数据源的数据统一起来,并将数据规范化为你选择的目的地,清理和大众化你的所有数据,用于各种高级下游分析和可视化用例。
虽然Logstash最初推动了日志收集方面的创新,但是它的功能远远超出了这个用例,任何类型的事件都可以通过大量的输入、过滤器和输出插件来丰富和转换,使用许多原生编解码可以进一步简化摄取过程。Logstash通过利用大量和多种数据来提高你的洞察力。安装使用
-
下载logstash镜像
docker pull logstash:7.4.1
查看镜像
docker images
编辑logstash.yml配置文件
logstash.yml配置文件放在宿主机/home/logstash目录下,内容如下:
path.config: /usr/share/logstash/conf.d/*.conf
path.logs: /home/logstash/logs
- 新建logstash.conf文件
logstash.conf文件放在宿主机/data/elk/logstash/logstash.conf目录下,内容如下
input {
beats {
port => 5044
codec => "json"
}
}
output {
elasticsearch { hosts => ["192.168.12.183:9200"] }
stdout { codec => rubydebug }
}
最终目录为- 启动logstash
docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 -p 5044:5044 --name xinyar-logstash -v /home/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml -v /home/logstash/logstash.conf/:/usr/share/logstash/conf.d/ logstash:7.4.1
- 启动成功后使用命令查看容器状态
docker logs logstash
整合filebeat后,采集logback java日志配置
input {
beats {
port => 5044
}
}
filter{
grok{match => ["message","%{TIMESTAMP_ISO8601:timestamp} \[%{DATA:thread}\] %{DATA} %{LOGLEVEL:level} %{NOTSPACE:className} \[%{DATA:line}\] %{GREEDYDATA:info}"]}
mutate {
remove_field => "input"
remove_field => "tags"
remove_field => "ecs"
remove_field => "@version"
remove_field => "host"
remove_field => "path"
}
}
output {
elasticsearch {
hosts => ["192.168.1.137:9200"]
index => ["logstath-%{[fields][index]}-%{+YYYY-MM-dd}"]
}
stdout { codec => rubydebug }
}
配置文件中fields和index来自filebeat中配置信息