【问题标题】:Piping HAProxy log parser and Zabbix_sender管道 HAProxy 日志解析器和 Zabbix_sender
【发布时间】:2014-08-28 15:42:33
【问题描述】:

似乎我需要关于如何解析 HAProxy 日志并将它们发送到 Zabbix 的建议。 下面是两个运行良好的脚本,我需要它们作为一行脚本一起工作。

从 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

我想用管道将它们连接在一起应该是一些技巧,这就是我需要帮助的地方。请指教。

提前谢谢你!

【问题讨论】:

    标签: pipe haproxy zabbix


    【解决方案1】:

    您可以将第一行末尾的cut 和第二行开头的echo 替换为awk,然后将这两行连接在一起,如下所示:

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

    您可能还希望考虑将-F 选项用于tail,以便在日志文件轮换时命令不会停止,并将--real-time 选项用于zabbix_sender,以便它尽快发送数据当它被接收时,而不是等待一堆值堆积起来。

    【讨论】:

    • 我找到了以下解决方案tail -f haproxy.log | awk '{print $10}' | cut -d/ -f4 | while read VALUE; do echo "- haproxy.app.processing.time $VALUE" | zabbix_sender --config /etc/zabbix/zabbix_agentd.conf --real-time --input-file -; done尝试使用您的解决方案,但返回错误: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:在我的解决方案中,您可能错过了“awk '{print $10 }'”。有了那个部分,你会得到什么错误?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    相关资源
    最近更新 更多