2013-07-04 88 views
0

我拼命嘗試將消息作爲JSON發送到PHP腳本。Syslog-ng format-json不工作

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

php腳本沒問題。使用簡單的宏效果很好,但「格式JSON的」函數不總是返回此:

模板錯誤:$(格式JSON)

我什麼都試過了我能找到的文檔中,但是我得到的所有迴應都是「模板錯誤」。官方文檔(link)甚至使用兩種不同的拼寫,但不是很有希望。

任何想法?

回答

0

找到了原因。顯然,syslog-ng在Ubuntu(12)上被拆分成單獨的包。我不得不安裝syslog-ng-mod-json

syslog-ng並沒有絲毫暗示該函數缺少或未知,而不是一些常規錯誤,這真是一個恥辱。

0

format-json和format_json語法應該都可以工作,連字符和下劃線在syslog-ng中是等效的。 至於實際問題,你有沒有嘗試設置format-json的範圍參數,如「$(format_json --scope selected_macros)」?默認情況下,它是空的,這意味着沒有任何格式。

HTH,

問候,

羅伯特·菲克特

0

如果你從源代碼編譯,你應該先安裝json-c庫(yum install json-c-devel)。