linux系統中日誌分析 是很重要的一部分,下面介紹一下簡單的日誌自定義配置和日誌收集linux
1 日誌配置服務器
配置文件在/etc/rsyslog.conf中網絡
日誌分爲日誌類型,日誌級別。post
日誌類型:測試
mail 郵件類型優化
cron 定時任務類型debug
user 用戶類型調試
authpriv 審計類型rest
news 新聞類型日誌
kern 內核數據類型
daemon 守護類型
日誌級別(告警級別)
0 debug 調試級別
1 info 消息級別
2 notice 注意級別
3 warning 告警級別
4 err 錯誤級別
5 crit 級別
6 aler 級別
7 emerg 急救級別
能夠根據本身的定義A.B 其中A是日誌類型B是日誌級別,配置好日誌輸出在那些文件中
# test
mail.err /var/log/myMailErr.log
配置完rsyslog.conf以後重啓rsyslog:
service rsyslog restart
重啓完以後
/var/log/myMailErr.log 就自動生成
日誌文件配置好,日誌文件生成以後,能夠測試一下,
logger -p mail.err 'hello you mail have some error'
檢查myMailErr.log 文件
2 日誌收集
管理多臺服務器的時候管理人員不可能登錄每一臺服務器(下面就叫客戶機)去查看日誌,須要把每一臺客戶機的日誌發送到服務機(管理人員的本機),進行日誌收集。
先在客戶機的/etc/rsyslog.conf文件裏面加上*.* @@IP :514
上面IP是發送到服務機的IP,514是端口
重啓service rsyslog restart
默認收集的客戶機的日誌都在/var/log/messages裏面(以實際狀況而定,也能夠查看服務機對於的日誌文件裏面)
注意:客戶機要和服務機網絡互通
上面是客戶機的新建的日誌消息
日誌消息已經發送到服務機上
3 日誌優化
在服務機上的/etc/rsyslog.conf 末尾加上下面代碼重啓rsyslog
$template Remote,"/var/log/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log"
:fromhost-ip, !isequal, "127.0.0.1" ?Remote
優化以後每一臺客戶機發送過來的日誌都會自動保存在以客戶機網關命名的文件裏面,這樣就對不一樣的客戶機日誌分批收集分析。
4 日誌輪循
日誌輪循也叫日誌切割,能夠根據不一樣的時間進行切割,好比按天切割,按周切割,按月切割,按年切割。時間到了就自動從新創建日誌文件,並以日期爲後綴。也能夠按照日誌大小切割。
在/etc/logrotate.conf 文件中設置切割規則,
以下天天切割
/var/log/log-file {
daily
rotate 5
compress
delaycompress
missingok
notifempty
create 644 root root
postrotate
/usr/bin/killall -HUP rsyslogd
endscript
}
以下按大小切割
/var/log/myMailErr.log{
daily
rotate 5
compress
delaycompress
missingok
notifempty
create 644 root root
postrotate
/usr/bin/killall -HUP rsyslogd
endscript
}
能夠修改系統時間到當天最後的幾秒而後等待幾秒只能哦給,來驗證按天截取。按天截取系統自動執行有時候沒有那麼準時在下一天第一秒,因此能夠手動強制切割:
logrotate -vf /etc/logrotate.conf