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:設置日誌類型和優先級

  


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章