syslog到遠端server與Ubuntu logger問題

收syslog的設定

修改/etc/rsyslog.conf, 把下面這段內容的註解打開,即可收容udp/tcp的syslog封包
# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

如果你要收容log的facility沒有設定過的話,記得還要去查看/etc/rsyslog.d/*.conf的修改

丟syslog的設定

可以參考下面這篇
http://www.rsyslog.com/sending-messages-to-a-remote-syslog-server/

例如
local7.* @@other-server.example.net:10514
就是把local7的syslog丟到名稱為other-server.example.net埠號10514的遠端log server


進行自我測試

可以用logger指令進行測試
logger -dni "other-server.example.net" -P 10514 --tag "logname" "log test message $(date)" -p local7.debug 

但是透過wireshark觀察到logger並沒有正常把封包送出,並且在本機上我看到了local7內容是我上面的指令送出的各條測試log

解決logger無法丟syslog

查了網路資訊
https://askubuntu.com/questions/371604/sending-udp-packets-with-logger-command
因為Ubuntu內建的logger版本2.20.1屏蔽掉了-n的設定,所以無法用logger完成自我測試工作
解決方法:自行編譯logger程式

#下載source, 並切換到2.21版
git clone git://git.debian.org/~lamont/util-linux.git
cd util-linux.git
git checkout -b v2.21 v2.21

#編譯
./autogen.sh
./configure
make 

編譯出來的looger會在
misc-utils/logger

留言