2014-08-28 79 views
0

看來我需要一個關於如何解析HAProxy日誌並將它們發送到Zabbix的建議。 下面是兩個工作正常的腳本,我需要他們一起工作,作爲一行腳本。管道HAProxy日誌解析器和Zabbix_sender

命令,以從HAProxy的日誌查詢處理時間內實時:

tail -f haproxy.log | awk '{print $10}' | cut -d/ -f4 

命令到一個值送入ZABBIX。

echo "- haproxy.app.processing.time 1234"|zabbix_sender --config /etc/zabbix/zabbix_agentd.conf --input-file - -vv 

我想這應該是一些把管道連接在一起的技巧,那就是我需要幫助的地方。請指教。

預先感謝您!

回答

0

您可以在第二的開頭awk第一線和echo年底取代cut,然後將兩條線連接在一起,就像這樣:

... | awk -F/ '{ print "- haproxy.app.processing.time", $4 }' | ... 

您也不妨考慮使用-F選項到tail,以便該命令在日誌文件旋轉時不停止,並且--real-time選項也可以到zabbix_sender,以便在接收到數據後立即發送數據,而不是等待一堆值堆積。

+0

我發現以下解決方案 'tail -f haproxy.log | awk'{print $ 10}'|剪下-d/-f4 |同時讀取VALUE;做回聲「 - haproxy.app.processing.time $ VALUE」| zabbix_sender --config /etc/zabbix/zabbix_agentd.conf --real-time --input-file - ;完成' 試圖使用你的,但它返回了一個錯誤: 'tail -f haproxy.log | awk -F /'{print「 - haproxy.app.processing.time」,$ 4}'| zabbix_sender --config /etc/zabbix/zabbix_agentd.conf --real-time --input-file - -vv' – Max 2014-08-29 23:45:21

+0

@Max:在我的解決方案中,您可能錯過了「awk」{print $ 10}'「。有了這個部分,你會得到什麼錯誤? – asaveljevs 2014-08-30 03:55:58