日志檔案
日志檔案:記錄本機何時何事何人所為。
日志檔案在管理中作用:
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:設定日志類型和優先級。