天天看點

linux日志檔案

日志檔案

日志檔案:記錄本機何時何事何人所為。

日志檔案在管理中作用:

1,系統故障排錯

2,統計通路量

日志軟體:rpm  -q  rsyslog

檔案清單:rpm  -ql  rsyslog

配置檔案:rpm  -qc  rsyslog

日志檔案預設位置:ls  /var/log

#:某些第3方軟體的日志檔案,存在于自己的目錄中的log目錄中或其他位置。

常見的日志檔案(/var/log):

#:檔案類型用file指令查。多數日志檔案是純文字檔案,可用cat、head檢視,還有些二進制(data)日志檔案,需用專用指令檢視

secure : 安全相關,主要是使用者認證,如登入 、建立和删除賬号 、sudo等

audit/audit.log:審計日志.跟使用者賬号相關

messages:記錄系統和軟體的絕大多數消息.如服務啟動 、停止 、服務錯誤等.

boot.log:系統啟動日志.能看到啟動流程.

cron:計劃任務日志.會記錄crontab計劃任務的建立、執行資訊.

dmesg:硬體裝置資訊(device).純文字,也可以用dmesg指令檢視.

yum.log:yum軟體的日志,記錄yum安裝、解除安裝軟體的記錄.

lastlog:最後登入的日志.用lastlog檢視(二進制日志檔案)

btmp:登入失敗的資訊(bad).用lastb查(二進制日志檔案)

wtmp:正确登入的所有使用者指令(who、w).用last查(二進制日志檔案)

rsyslog日志程式的配置檔案:rpm -qc rsyslog 查的結果如下

/etc/logrotate.d/syslog 日志輪轉(切割、輪替)政策檔案

/etc/rsyslog.conf 主配置檔案

/etc/sysconfig/rsyslog 環境設定配置檔案

cat /etc/rsyslog.conf  主配置檔案

格式:  類别.等級   日志檔案路徑

#kern.* /dev/console

*.info;mail.none;authpriv.none;cron.none  /var/log/messages

authpriv.* /var/log/secure

mail.* -/var/log/maillog

cron.* /var/log/cron

*.emerg :omusrmsg:*

uucp,news.crit /var/log/spooler

local7.* /var/log/boot.log

local3.notice /var/log/user.log 添加此行,用于logger測試案例

第一列為日志類型和日志優先級的組合,每個類型和優先級的組合稱為一個選擇器;後面一列為儲存日志的檔案、伺服器,或輸出日志的終端。rsyslog 程序根據選擇器決定如何記錄檔。

日志類别:man 3 syslog

注:日志類别主要是用來區分軟體、服務.

log_auth 安全或授權資訊

log_authpriv  安全或授權資訊 (私有)

log_cron 計劃任務

log_daemon  系統守護程序 without separate facility value

log_ftp ftp程序相關

log_kern 核心消息 (these can't be generated from user processes)

log_local0 through log_local7 本地自定義

log_lpr 列印子系統

log_mail 郵件子系統

log_news 新聞討論區子系統

log_syslog 系統消息(8)

log_user (default) 一般使用者的等級的消息

log_uucp uucp subsystem unix like機器本身相關子系統

日志等級level:man 3 syslog

注:等級主要用來區分某個軟體中日志的分類.

log_emerg 疼痛級,嚴重錯誤

log_alert 報警.必須立即采取措施

log_crit 較嚴重

log_err 錯誤

log_warning  警告

log_notice 提示資訊.normal, but significant, condition

log_info  資訊

log_debug 調試級資訊

注:等級為none表示不記錄任何資訊.

練習:要求建立一個跟messages日志檔案相同的日志規則,将日志記錄到/var/log/my.log檔案中.

vim /etc/rsyslog.conf 執行如下操作

*.info;mail.none;authpriv.none;cron.none  /var/log/messages 找到此行

*.info;mail.none;authpriv.*;cron.none  /var/log/my.log 添加此行

重新開機rsyslog服務:systemctl restart rsyslog

檢視日志: cat /var/log/my.log

logger 指令

logger 是shell指令,可以通過該指令使用 rsyslog 的系統日志子產品,還可以從指令行直接向系統日志檔案寫入一行資訊。

logger指令的文法為:

logger [-i] [-f filename] [-p priority] [-t tag] [message...]

每個選項的含義如下:

-f filename:将 filename 檔案的内容作為日志。

-i:每行都記錄 logger 程序的id。

-p priority:指定優先級;優先級必須是形如 facility.priority 的完整的選擇器,預設優先級為 user.notice。

-t tag:使用指定的标簽标記每一個記錄行。

message:要寫入的日志内容,多條日志以空格為分隔;如果沒有指定日志内容,并且 -f filename 選項為空,那麼會把标準輸入作為日志内容。

例如,将ping指令的結果寫入日志:

建立ping的日志:ping -c 3 127.0.0.1 | logger -it logger_test -p local3.notice

建立ping的日志:ping -c 3 127.0.0.5 | logger -it logger_test -p local3.notice

檢視日志檔案:cat /var/log/user.log

檢視到的日志内容:oct 6 12:48:53 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=10 ttl=253 time=931 ms

發現ping指令的結果成功輸出到 /var/log/userlog 檔案。

指令 logger -it logger_test -p local3.notice 各選項的含義:

-i:在每行都記錄程序id;

-t logger_test:每行記錄都加上“logger_test”這個标簽;

-p local3.notice:設定日志類型和優先級。

繼續閱讀