關於 Syslog 紀錄 remote log - BBS
By Eden
at 2008-06-13T01:39
at 2008-06-13T01:39
Table of Contents
由於這幾天比較忙碌,一直到現在才把結果貼上來分享~
感謝 giacch 網友的協助測試,
經過一連串的測試,就如 giacch 所描述的,
不過應該不能說是誤用,畢竟兩個方式都可以讓 syslogd 跑起來,
而且在 /etc/rc.d/syslogd 的 script 中,最後也是丟給 /usr/sbin/syslogd 去跑,
/etc/rc.d/syslogd 只是做了一些前處理的動作~
只是後來發現效果不同,以致於 remote log 失敗~
經過如下:
小弟原先以 /etc/rc.d/syslogd -4 -a 0/0:* 的方式啟動 syslogd,
發現 syslogd 雖然成功啟動,但並沒有接收遠端的封包,
為了確認遠端 udp 封包是否正確傳入,發現 tcpdump 可以正確抓取到封包,
證實遠端並沒有問題,原因一定是出在 syslogd 身上~
google 了一些文件後發現並沒有特別提到兩種啟動方式的差異,
倒是有些提到要在 /etc/rc.conf 加入 syslogd_flags="-4 -a 0.0.0.0/0:*" ,
跟著做完,重啟 syslogd、重啟 server,還是無法進行 remote log ~
後來收到 giacch 網友的 mail 討論,在討論過程中提點了敝人一些可能的問題,
只是情況依舊,有封包,沒紀錄,
最後敝人提議將 log 轉給 giacch 的 server ,由其測試是否能成功寫入紀錄,
giacch 同意協助做測試,因此敝人馬上修改 log server 位置,
giacch 也將其 syslogd 重啟為接受 remote log,
接著就告知敝人其已經收到寫入的紀錄,並將 log 內容告知敝人,
經確認該 log 內容是正確的,那問題就出在兩台 server 的 syslogd 差在哪裡,
比對後發現敝人使用 /etc/rc.d/syslogd 啟動,
而 giacch 網友使用 /usr/sbin/syslogd 啟動,
接著馬上將 syslogd kill,並從 /usr/sbin/syslogd 重啟 syslogd ......成功了!
追究其原因猜測,在 /etc/rc.d/syslogd 的最後一行為:run_rc_command "$1"
因為 /etc/rc.d/syslogd 是一個 shell script,
如果 script 中沒有把後面參數原封不動的傳給目標檔案去執行,
那這些參數等於是在過程中被丟棄了,
加上 /etc/rc.d/syslogd 只接受 start/stop/restart/force 等參數,
而 /usr/sbin/syslogd 卻不接受上述參數,而接受 -4 -a 0/0:* 之類的參數,
更加確定兩種啟動方式會有極大的差別!
結論就是:remote log 務必從 /usr/sbin/syslogd 下參數。
感謝 giacch 網友的協助測試,讓敝人對 remote log 的疑問有了成果,感謝 giacch!
唯一未解開的疑問是:已經在 rc.conf 中加入 syslogd_flags="-4 -a 0.0.0.0/0:*"
為何 reboot 之後依然無法自動啟用 remote log?
--
感謝 giacch 網友的協助測試,
經過一連串的測試,就如 giacch 所描述的,
不過應該不能說是誤用,畢竟兩個方式都可以讓 syslogd 跑起來,
而且在 /etc/rc.d/syslogd 的 script 中,最後也是丟給 /usr/sbin/syslogd 去跑,
/etc/rc.d/syslogd 只是做了一些前處理的動作~
只是後來發現效果不同,以致於 remote log 失敗~
經過如下:
小弟原先以 /etc/rc.d/syslogd -4 -a 0/0:* 的方式啟動 syslogd,
發現 syslogd 雖然成功啟動,但並沒有接收遠端的封包,
為了確認遠端 udp 封包是否正確傳入,發現 tcpdump 可以正確抓取到封包,
證實遠端並沒有問題,原因一定是出在 syslogd 身上~
google 了一些文件後發現並沒有特別提到兩種啟動方式的差異,
倒是有些提到要在 /etc/rc.conf 加入 syslogd_flags="-4 -a 0.0.0.0/0:*" ,
跟著做完,重啟 syslogd、重啟 server,還是無法進行 remote log ~
後來收到 giacch 網友的 mail 討論,在討論過程中提點了敝人一些可能的問題,
只是情況依舊,有封包,沒紀錄,
最後敝人提議將 log 轉給 giacch 的 server ,由其測試是否能成功寫入紀錄,
giacch 同意協助做測試,因此敝人馬上修改 log server 位置,
giacch 也將其 syslogd 重啟為接受 remote log,
接著就告知敝人其已經收到寫入的紀錄,並將 log 內容告知敝人,
經確認該 log 內容是正確的,那問題就出在兩台 server 的 syslogd 差在哪裡,
比對後發現敝人使用 /etc/rc.d/syslogd 啟動,
而 giacch 網友使用 /usr/sbin/syslogd 啟動,
接著馬上將 syslogd kill,並從 /usr/sbin/syslogd 重啟 syslogd ......成功了!
追究其原因猜測,在 /etc/rc.d/syslogd 的最後一行為:run_rc_command "$1"
因為 /etc/rc.d/syslogd 是一個 shell script,
如果 script 中沒有把後面參數原封不動的傳給目標檔案去執行,
那這些參數等於是在過程中被丟棄了,
加上 /etc/rc.d/syslogd 只接受 start/stop/restart/force 等參數,
而 /usr/sbin/syslogd 卻不接受上述參數,而接受 -4 -a 0/0:* 之類的參數,
更加確定兩種啟動方式會有極大的差別!
結論就是:remote log 務必從 /usr/sbin/syslogd 下參數。
感謝 giacch 網友的協助測試,讓敝人對 remote log 的疑問有了成果,感謝 giacch!
唯一未解開的疑問是:已經在 rc.conf 中加入 syslogd_flags="-4 -a 0.0.0.0/0:*"
為何 reboot 之後依然無法自動啟用 remote log?
--
Tags:
BBS
All Comments
Related Posts
sasl安裝問題
By Daniel
at 2008-06-12T15:36
at 2008-06-12T15:36
請問postfix的安裝問題
By Annie
at 2008-06-11T20:13
at 2008-06-11T20:13
是否可以聽聲音?
By Valerie
at 2008-06-11T17:45
at 2008-06-11T17:45
請問itoc版的Maple6/11更新
By Queena
at 2008-06-11T12:39
at 2008-06-11T12:39
L7-filter
By Emma
at 2008-06-11T12:05
at 2008-06-11T12:05