一、日志文件:主要記錄在本機上誰什么時間做了什么事情. 1、日志文件在管理中的作用:1).系統故障排錯 2).統計訪問量 2、日志軟件: rpm -q rsyslog 文件列表: rpm -ql rsyslog 配置文件: rpm -qc rsyslog 3、日志文件默認位置:/var/log 注:某些第3方軟件的日志文件位於軟件自己的目錄中的log目錄或其他位置。 4、常見的日志文件:(/var/log) 注:文件類型用file命令查。 大多數日志文件是純文本文件,可以用cat 、head來查看。 還有一些是二進制日志文件,需要用專用的命令來查看。 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查(二進制日志文件) 日志練習:開兩個命令終端窗口,分別執行不同的命令,看A窗口中的日志信息變化, A窗口:tail -0f /var/log/messages #實時監測messages日志文件 B窗口:systemctl restart firewalld r> systemctl stop firewalld ------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------- rsyslog日志程序的配置文件:rpm -qc rsyslog #查的結果如下 /etc/logrotate.d/syslog #日志輪轉(切割、輪替)策略文件 /etc/rsyslog.conf #主配置文件 /etc/sysconfig/rsyslog #環境設置配置文件 ------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------- 主配置文件:/etc/rsyslog.conf ------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------- 日志類別:(用man 3syslog來查看) 注:日志類別主要是用來區分軟件、服務. 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_LOCAL #本地自定義 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 是Shell命令,可以通過該命令使用 rsyslog 的系統日志模塊,還可以從命令行直接向系統日志文件寫入一行信息。 1、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:設置日志類型和優先級。 ------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------- 三、logrotate日志切割: 1、作用:1).防止日志文件過大 2).定期刪除舊日志文件 2、配置文件:rpm -qc logrotate #文件如下 /etc/cron.daily/logrotate /etc/logrotate.conf /etc/rwtab.d/logrotate /var/lib/logrotate/logrotate.status 3、查輪滾策略幫助手冊:man logrotate.conf 4、配置文件內容:cat /etc/logrotate.conf 注:此配置文件主要定義日志文件切割(輪滾、輪轉、滾動)的策略方案. # see 'man logrotate' for details # rotate log files weekly weekly #每周一輪滾 # keep 4 weeks worth of backlogs rotate 4 #保留4個備份 # create new (empty) log files after rotating old ones create #創建新的空日志文件代替舊文件 # use date as a suffix of the rotated file dateext #使用日志為文件名后綴,禁用此項時默認以數字為后綴. # uncomment this if you want your log files compressed #compress #是否壓縮(后綴為.gz) # RPM packages drop log rotation information into this directory include /etc/logrotate.d #包含指定的目錄,此目錄下保存日志策略 # no packages own wtmp and btmp -- we'll rotate them here /var/log/wtmp { #日志文件路徑及其個性化輪轉策略 monthly #每月一輪滾 create 0664 root utmp #創建的新日志文件權限、屬主 、屬組 minsize 1M #文件最小容量 rotate 1 #保留1個備份 } /var/log/btmp { missingok #丟了也不會報錯 monthly create 0600 root utmp rotate 1 } # system-specific logs may be also be configured here. ------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------- 強制測試輪滾:logrotate -fv /etc/logrotate.conf ls /var/log/ 注:1、-f是強制輪滾,-v顯示過程 2、日志文件名后綴的數字越大,文件越舊。日志清理時是清理舊文件。 案例一:給/var/log/my.log日志文件創建輪滾策略,每天一輪滾,文件丟了也不報錯,保留2個備份,啟用壓縮功能,用數字作為文件名后綴. vim /etc/logrotate.d/my 添加如下內容 /var/log/my.log { daily #每天一輪滾 missingok #丟了也不報錯 nodateex #不使用日期為后綴,即用數字為后綴 create #創建新文件 rotate 2 #保留2個備份 compress #啟用壓縮(后綴為.gz) } 測試輪滾:logrotate -fv /etc/logrotate.d/my 查看日志文件列表:ls /var/log/my* 注:部分知識點來源於man手冊。