logstash
https://www.elastic.co/guide/en/logstash/current/introduction.html
logstash 是一个流数据引擎,具有数据收集、过滤、输出的功能
jvm依赖
下载地址 https://www.elastic.co/downloads
docker镜像 docker.elastic.co/logstash/logstash:8.1.0

logstash 的工作流程:
| 输入 | 过滤 | 输出 |
|---|---|---|
| stdin | grok | stdout |
| file | mutate | elasticsearch |
| syslog | drop | file |
| redis | drop | graphite |
| filebeat | geoip | statsd |
grok:解析和构建任意文本。Grok 目前是 Logstash 中将非结构化日志数据解析为结构化和可查询数据的最佳方式。Logstash 内置了 120 种模式,您很可能会找到一种满足您需求的模式!
mutate:对事件字段执行常规转换。您可以重命名、移除、替换和修改事件中的字段。
drop:完全删除事件,例如调试事件。
clone:创建事件的副本,可能添加或删除字段。
geoip:添加有关 IP 地址地理位置的信息(还可以在 Kibana 中显示惊人的图表!
- 测试命令
docker run --rm -it docker.elastic.co/logstash/logstash:8.1.0 logstash -e 'input { stdin { } } output { stdout {} }'
- 配置文件结构
# This is a comment. You should use comments to describe
# parts of your configuration.
input {
...
}
filter {
...
}
output {
...
}
input { stdin { } }
output {
elasticsearch { hosts => ["localhost:9200"] }
stdout { codec => rubydebug }
}
logstash 测试配置文件语法的命令--config.test_and_exit
logstash -f /opt/logstash/pipeline/logstash.conf --config.test_and_exit
启动命令 --config.reload.automatic
logstash -f /opt/logstash/pipeline/logstash.conf --config.reload.automatic
docker run --rm --net=host -it -v /tmp:/tmp docker.elastic.co/logstash/logstash:8.1.0 logstash -f /tmp/logstash.conf --config.reload.automatic
filebeat下载
docker.elastic.co/beats/filebeat:8.1.0
filebeat.inputs:
- type: log
paths:
- /var/log/*.log
fields:
type: syslog
output.logstash:
hosts: ["localhost:5044"]
docker run --rm -it --net=host -v /tmp:/tmp docker.elastic.co/beats/filebeat:8.1.0 filebeat -c /tmp/filebeat.yml
浙公网安备 33010602011771号