linux系統日誌概念及rsyslog服務配置
日誌是什麼
- 日誌是系統用來記錄系統運行時候的一些相關信息的純文本文件
- 日誌的目的是爲了保存相關程序的運行狀態,錯誤信息等,爲了對系統進行分析,保存歷史記錄以及在出現錯誤的時候發現分析錯誤使用
- linux系統一般會保存一下類型日誌
- 內核信息
- 服務信息
- 應用程序信息
Rsyslog
-
linux系統中用來實現日誌功能的服務稱之爲rsyslog,
早期版本
中稱之爲syslog,Rsyslog是syslog的增強版本
-
Rsyslog一般默認都會安裝,並設置自啓動,可以通過以下命令控制rsyslog服務
在centos6中可以直接啓動
service rsyslog start | stop | restart
在centos7中需要先進行下載
# 安裝
yum install -y rsyslog
# 啓動
systemctl start rsyslog.service
rsyslog配置文件位置
/etc/rsyslog.conf
日誌消息一般保存在
/var/log
通常使用
tail -f logfile
的方式來試試監控日誌文件
- 相關文件
- rsyslog相關文件
rpm -qc rsyslog #查找相關文件
/etc/rsyslog.conf #rsyslogd的主配置文件
/etc/sysconfig/rsyslog #rsyslogd相關文件,定義級別
/etc/logrotate.d/syslog #和日誌辦輪轉(切割)相關
- 日誌記載相關文件
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查(二進制日誌文件)
- 日誌類別:(用man 3syslog來查看)
rsyslog通過
facility概念來定義日誌消息的來源
,以方便對日誌進行分類
注:日誌類別主要是用來區分軟件、服務.
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來查看)
注:等級主要用來區分某個軟件中日誌的分類。
注:等級爲none表示不記錄任何信息。
LOG_EMERG #(emergency)疼痛級,嚴重錯誤,系統已經不可用
LOG_ALERT #(alert)報警.必須立即採取措施
LOG_CRIT #(critical)較嚴重錯誤
LOG_ERR #(error)錯誤
LOG_WARNING #(warning)警告
LOG_NOTICE #(notice)提示信息.normal, but significant, condition(較爲重要)
LOG_INFO #(informational)信息(正常信息)
LOG_DEBUG #(debug)調試級信息(無關緊要)
可以通過寫shell腳本來監控日誌裏面的報錯優先級,監控到想要的信息,可以發郵件或者發信息
rsyslog配置文件
- 配置文件中的日誌配置規則如下
facility.priority(安排優先級) log_location(存儲位置)
如:
mail.* -/var/log/maillog
*.info;mail.none;authpriv.none;cron.none /var/log/messages
-/var/log/mail 前面的-表示不等待硬盤同步,容易因爲斷電宕機丟失文件
- 如果需要將日誌發送到一個統一的日誌服務器,則可以按如下配置:
*.* @192.168.1.1 (@表示使用UDP協議發送)
*.* @@192.168.1.1 (@@表示使用TCP協議發送)
# *.* 的規則是 facility.priority