2015年9月14日 星期一

分析和儲存登錄檔

分析和儲存登錄檔
系統登錄檔
RHEL7主要由兩個服務進行處理系統記錄:systemd - journald and rsyslog
rsyslog依據嚴重性優先等級及功能種類分類,並且主要將記錄檔存在/var/log目錄底下


Overview of system log files
Log file
Purpose
/var/log/messages
大多數系統日誌消息記錄在這裡。唯一的例外是涉及到驗證和電子郵件處理,週期性運行以及除錯有關
/var/log/secure
安全性和認證相關的訊息和錯誤
/var/log/maillog
與郵件服務相關的訊息
/var/log/cron
與定期執行的任務相關的訊息
/var/log/boot.log
與系統啟動相關的訊息


登錄檔設定
Overview of syslog priorities
Code
Priority
Severity嚴重性
0
emerg
系統不可用,通常系統幾乎是當機的情況
1
alert
系統發生嚴重錯誤,必須立即採取行動
2
crit
發生比err還危急的錯誤訊息,通常這種狀況已經到達系統臨界點了
3
err
系統發生一些重大錯誤訊息,通常說明服務無法啟動的原因
4
warning
系統發生一些警告訊息,但還不影響服務運作的狀況
5
notice
系統正常,但發生一些需要注意的訊息事件
6
info
一般基本資訊說明的訊息事件
7
debug
用來除錯時產生的訊息資料


Overview of syslog facility (使用 man 3 syslog 查詢)
種類
說明
auth
主要與認證/授權有關的機制,例如 login, ssh, su 等需要帳號/密碼的東西
authpriv
與 auth 類似,但記錄較多帳號私人的資訊,包括 pam 模組的運作等等
cron
就是例行性工作排程 cron/at 等產生的訊息
daemon
主要是系統的服務所產生的資訊,例如 systemd 產生的訊息
ftp
與 FTP 通訊協定有關的訊息
kern
就是核心 (kernel) 產生的訊息,大部分都是硬體偵測以及核心功能的啟用
local0~local7
保留給本機用戶使用的一些登錄檔訊息,較常與終端機互動
lpr
列印相關的訊息
mail
與郵件收發有關的訊息
news
與新聞群組伺服器有關的訊息
syslog
就是由 syslog 相關協定產生的資訊,其實就是 rsyslogd 這支程式本身產生的訊息
user
在使用者層級所產生的資訊,例如後續會介紹到的用戶使用 logger 指令來記錄登錄檔的功能
uucp
全名為 Unix to Unix Copy Protocol,早期用於 unix 系統間的程序資料交換


rsyslogd 針對各種服務與訊息記錄的設定檔寫在/etc/rsyslog.conf
其格式如下:
服務名稱/種類[.=!]訊息嚴重等級       訊息記錄的位置或裝置或主機
# 底下以 mail 這個服務產生的 info 等級為例:                                   
mail.info                                          /var/log/maillog_info                                
連結符號
[.=!] 連結符號
代表意思
.
代表『比該等級 (含該等級本身) 還要嚴重的都被記錄下來』
例如: mail.info 代表只要是 mail 的資訊,而且該資訊等級比info (含 info 本身)嚴重時,就會被記錄下來的意思
.=
代表該等級的資訊都記錄下來, 其他的都不要記錄

.!
除了該等級不記錄,之外的其他等級都記錄
PS : none (不需登錄等級)


登錄檔輪替
祥見文章>登錄擋輪替


分析系統日誌項目
以/var/log/secure為例分析log項目
❶Feb 11 20:11:48   ❷localhost   ❸sshd[1433] :   ❹Failed password for student from 172.25.0.10 port 59344 ssh2
❶  產生的時間
❷  產生日誌的主機
❸  產生日誌的程式或程序
❹  日誌內容


使用tail指令監視一個日誌登錄檔
指令格式:tail -f  /路徑/檔名    -f 為即時監看(即時更新)
範例:
[root@localhost ~]# tail -f /var/log/secure
Sep 14 20:01:30 localhost gdm-password]: gkr-pam: unlocked login keyring
Sep 14 20:25:09 localhost gdm-password]: gkr-pam: unlocked login keyring
Sep 14 21:53:54 localhost gdm-password]: gkr-pam: unlocked login keyring


使用logger指令寫入一個登錄訊息
指令格式:logger -p 服務種類[.=!]嚴重等級  "訊息內容"
範例:
[root@localhost ~]# logger -p local7.notice "Log entry created on serverX"
#以下為測試結果
[root@localhost ~]# tail -f  /var/log/boot.log
        Starting RealtimeKit Scheduling Policy Service...
netcf-transaction.sh[691]: Running  start: No pending transaction to rollback
        Starting firstboot configuration program (graphical mode)...
        Starting LSB: Start the ipr init daemon...
        Starting D-Bus System Message Bus...
[  OK  ] Started D-Bus System Message Bus.
[  OK  ] Started Permit User Sessions.
[  OK  ] Started Rollback uncommitted netcf network config change transactions.
        Starting Command Scheduler...
Sep 15 00:17:24 localhost student: Log entry created on serverX