###########################
####### 10.系統日誌 #######
###########################
#######1.系統日誌默認分類#######
/var/log/messages ##系統服務及日誌,包括服務的信息,報錯等等
/var/log/secure ##系統認證信息日誌
/var/log/maillog ##系統郵件服務信息
/var/log/cron ##系統定時任務信息
/var/log/boot.log ##系統啓動信息
####2.日誌管理服務rsyslog####
1.rsyslog負責採集日誌和分類存放日誌
2.rsyslog日誌分類
vim /etc/rsyslog.conf ##主配置文件
服務.日誌級別 /存放文件
*.* /var/log/westos
systemctl restart rsyslog
###格式###
日誌設備(類型).(連接符號)日誌級別 日誌處理方式(action)
#####日誌設備(可以理解爲日誌類型)#####
auth ##pam產生的日誌
authpriv ##ssh,ftp等登陸信息的驗證信息
cron ##時間任務相關
kern ##內核
lpr ##打印
mail ##郵件
mark(syslog)-rsyslog ##服務內部的信息,時間標識
news ##新聞組
user ##用戶程序產生的相關信息
uucp ##unix to unix copy, unix主機之間相關的通信
local 1~7 ##自定義的日誌設備
######日誌級別######
——————————————————————
debug ##有調試信息的,日誌信息最多
info ##一般信息的日誌,最常用
notice ##最具有重要性的普通條件的信息
warning ##警告級別
err ##錯誤級別,阻止某個功能或者模塊不能正常工作的信息
crit ##嚴重級別,阻止整個系統或者整個軟件不能正常工作的信息
alert ##需要立刻修改的信息
emerg ##內核崩潰等嚴重信息
none ##什麼都不記錄
##注意:從上到下,級別從低到高,記錄的信息越來越少
##詳細的可以查手冊:man 3 syslog
####連接符號#####
————————————————————
.xxx:表示大於等於xxx級別的信息
.=xxx:表示等於xxx級別的信息
.!:表示在xxx之外的等級的信息
#####實例#####
1.記錄到普通文件或設備文件:
*.* /var/log/file.log ##絕對路徑
*.* /dev/pts/0
測試:logger -p local3.info 'KadeFor is testing the rsyslog and logger' logger 命令用於產生日誌
2.發送給用戶(需要在線才能收到)
*.* root
*.* root,kadefor,up01 #使用,號分隔多個用戶
*.* * #*號表示所有在線用戶
3.忽略,丟棄
local3.* ~ #忽略所有local3類型的所有級別的日誌
4.執行腳本
local3* ^/tmp/a.sh #^號後跟可執行腳本或程序的絕對路徑
#日誌內容可以作爲腳本的第一個參數
#可以用來觸發報警
######日誌同步#######
systemctl stop firewalld ##關閉兩臺主機的防火牆(兩臺主機上都要執行)
配置日誌發送方
*.* @172.25.19.10 ##通過udp協議把日誌發送到11主機,@udp,@@tcp
配置日誌接受方
15 $ModLoad imudp ##日誌接收插件
16 $UDPServerRun 514 ##日誌接收插件使用端口
netstat -anulpe | grep rsyslog
udp 0 0 0.0.0.0:514 0.0.0.0:*
syslogd
udp6 0 0 :::514 :::*
syslogd
測試
> /var/log/messages ##兩端主機都要做
logger test message ##日誌發送方
tail -f /var/log/message ##日誌接受方
####日誌採集格式#####
$template WESTOS, "%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n'"
%timegenerated%
%FROMHOST-IP%
%syslogtag%
%msg%
\n
$ActionfileDefaultTemplate WESTOS
*.info:mail.none:authpriv.none:cron.none /var/log/messages:<<WESTOS>>
#####3.日誌分析工具journal#####
systemd-journald ##進程名稱
journalctl ##直接執行,瀏覽系統日誌
-n 3 ##顯示最新3條
-p err ##顯示報錯
-f ##監控日誌
--since --until ##--since"[YYYY-MM-DD][hh:mm:ss]"從什麼時間到什麼時間的日誌
-o verbose ##顯示日誌能夠使用的詳細進程參數
##_SYSTEMD_UNIT=sshd.service服務名稱
##_PID=1182進程pid
對system-journald管理
##默認情況下此程序會忽略重啓前的日誌信息,如不忽略:
mkdir /var/log/journal
chown root:systemd-journal /var/log/journal
chmod 2755 /var/log/journal
killall -l systemd-journald
ls /var/log/journal/4513ad59a3b442ffa4b7ea88343fa55f
system.journal user-1000.journal
補充:
man 5 rsyslog.conf ##查看rsyslog.conf的詳細幫助