有人能告诉我们fluentd在td-agent.log文件中引发此错误是否正常吗?
2015-07-31 13:15:19 +0000 [warn]: pattern not match: "- - - [31/Jul/2015:13:15:19 +0000] GET http://172.31.108.218/ HTTP/1.1 200 0 \"-\" \"ELB-HealthChecker/1.0\""
虽然这是一个格式良好的apache 2日志:
- - - [31/Jul/2015:13:15:19 +0000] GET http://172.31.108.218/ HTTP/1.1 200 0 \"-\" \"ELB-HealthChecker/1.0\"
下面是源配置:
<source>
type tail
format apache2
path /var/log/varnish/varnishncsa.log
pos_file /var/log/td-agent/tmp/access.log.pos
tag "apache2.varnish-access"
</source>
我想不出上面有什么问题。
2条答案
按热度按时间moiiocjp1#
您可以为Apache访问日志设置自己的
format
,而不是从ELB-HealthChecker中过滤出日志,这在前几个字段方面更灵活一些。我在从collectd获取/server-status检查时遇到了同样的错误(使用它来监视SignalFx)。如下设置源:
允许两个日志行,如:
以及:
您可以使用Fluentular测试
format
正则表达式匹配。参见相关:Fluentd apache log format with multiple host ip
9fkzdhlc2#
问题是这些ELB-HealthChecker行日志的引用IP字段为空。然后日志与fluentd的apache 2日志格式不匹配。
因此,解决此问题的方法是使用ELB-HealthChecker用户代理过滤日志。