Syslog-ng format-json无效

时间:2013-07-04 12:56:43

标签: json templates syslog-ng

我拼命地尝试将一条消息作为JSON发送到PHP脚本。

destination d_php {
program("/usr/bin/php -f /data/htdocs/log.php" template("$(format-json)\n")  ) ;
};

php脚本没问题。使用简单的宏效果很好,但“format-json”函数总是返回这个:

  模板中的

错误:$(format-json)

我尝试了我在文档中找到的所有内容,但我得到的所有响应都是“模板中的错误”。官方文档(link)甚至使用了两种不同的拼写,不是很有希望。

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

format-json和format_json语法应该起作用,连字符和下划线在syslog-ng中是等效的。 至于实际问题,您是否尝试过设置format-json的scope参数,如“$(format_json --scope selected_macros)”?默认情况下,它为空,这意味着无需格式化。

HTH,

问候,

Robert Fekete

答案 1 :(得分:0)

找到原因。显然,syslog-ng在Ubuntu(12)上被拆分为单独的包。我必须安装syslog-ng-mod-json

令人遗憾的是,syslog-ng没有给出函数丢失或未知的最轻微暗示,而不是一般的错误。

答案 2 :(得分:0)

如果从源代码编译,则应首先安​​装json-c库(yum install json-c-devel)。