2014IT鐵人賽-25-syslog
今天一樣使用 EasyCloud 雲端簡單龍的帳戶, 那就登入 https://gemini.nchc.org.tw/ 來開始練習openSUSE 基礎指令吧.
今天練習log的管理吧
筆記部份:
當事件發生時, 最重要的是取得充足的資訊, 所以如何觀察系統的資訊以及管理system log也是一個重要的課題, 今天就來進行相關的練習吧.
如何取得開機的相關訊息呢?
#dmesg | grep 關鍵字 觀察相關訊息
有關 log 的儲存位置
系統內大部分的log皆存放於 /var/log 目錄
Log Server
常見的套件有 syslog 以及 syslog-ng , 今天要介紹的是 syslog-ng
套件: syslog-ng
相關設定檔:
如果要更換 log 管理的套件
可以藉由修改 /etc/sysconfig/syslog 內的
log 的傳遞分為兩個部份
Facilities 從哪一個服務或是設備傳來
Priorities log level, 優先性
log 的優先等級
Priorities
有關於 log 的封存, 我們可以藉由 log rotate 來達成
**logrotate**
/etc/logrotate.conf log封存的設定檔(Global)
開始練習吧
Lab: 取得系統資訊
#dmesg | more <觀察開機資訊>
#uname -r <觀察 kernel 版本>
#chkconfig --list <觀察系統服務>
#cat /etc/*release <觀察系統版本資訊>
#uptime <觀察系統loading>
#lscpu <觀察 CPU 資訊>
#netstat -tupln <觀察 network port>
Lab: Syslog-ng
目的: 指定pure-ftpd的記錄檔存檔路徑
#netstat -tupln | grep :21 <觀察port 21有沒有服務>
#grep -i syslog /etc/pure-ftpd/pure-ftpd.conf <觀察Facility為ftp>
SyslogFacility ftp
#rcpure-ftpd start <啟動pure-ftpd 服務>
#netstat -tupln | grep :21 <觀察port 21有沒有服務>
#ftp 127.0.0.1 <請嘗試以ftp登入, 輸入bye -->離開>
#tail /var/log/messages <請觀察資訊>
修改syslog-ng的設定, 新增以下設定
#vi /etc/syslog-ng/syslog-ng.conf
filter f_ftp { level(debug .. emerg) and facility(ftp); }; <指定Facility及Priorities>
destination ftpall { file("/var/log/ftpmesg"); }; <指定log檔的位置>
log { source(src); filter(f_ftp); destination(ftpall); };
#rcsyslog restart <重新啟動syslog服務>
#ftp 127.0.0.1 <請嘗試以以ftp登入, 輸入bye -->離開>
#ls /var/log <請觀察資訊>
#cat /var/log/ftpmesg <請觀察資訊>
Lab: logrotate
目的: 備份pure-ftpd 的紀錄檔
要求如下
1.每天備份一次
2.紀錄檔要壓縮
3備份上限5份,封存完建立空檔案
#vi /etc/logrotate.d/ftp
/var/log/ftpmesg{
daily
compress
rotate 5
create
postrotate
/etc/init.d/syslog reload
endscript
}
#ls /var/log <請觀察資訊>
#logrotate -f /etc/logrotate.d/ftp <強制作logrotate動作>
#ls /var/log <請觀察資訊>
optional Lab: Log Server
Server :
加入以下設定 允許 UDP 514 port 傳送log
#vi /etc/syslog-ng/syslog-ng.conf
source s_udp { udp( ip("0.0.0.0") port(514) ); };
destination s_udp { file("/var/log/from_net"); };
log { source(s_udp); destination(s_udp); };
#rcsyslog restart <重新啟動syslog服務>
Client:
修改設定檔, 將log 傳到 log server
#vi /etc/syslog-ng/syslog-ng.conf
destination logserver { udp("伺服器IP" port(514)); };
log { source(src); destination(logserver); };
#rcsyslog restart <重新啟動syslog服務>
測試
Server:
#ls /var/log <請觀察資訊>
Client:
#rcsyslog restart <重新啟動syslog服務>
Server:
#ls /var/log <請觀察資訊>
Fun with Day 25 ~