httpd vhosts的流畅日志未转发到日志记录服务器

时间:2015-11-09 04:18:24

标签: apache logging vhosts fluentd

我很难设置流利的vhosts转发httpd访问日志。我有五个vhosts,我想为每个单独记录访问和错误,其次,能够流畅地拖尾这些文件并将日志转发到日志记录服务器。第一个没问题,但第二个是。

使用此conf文件,来自所有vhost的所有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和tail td-agent.log,这很好。

td-agent在两台服务器上以root用户身份运行,文件权限为666,因此td-agent应该能够读取access_log

日志记录服务器上的端口24224已打开,我已使用nmap进行检查,我可以telnet到端口24224并查看日志服务器上td-agent.log中的条目,因此网络没有问题

那么,我做错了什么?

1 个答案:

答案 0 :(得分:0)

这是一个基本错误...... Web服务器配置正确,但接收服务器未正确配置。

我没有在日志记录服务器上的td-agent.conf中包含源和匹配模式。

添加这个解决了我的问题。

<source>
  type forward
</source>
<match *.access>
  type stdout
</match>

所以我会将此标记为已解决。