我有点困难,设置fluentd来转发虚拟主机的httpd访问日志。我有五个虚拟主机,我希望为每个虚拟主机记录访问和错误,其次,让这些文件尾随并且将日志转发到日志记录服务器。第一个没有问题,但第二个是。fluentd日志未被转发到日志服务器的httpd虚拟主机
使用此conf文件,来自所有虚拟主机的所有httpd日志都将写入单个文件并正确转发给日志记录服务器。
<source>
type tail
format apache2
tag apache.access
path /var/log/apache/access_log
pos_file /var/log/apache/access_log.pos
</source>
<match apache.access>
type forward
send_timeout 60s
recover_wait 10s
heartbeat_interval 1s
phi_threshold 16
hard_timeout 60s
<server>
name internal-1
host 192.168.0.245
port 24224
</server>
</match>
但是,当我改变路径到日志文件中的httpd-vhosts.conf这样的:
CustomLog "/var/log/apache/internal-wiki/access_log" combined
和变化TD-agent.conf这样:
<source>
type tail
format apache2
tag internalwiki.access
path /var/log/apache/internal-wiki/access_log
pos_file /var/log/apache/internal-wiki/access_log.pos
</source>
<match internalwiki.access>
type forward
send_timeout 60s
recover_wait 10s
heartbeat_interval 1s
phi_threshold 16
hard_timeout 60s
<server>
name internal-1
host 192.168.0.245
port 24224
</server>
</match>
日志已正确写入CustomLog,但未被转发到日志记录服务器。
TD-agent.log的输出是
2015-11-09 12:23:44 +0900 [warn]: no patterns matched tag="internalwiki.access"
如果我改变匹配类型到stdout和尾TD-agent.log在本地机器上,这是好的。
TD-代理正在运行的服务器和文件的权限对根的666所以TD-代理应该能够读取访问日志
端口24224的日志服务器是开放的,我已经使用nmap检查,我可以telnet到端口24224并查看日志服务器上td-agent.log中的条目,因此网络没有问题。
那么,我做错了什么?
所以如果你离开尾巴,只是改变匹配到标准输出是否有效? 如果它抱怨了标签,然后尝试将匹配标签设置为**以进行测试,并查看消息转发的标签。 – dutzu
是的,stdout按预期工作。 apache访问日志聚集在本地机器上的td-agent.log中。在相同的问题中将匹配模式更改为**结果,日志不会转发到日志记录服务器。所以这会提示两台服务器之间的某种通信问题。但是,他们可以互相ping通,端口已打开,我可以通过Web服务器telnet到端口24224上的日志记录服务器,因此我无法看到通信的阻止位置。 –