我有一些麻煩過濾來自幾個來源(惠普交換機)的消息,我想有一些建議。在syslog-NG中無法正確過濾來自HP交換機的系統日誌消息?
我有一個巨大的syslog-NG配置文件,過濾來自許多不同來源的消息(Unix服務器,NAS文件管理器,家電等)
我通常使用主機()函數過濾消息,或過濾器(),甚至程序()。
但是,我無法過濾來自某些HP交換機(網絡& SAN交換機)的消息,而消息格式似乎正確。
例如,即時接收消息,例如:
Mar 14 10:40:48 switchname program: message contents here
和我創建這樣的濾波器(在日誌功能使用更新版本):
filter f_network {
host("switch*");
};
但它不工作(而所有其他類型的設備正在工作) 我也嘗試過濾程序名稱,同樣的問題。
有沒有辦法對此進行調查並理解它爲什麼不起作用? 也許郵件的格式不同,主機字段不是這個(我試過所有其他字段,並沒有設法使其工作)
當使用tcpdump嗅探網絡接口,我可以看到一個正常的消息(沒有特殊字符隱藏或其他,顯然,但也許我沒有使用正確的標誌)
任何方式來檢查此?
感謝 問候
嗨,似乎優先級(PRI)值從消息的開始丟失了。 AFAIK,它應該看起來像這樣: –
嗨,似乎優先級(PRI)值從消息的開頭丟失。 AFAIK,它應該看起來像這樣: <133> Feb 25 14:09:07 webserver syslogd:restart。 在閱讀此類消息時,您可以使用虛擬目標來檢查syslog-ng宏的值嗎?例如: 目標d_file文件(「/ var/log/messages」模板(「pri = $ {priority} date = $ {ISODATE} host = $ {HOST} program = $ {PROGRAM} message = $ { MSG} \ n「)); }; 如果問題是宏值不匹配,那麼您的交換機不會正確地格式化消息。 –
謝謝羅伯特,我會嘗試,讓你知道它顯示的是什麼!這就是我正在尋找的東西(即模板)。 如果消息格式不正確,會發生什麼情況?它會被移位字段處理嗎?或者根本不處理? – olivierg