歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> 關於Unix

理解和使用aix的日志系統


通常我們在進行服務器的健康性檢查,和在出現問題的時候都會去考慮查看系統的日志。 我在學習aix的過程中發現,aix的日志跟solaris或linux的日志存儲和查看的方式有著相當大的區別,為了使自己對aix的日志認識的更系統就總結了一下。 相當一部分是參考的 於寧斌《AIX 5L系統管理技術》
1.一旦系統的某個功能模塊檢測到一個錯誤或定義的需要記錄日志的事件,則記錄到/dev/error設備,把它保存在NVRAM中,這樣可以保證即使在系統崩潰的情況下也不會丟失最新的錯誤日志。
2.同時,錯誤日志進程errdemon從/dev/error文件中讀取錯誤日志,然後根據錯誤模版庫(/var/adm/ras/errtmpit)和錯誤消息庫
(/usr/lib/nls/msg/$LANGcodepoint.cat) 對其進行處理後寫入系統的錯誤日志/var/adm/ras/errlog中。
錯誤日志進程由/usr/lib/errdemon命令啟動,/usr/lib/errstop停止,默認是啟動的。
以上並不是重點,了解過程而已
errdemon進程:
從/dev/error邏輯設備文件中讀取紀錄,然後在系統錯誤日志中創建錯誤日志紀錄,顯然這才是重點。
Errdemon的配置:
/usr/lib/errdemon 命令可以啟動errdemon進程,同樣我們也可以通過使用參數來修改我們的errdemon,顯然如果我們不是太了解還是系統初始的配置更適合我們!
例如:
/usr/lib/errdemon –s 20000 設定我們的日志文件大小為20000bytes
最可能用到的可能就是-l參數了
/usr/lib/errdemon –l
# /usr/lib/errdemon -l
Error Log Attributes
--------------------------------------------
Log File /var/adm/ras/errlog
Log Size 1048576 bytes
Memory Buffer Size 16384 bytes
Duplicate Removal true
Duplicate Interval 100 milliseconds
Duplicate Error Maximum 1000
上面顯示我的錯誤日志文件是/var/adm/ras/errlog,這也是系統默認的錯誤日志的存放位置。
具體其他的參數可以參看man 手冊。
查看錯誤日志:errpt命令
用more或者其他文本的查看命令來打開errlog文件我們看到的只是一對亂碼,為了能夠查看錯誤日志文件需要使用aix的errpt命令。
使用errpt命令查看日志,可能根據使用的參數來確定輸出什麼樣的日志,甚至排序的方式,這是使用純文本的日志不能做到的,或者說不能輕易做到的。
下面我們來看errpt命令的使用。
# errpt
IDENTIFIER TIMESTAMP T C RESOURCE_NAME DESCRIPTION
9DBCFDEE 0109034400 T O errdemon ERROR LOGGING TURNED ON
192AC071 0109034300 T O errdemon ERROR LOGGING TURNED OFF
C092AFE4 0109033500 I O ctcasd ctcasd Daemon Started
A6DF45AA 0109033500 I O RMCdaemon The daemon is started.
9DBCFDEE 0109033400 T O errdemon ERROR LOGGING TURNED ON
192AC071 0106130900 T O errdemon ERROR LOGGING TURNED OFF
369D049B 0106082400 I O SYSPFS UNABLE TO ALLOCATE SPACE IN FILE SYSTE
這裡的輸出分為六列依次為:
1.錯誤標示符IDENTIFIER:並不唯一,由它來確定使用的錯誤模板,顯然同一種錯誤的IDENTIFIER是相同的。
2.時間戳TIMESTAMP:錯誤發生的時間,MMDDhhmmYY,依次表示月日時分年。
3.類型TYPE:錯誤的類型,或者說嚴重的程度。
分為6個:
PEND 設備或功能組件可能丟失 簡寫P
PERF 性能嚴重下降 P
PERM 硬件設備或軟件模塊損壞,確診了的 P
TEMP 臨時性錯誤,經過重試後已經恢復正常 T
INFO 一般消息,不是錯誤 I
UNKN 不能確定錯誤的嚴重性 U
4.種類CLASS c:指出錯誤源
H 硬件或介質故障
S 軟件故障
O 人為錯誤
U 不能確定
5. 資源名RESOURCE_NAME
最初檢測到錯誤的資源名軟件或者硬件,並不代表這個資源有問題,而只是最先在它發現的。
6.描述
顯示詳細的日志信息
# errpt -a|more
Standard input
---------------------------------------------------------------------------
Standard input
LABEL: ERRLOG_ON
IDENTIFIER: 9DBCFDEE
Date/Time: Sun Jan 9 03:44:04 BEIS
Sequence Number: 309
Machine Id: 004250B94C00
Node Id: ibm-5L
Class: O
Type: TEMP
Resource Name: errdemon
Description
ERROR LOGGING TURNED ON
Probable Causes
ERRDEMON STARTED AUTOMATICALLY
User Causes
/USR/LIB/ERRDEMON COMMAND
Recommended Actions
NONE
其它
指定日志文件 –I可以用來查看一個非errdemon指定位置的日志文件,例如某個日志文件備份。
-t 參數,只顯示-t參數指定的錯誤類型TYPE。
-s 顯示指定時間之後的日志文件.
-d 指定種類CLASS.
詳細的參數只能看man 手冊了
# errpt -a -j 74533D1A
# errpt -s 0108100100
IDENTIFIER TIMESTAMP T C RESOURCE_NAME DESCRIPTION
9DBCFDEE 0109034400 T O errdemon ERROR LOGGING TURNED ON
192AC071 0109034300 T O errdemon ERROR LOGGING TURNED OFF
C092AFE4 0109033500 I O ctcasd ctcasd Daemon Started
A6DF45AA 0109033500 I O RMCdaemon The daemon is started.
9DBCFDEE 0109033400 T O errdemon ERROR LOGGING TURNED ON
日志的清理
errclear命令可以用來清理錯誤日志
並且默認情況下cron會每天清理錯誤日志
# crontab -l
0 11 * * * /usr/bin/errclear -d S,O 30
0 12 * * * /usr/bin/errclear -d H 90
0 15 * * * /usr/lib/ras/dumpcheck >/dev/null 2>&1
顯然,找上面的例子,S,O 類的錯誤會保留30天,而H的錯誤會保留90天
errclear 0 刪除多有記錄
errclear 7 刪除7天以前的記錄
smit errclear
syslogd
信息類別.錯誤等級 記錄的位置
其中,各項的含義
信息類別
auth used by authorization systems (login)
cron used for the cron and at systems
daemon system/netword daemon
kern produced by kernel messages
lpr printing system
mail mail system
mark internally used for time stamps
news reserved for the news system
user default facility, used for any program
uucp reserved for the uucp system
錯誤等級
debug normally used for debugging
info informational messages
notice conditions that may require attention
Warning any warnings
err any errors
crit critical conditions like hardware problems
Alert any condition that demand immediate attention
emerg any emergency condition
none Do not send messages from the indicated f
acility to the selected file.
記錄的位置
可以是本地的文件(包括設備文件如/dev/console)或遠程syslog日志服務器。
cron.err /var/cronerr.log
定義記錄cron的err信息到/var/cronerr.log文件。
Copyright © Linux教程網 All Rights Reserved