logstash

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}"
  }
}

易错点与排错

相关命令

读完自测

合上页面,先回答,再展开对照。

  1. 改完管道配置后进程起不来,先做什么?
  2. 吞吐低且 CPU 高,先怀疑什么?
  3. 启用持久化队列能防丢数据,代价是什么?
答案
  1. 先用 --config.test_and_exit 检查语法。
  2. grok 正则写得不好,先用少量样本测试。
  3. 增加磁盘占用和恢复时间。