linux檢視系統異常日誌(linux檢視系統崩潰日誌)
1簡介
linux系統擁有非常強大的日誌功能,儲存著幾乎有所有操作記錄,包括核心和程式產生的各種錯誤資訊,警告資訊或其他提示資訊,對這些資訊管理員瞭解系統的執行狀態和分析問題非常有用。可以從日誌檔案中獲得自已想要的資訊。
1.1 日誌程序
預設日誌守護程序為syslog. 位於/usr/sbin/syslog 或/usr/sbin/syslogd或/usr/sbin/rsyslog.d.預設配置檔案為:/etc/syslog.conf ,/etc/rsyslog.conf,可以配置生成的日誌
檢視命令:ps -ef | grep syslog
root@onlinegame:/var/log# ps -ef | grep syslog
root 5659 1 0 2017 ? 00:23:22 /usr/sbin/rsyslogd
syslog服務可以根據日誌的型別、優先順序將日誌儲存到不同檔案中。
linux系統log日誌檔案預設路徑在/var/log中。
1.2 常用日誌型別
型別 | 說明 |
auth | 使用者認證時產生的日誌,如login命令、su命令。 |
console | 針對系統控制檯的訊息。 |
cron | 系統定期執行計劃任務時產生的日誌。 |
daemon | 某些守護程序產生的日誌。 |
kern | 系統核心訊息。 |
郵件日誌。 | |
news | 網路新聞傳輸協議(nntp)產生的訊息。 |
ntp | 網路時間協議(ntp)產生的訊息。 |
user | 使用者程序。 |
1.3 常用日誌優先順序
優先順序 | 說明 |
emerg | 緊急情況,系統不可用(例如系統崩潰),一般會通知所有使用者。 |
alert | 需要立即修復,例如系統資料庫損壞。 |
crit | 危險情況,例如硬碟錯誤,可能會阻礙程式的部分功能。 |
err | 一般錯誤訊息。 |
warning | 警告。 |
notice | 不是錯誤,但是可能需要處理。 |
info | 通用性訊息,一般用來提供有用資訊。 |
debug | 除錯程式產生的資訊。 |
none | 沒有優先順序,不記錄任何日誌訊息。 |
1.2 常用的日誌
1. /var/log/messages: 包括整體系統普通訊息,其中也包含系統啟動期間的日誌。此外,還包括mail,cron,daemon,kern,auth等內容.
2. /var/log/syslog:它上messages日誌不同,它只記錄警告資訊,通常是系統出問題的資訊。
3. /var/log/user.log: 記錄所有等級使用者資訊的日誌.
4. /var/log/auth.log: 包含系統授權資訊,使用者登陸和使用許可權機制
5. /var/log/daemon.log: 包含各種系統後臺守護程序日誌資訊
6. /var/log/kern.log: 包含核心產生的日誌,有助於在定製核心時解決問題.
7. /var/log/boot.log: 記錄系統在引導過程中發生的事件,即linux系統開機自檢過程顯示的資訊
8. /var/log/lastlog: 記錄最後一次使用者成功登陸的時間,IP等資訊,lastlog檢視
9. /var/log/secure: linux系統安全日誌,記錄使用者和工作組變壞情況,使用者登陸認證情況
10. /var/log/btmp:記錄linux登陸失敗的使用者,時間和遠端IP
11. /var/log/wtmp:此日誌檔案永久記錄每個使用者登入,登出及系統的啟動,停機的事件,用last檢視
12. /var/log/utmp:記錄有關當前登入的每個使用者的資訊。如who,w,users,finger等需要訪問此檔案
2 日誌檔案簡介
2.1. /var/log/messages日誌
包含的資訊比較全面
1. 啟動時日誌
2. 玩家操作日誌等
格式:
日期時間 機器名命令描述資訊
root@onlinegame:/var/log$ vi messages
Dec 24 06:25:29 onlinegame rsyslogd: [origin software="rsyslogd" swVersion="8.4.2" x-pid="5659" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
Dec 24 06:27:01 onlinegame rsyslogd0: action 'action 26' resumed (module 'builtin:ompipe') [try http://www.rsyslog.com/e/0 ]
Dec 25 09:22:45 onlinegame -bash: HISTORY: PID=19793 PPID=19792 SID=19793 USER=zhangke01 CMD=ll
Dec 25 09:23:13 onlinegame -bash: HISTORY: PID=19793 PPID=19792 SID=19793 USER=zhangke01 CMD=cd wo
2.2 /var/log/syslog日誌檔案
預設centos不生成,可以在/etc/rsyslog.conf配置讓系統生成日誌檔案。
syslog只記錄警告資訊,常常是系統出問題的資訊,所以要關注此檔案.
要讓系統生成該日誌檔案,在/etc/rsyslog.conf檔案中加上:*.warning /var/log/syslog 該日誌檔案能記錄當使用者登入時login記錄下的錯誤口令、Sendmail的問題、su命令執行失敗等資訊。
該日誌檔案記錄最近成功登入的事件和最後一次不成功的登入事件,由login生成。在每次使用者登入時被查詢,該檔案是二進位制檔案,需要使用lastlog命令檢視,根據UID排序顯示登入名、埠號和上次登入時間。如果某使用者從來沒有登入過,就顯示為"**Never logged in**"。該命令只能以root許可權執行。簡單地輸入lastlog命令後就會看到類似圖4的資訊:
luoying@onlinegame:/var/log$ vi syslog
Dec 31 17:29:47 onlinegame exim[18063]: write failed on panic log: length=104 result=-1 errno=28 (No space left on device)
Dec 31 17:59:48 onlinegame exim[20253]: 2017-12-31 17:59:47 failed to write to main log: length=47 result=-1 errno=28 (No space left on device)
Feb 6 17:46:26 onlinegame -bash: HISTORY: PID=3687 PPID=3686 SID=3687 USER=gugang CMD=python
Feb 6 17:49:23 onlinegame bash: HISTORY: PID=30491 PPID=30482 SID=30424 USER=root CMD=cd ..
Feb 6 17:49:26 onlinegame bash: HISTORY: PID=30491 PPID=30482 SID=30424 USER=root CMD=cd svn up
Feb 6 17:49:29 onlinegame bash: HISTORY: PID=30491 PPID=30482 SID=30424 USER=root CMD=ls -l
Feb 6 17:49:34 onlinegame bash: HISTORY: PID=30491 PPID=30482 SID=30424 USER=root CMD=svn up
Feb 6 17:49:38 onlinegame bash: HISTORY: PID=30491 PPID=30482 SID=30424 USER=root CMD=cd ../engine/
Feb 6 17:49:41 onlinegame bash: HISTORY: PID=30491 PPID=30482 SID=30424 USER=root CMD=sh stop_node.sh
Feb 6 17:49:42 onlinegame bash: HISTORY: PID=30491 PPID=30482 SID=30424 USER=root CMD=sh start_node.sh
2.3 /var/log/boot.log日誌
記錄系統在引導過程中發生的事件,即linux系統開機自檢過程顯示的資訊
[root@localhost log]# cat boot.log
[ OK ] Started Show Plymouth Boot Screen.
[ OK ] Reached target Paths.
[ OK ] Reached target Basic System.
Starting File System Check on /dev/disk/by-uuid/6d32...88652b684ca0...
systemd-fsck[301]: fsck: error 2 (No such file or directory) while executing fsck.ext2 for /dev/disk/by-uuid/6d32919a-e3d2-4e22-a5a5-88652b684ca0
[ OK ] Started File System Check on /dev/disk/by-uuid/6d329...5-88652b684ca0.
[ OK ] Started dracut initqueue hook.
Mounting /sysroot...
[ OK ] Mounted /sysroot.
[ OK ] Reached target Initrd Root File System.
Starting Reload Configuration from the Real Root...
[ OK ] Started Reload Configuration from the Real Root.
[ OK ] Reached target Initrd File Systems.
[ OK ] Reached target Initrd Default Target.
Welcome to CentOS Linux 7 (Core)!
[ OK ] Stopped Switch Root.
[ OK ] Stopped target Switch Root.
[ OK ] Stopped target Initrd File Systems.
2.4 /var/log/wtmp日誌檔案(使用者登陸)
該日誌檔案永久記錄每個使用者登入、登出及系統的啟動、停機的事件。
隨著系統正常執行時間的增加,該檔案的大小也會越來越大,增加的速度取決於系統使用者登入的次數。
該日誌檔案可以用來檢視使用者的登入記錄,last命令就通過訪問這個檔案獲得這些資訊,並以反序從後向前顯示使用者的登入記錄,last也能根據使用者、終端tty或時間顯示相應的記錄。
[root@localhost log]# last
root pts/1 192.168.1.1 Tue Feb 6 17:18 still logged in
root pts/0 192.168.1.1 Tue Feb 6 17:18 still logged in
root pts/1 192.168.1.1 Thu Feb 1 21:10 - 21:14 (00:04)
root pts/0 192.168.1.1 Thu Feb 1 14:21 - 21:47 (07:25)
root pts/1 192.168.1.1 Tue Jan 30 10:46 - 19:18 (08:31)
root pts/0 192.168.1.1 Tue Jan 30 09:32 - 19:18 (09:45)
luoying pts/0 192.168.1.5 Wed Jan 24 21:21 - 21:21 (00:00)
2.5 /var/log/utmp日誌檔案(使用者登陸)
該日誌檔案記錄有關當前登入的每個使用者的資訊。
因此這個檔案會隨著使用者登入和登出系統而不斷變化,它只保留當時聯機的使用者記錄,不會為使用者保留永久的記錄。
系統中需要查詢當前使用者狀態的程式,如who、w等就需要訪問這個檔案。該日誌檔案並不能包括所有精確的資訊,因為某些突發錯誤會終止使用者登入會話,而系統沒有及時更新 utmp記錄,因此該日誌檔案的記錄不是百分之百值得信賴的。
[root@localhost log]# who
(unknown) :0 2018-01-24 21:19 (:0)
root pts/0 2018-02-06 17:18 (192.168.1.1)
root pts/1 2018-02-06 17:18 (192.168.1.1)
[root@localhost log]# w
18:20:58 up 12 days, 21:03, 3 users, load average: 0.00, 0.01, 0.05
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 17:18 2.00s 0.38s 0.05s w
root pts/1 17:18 1:02m 0.05s 0.05s -bash
2.6 /var/log/lastlog日誌檔案(使用者登陸)
記錄最後一次使用者成功登陸的時間,IP等資訊,lastlog檢視
wtmp、utmp、lastlog都記錄了使用者的登陸情況,所有記錄包含了相同的時間戳。而且檔案是二進位制儲存的,不能用cat/vi直接檢視。而是使用相關的命令令檢視。
[root@localhost log]# lastlog
使用者名稱 埠 來自 最後登陸時間
root pts/1 192.168.1.1 二 2月 6 17:18:46 0800 2018
bin **從未登入過**
daemon **從未登入過**
sync **從未登入過**
shutdown **從未登入過**
halt **從未登入過**
mail **從未登入過**
games **從未登入過**
gdm :0 三 1月 24 21:19:08 0800 2018
tcpdump **從未登入過**
haha pts/0 192.168.1.5 三 1月 24 21:21:28 0800 2018
mysql pts/1 二 4月 11 15:15:05 0800 2017
test pts/0 192.168.1.1 四 12月28 20:20:05 0800 2017
2.7 /var/log/users.log日誌檔案(使用者操作日誌)
記錄所有等級使用者資訊的日誌.
root@onlinegame:/var/log$ vi users.log
Dec 25 10:01:26 onlinegame bash: HISTORY: PID=24187 PPID=24179 SID=24125 USER=root CMD=ll
Dec 25 10:01:27 onlinegame bash: HISTORY: PID=24187 PPID=24179 SID=24125 USER=root CMD=rm -rf bin
Dec 25 10:01:28 onlinegame bash: HISTORY: PID=24187 PPID=24179 SID=24125 USER=root CMD=ls
Dec 25 10:01:29 onlinegame bash: HISTORY: PID=24187 PPID=24179 SID=24125 USER=root CMD=cd ..
Dec 25 10:01:29 onlinegame bash: HISTORY: PID=24187 PPID=24179 SID=24125 USER=root CMD=ll
Dec 25 10:01:32 onlinegame bash: HISTORY: PID=24187 PPID=24179 SID=24125 USER=root CMD=cd ..
Dec 25 10:01:32 onlinegame bash: HISTORY: PID=24187 PPID=24179 SID=24125 USER=root CMD=ll
Dec 25 10:01:39 onlinegame bash: HISTORY: PID=24187 PPID=24179 SID=24125 USER=root CMD=sh pack.sh
Dec 25 10:02:11 onlinegame bash: HISTORY: PID=24187 PPID=24179 SID=24125 USER=root CMD=ll
2.8 /var/log/auth.log(授權資訊)
包含系統授權資訊,使用者登陸和使用許可權機制
root@onlinegame:/var/log$ vi auth.log
Feb 6 20:49:19 onlinegame sshd[11351]: Did not receive identification string from 192.168.44.161
Feb 6 20:50:01 onlinegame CRON[11387]: pam_unix(cron:session): session opened for user root by (uid=0)
Feb 6 20:50:01 onlinegame CRON[11386]: pam_unix(cron:session): session opened for user root by (uid=0)
Feb 6 20:50:01 onlinegame CRON[11388]: pam_unix(cron:session): session opened for user root by (uid=0)
Feb 6 20:50:01 onlinegame CRON[11389]: pam_unix(cron:session): session opened for user root by (uid=0)
Feb 6 20:50:01 onlinegame CRON[11386]: pam_unix(cron:session): session closed for user root
Feb 6 20:50:01 onlinegame CRON[11388]: pam_unix(cron:session): session closed for user root
Feb 6 20:50:01 onlinegame CRON[11389]: pam_unix(cron:session): session closed for user root
Feb 6 20:50:03 onlinegame CRON[11387]: pam_unix(cron:session): session closed for user root
2.9 /var/log/daemon.log(守護程序日誌)
包含各種系統後臺守護程序日誌資訊
root@onlinegame:/var/log$ vi daemon.log
Dec 25 09:52:18 onlinegame dbus[1781]: [system] Activating service name='org.freedesktop.login1' (using servicehelper)
Dec 25 09:52:19 onlinegame dbus[1781]: [system] Activating service name='org.freedesktop.systemd1' (using servicehelper)
Dec 25 09:52:19 onlinegame dbus[1781]: [system] Activated service 'org.freedesktop.systemd1' failed: Launch helper exited with unknown return code 1
Dec 25 09:52:19 onlinegame dbus[1781]: [system] Activated service 'org.freedesktop.login1' failed: Launch helper exited with unknown return code 1
2.10 /var/log/kern.log(核心日誌)
包含核心產生的日誌,有助於在定製核心時解決問題.
luoying@onlinegame:/var/log$ vi kern.log
Dec 25 20:06:59 onlinegame kernel: [19645166.590333] UDP: bad checksum. From 192.168.41.42:5353 to 224.0.0.251:5353 ulen 48
Dec 25 20:07:07 onlinegame kernel: [19645174.122019] UDP: bad checksum. From 192.168.41.42:137 to 192.168.43.255:137 ulen 58
Dec 28 15:29:52 onlinegame kernel: [19887739.280311] device eth0 entered promiscuous mode
Dec 28 15:30:04 onlinegame kernel: [19887751.777992] device eth0 left promiscuous mode
Dec 28 15:30:38 onlinegame kernel: [19887785.920414] device eth0 entered promiscuous mode
Dec 28 15:30:43 onlinegame kernel: [19887790.828312] device eth0 left promiscuous mode
Dec 28 15:30:48 onlinegame kernel: [19887795.052369] device eth0 entered promiscuous mode
2.11 /var/log/secure(系統安全日誌)
linux系統安全日誌,記錄使用者和工作組變壞情況,使用者登陸認證情況
[root@localhost log]# vim secure
Feb 6 17:18:23 localhost sshd[517]: Accepted password for root from 192.168.1.1 port 15063 ssh2
Feb 6 17:18:23 localhost sshd[517]: pam_unix(sshd:session): session opened for user root by (uid=0)
2.12 /var/log/btmp(登陸失敗日誌)
記錄linux登陸失敗的使用者,時間和遠端IP