ELK windows安装采坑记录

filebeat收集log4j日志重复如何处理

你这种情况是生产上日志结构的常见现象。你这种就不能使用ess.* 这种方式去采集日志。你正在采集的ess.log日志一段时间后生成ess.xxx.log,这是对于logstash或fielbeat来说就是发现了一个新的文件,回重新进行采集,这就重复了。
一般这种情况只要指定/path/log/ess.log,只采集ess.log文件,这样就不会重复。
或者,修改日志名:ess.json.log.20180708,然后指定采集/path/log/*.log,这样只会采集以log结尾的文件,文件拆分后也不会重复采集

logstash命令行调试

命令行参数

Logstash 提供了一个 shell 脚本叫 logstash 方便快速运行。它支持一下参数:

  • -e

意即执行。我们在 "Hello World" 的时候已经用过这个参数了。事实上你可以不写任何具体配置,直接运行 bin/logstash -e '' 达到相同效果。这个参数的默认值是下面这样:

input {
    stdin { }
}
output {
    stdout { }
}
  • --config 或 -f

意即文件。真实运用中,我们会写很长的配置,甚至可能超过 shell 所能支持的 1024 个字符长度。所以我们必把配置固化到文件里,然后通过 bin/logstash -f agent.conf 这样的形式来运行。

此外,logstash 还提供一个方便我们规划和书写配置的小功能。你可以直接用 bin/logstash -f /etc/logstash.d/ 来运行。logstash 会自动读取 /etc/logstash.d/ 目录下所有的文本文件,然后在自己内存里拼接成一个完整的大配置文件,再去执行。

  • --configtest 或 -t

意即测试。用来测试 Logstash 读取到的配置文件语法是否能正常解析。Logstash 配置语法是用 grammar.treetop 定义的。尤其是使用了上一条提到的读取目录方式的读者,尤其要提前测试。

  • --log 或 -l

意即日志。Logstash 默认输出日志到标准错误。生产环境下你可以通过 bin/logstash -l logs/logstash.log命令来统一存储日志。

  • --filterworkers 或 -w

意即工作线程。Logstash 会运行多个线程。你可以用 bin/logstash -w 5 这样的方式强制 Logstash 为过滤插件运行 5 个线程。

注意:Logstash目前还不支持输入插件的多线程。而输出插件的多线程需要在配置内部设置,这个命令行参数只是用来设置过滤插件的!

提示:Logstash 目前不支持对过滤器线程的监测管理。如果 filterworker 挂掉,Logstash 会处于一个无 filter 的僵死状态。这种情况在使用 filter/ruby 自己写代码时非常需要注意,很容易碰上 NoMethodError: undefined method '*' for nil:NilClass 错误。需要妥善处理,提前判断。

  • --pluginpath 或 -P

可以写自己的插件,然后用 bin/logstash --pluginpath /path/to/own/plugins 加载它们。

  • --verbose

输出一定的调试日志。

小贴士:如果你使用的 Logstash 版本低于 1.3.0,你只能用 bin/logstash -v 来代替。

  • --debug

输出更多的调试日志。

小贴士:如果你使用的 Logstash 版本低于 1.3.0,你只能用 bin/logstash -vv 来代替

http://doc.yonyoucloud.com/doc/logstash-best-practice-cn/get_start/full_config.html

https://www.elastic.co/guide/en/logstash/2.0/config-examples.html#config-examples

猜你喜欢

转载自blog.csdn.net/zhousenshan/article/details/81140925