2020年6月14日 星期日

用 syslogd 收集遠端STB/ROUTER的Error Messages


由於測試的機台,常常自動REBOOT,所以這時候出了問題,都不知道問題點,這時候syslogd -r 的功能便有用了。由於要記錄到伺服器上,所以比然要先準備一台Linux Server。就是公司的舊筆電可以派上用場:

一、Syslog伺服器端的設定

1. 預設syslog是不開啟網路功能,若要啟用這個功能,必須在啟動syslogd時加上參數 -r 才行。

修改/etc/systemd/system/syslog.service 這個設定檔即可

# vi /etc/syslog.conf

修改成下面這個參數

SYSLOGD_OPTIONS=”-m 0 -r”

2. 確定/etc/service是否有syslog的設定,若沒有這個設定就沒辦法接受或傳送記錄,甚至無法啟動syslog囉。

#  vi /etc/service

請確定有下面這個設定,沒有的話請自行加上

syslog 514/udp

3. 重新啟動syslog

# /sbin/service syslog restart

4. 檢查syslog是否監聽UDP 514

#  netstat -tulp
udp 0 0 0.0.0.0:514 0.0.0.0:* 3830/syslogd

就是有開了。

二、syslog 機台端的設定

客戶端的設定還滿簡單的,只要稍微修改syslog.conf即可

# vi /etc/syslog.conf

把原本寫在/var/log/messages裡的記錄送到位於192.168.1.10的syslogd
只要將/var/log/messages改為@hostname就可以了

*.info;mail.none;authpriv.none;cron.none @192.168.1.10

若你者機可以解析主機名稱,當然你也可以使用主機名稱代替IP
若沒有DNS也可以寫死在/etc/hosts裡

mail.* @syslog.myserver.com

重啟syslogd後,你可以到伺服器端的/var/log/messages看看是否有將記錄轉送過來

# service syslog restart

特別注意事項

在設定syslog時要特別注意不要造成syslog-loops的迴圈情況,很快的你會發現你的硬碟被一堆相同的訊息塞滿。

沒有留言:

張貼留言