Logstash 日志管道
logstash 读取、解析和转发日志,管道由 input、filter、output 三部分组成。它适合复杂解析和 enrichment,但资源开销比轻量采集器大。
logstash -f pipeline.conf
logstash -f pipeline.conf --config.test_and_exit
logstash -f pipeline.conf --log.level=debug
logstash --path.settings /etc/logstash
logstash -e 'input { stdin {} } output { stdout {} }'
pipeline.conf:
input {
beats {
port => 5044
}
}
filter {
grok {
match => { "message" => "%{TIMESTAMP_ISO8601:ts} %{LOGLEVEL:level} %{GREEDYDATA:msg}" }
}
date {
match => [ "ts", "ISO8601" ]
}
}
output {
elasticsearch {
hosts => ["http://es:9200"]
index => "app-%{+YYYY.MM.dd}"
}
}
--config.test_and_exit,语法错误会导致进程起不来。jvm.memory、队列和 output 错误。pipelines.yml 隔离,避免不同日志互相拖累。filebeat / vector — 采集器elasticsearch — 输出端kibana — 查询与可视化合上页面,先回答,再展开对照。
--config.test_and_exit 检查语法。