我有點困難,設置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上的日誌記錄服務器,因此我無法看到通信的阻止位置。 –