在centos7中,默認的日誌系統是rsyslog,它是一個類unix計算機系統上使用的開源工具,用於在ip網絡中轉發日誌信息。rsyslog採用模塊化設計,是syslog的替代品。rsyslog具備以下特色:前端
實現了基本的syslog協議。mysql
直接兼容syslogd的syslog.conf配置文件sql
在同一臺機器上支持多個rsyslogd進程數據庫
豐富的過濾功能,可將消息過濾後再轉發apache
靈活的配置選項,配置文件中能夠寫簡單的邏輯判斷centos
增長了重要的功能,如使用tcp進行消息傳輸安全
有現成的前端Web展現程序。bash
默認安裝的ryslog軟件包提供的守護進程是rsyslog,它是一項系統的基礎服務。應該設置爲開機運行,由systemd啓動的。服務器
守護進程rsyslog在啓動時會讀取其配置文件。管理隱患能夠經過編輯/etc/rsyslog.conf、/etc/rsyslog.d/*.conf和/etc/sysconfig/rsyslog來配置rsyslog的行爲。/etc/sysconfig/rsyslog文件用於配置守護進程的運行參數,/etc/rsyslog.conf是rsyslog的主配置文件。網絡
rsyslog的配置文件/etc/rsyslog.conf的結構以下:
全局命令(Global dirctives):設置全局參數、如主消息尺寸、加載擴展模塊等
模版(Templates):指定記錄的消息格式,也用於動態文件名稱生成
輸出通道(Output chananels):對用戶指望的消息輸出進行預約義。
規則(Rules)【selector +action】:指定消息規則。在規則中能夠引用以前的定義模版和輸出通道
以#開始的行爲註釋,全部空行將被忽略
規則配置每一行的格式以下:
設備字段說明:
auth –pam產生的日誌
authpriv –ssh,ftp等登陸信息的驗證信息
cron –時間任務相關
ftp -FTP守護進程的信息
kern –內核
lpr –打印
mail –郵件
mark(syslog)–rsyslog服務內部的信息,時間標識
news –新聞組
user –用戶程序產生的相關信息
uucp –unix to unix copy, unix主機之間相關的通信
local 1~7 –自定義的日誌設備
級別字段說明
ebug –有調式信息的,日誌信息最多
info –通常信息的日誌,最經常使用
notice –最具備重要性的普通條件的信息
warning –警告級別
err –錯誤級別,阻止某個功能或者模塊不能正常工做的信息
crit –嚴重級別,阻止整個系統或者整個軟件不能正常工做的信息
alert –須要馬上修改的信息
emerg –內核崩潰等嚴重信息
none –什麼都不記錄
動做字段說明
filename -指定絕對路徑的日誌文件名來記錄日誌信息
:omusrmsg:users -發送信息到指定的用戶,users能夠是用逗號分隔符的用戶類別,*表示全部用戶
device -將信息發送到指定設備中,如/dev/console
|named-pipe -將日誌記錄到命令管道,用於日誌調試很是方便
@hostname -將信息發送可解析遠程主機hostname或IP,該主機必須正在運行rsyslogd,並能夠識別rsyslog的配置文件,使用upd:514端口傳送日誌信息
@@hostname -將信息發送可解析遠程主機hostname或IP,該主機必須正在運行rsyslogd,並能夠識別rsyslog的配置文件,使用tcp:514端口傳送日誌信息
rsyslog.conf的說明以下所示:(關鍵配置)
遠程日誌服務器
爲了方便日誌監控並防止日誌被篡改、一般在工做網絡中會架設中央日誌服務器用於存放各個服務器的日誌。rsyslog支持日誌的遠程發送和接受
rsyslog客戶:負責發送日誌到中央日誌服務器,支持udp,tcp,relp協議
rsyslog服務器:負責接受從rsyslog客戶發送的日誌並存儲在rsyslog服務器,支持日誌文件存儲、數據庫存儲
如下爲rsyslog客戶與rsyslgo服務器使用到的模塊與配置語法
角色 | 功能 | RPM包名 | 模塊 | 配置語法 |
客戶 | 使用udp協議發送 | rsyslog | - | *.* @hostname:514 |
使用tcp協議發送 | rsyslog | _ | *.* @@hostname:514 | |
使用relp協議發送 | rsyslog-relp | omrelp | *.* :omrelp:hostnames:2514 | |
服務器 | 使用udp協議接收 | rsyslog | imudp | $ModLoad imudp $InputUDPServerRun 514 |
使用tcp協議接收 | rsyslog | imtcp | $ModLoad imtcp $InputTCPServerRun 514 |
|
使用relp協議接收 | rsyslog-relp | imrelp | $ModLoad imrelp $InputRELPServerRun 2514 |
|
將日誌記錄到MySQL | ryslog-mysql | ommysql | $ModLoad ommysql *.*:ommysql:DBserver,DBname,DBuser,DBpasswd |
|
將日誌記錄到PostgreSQL | rsyslog-pgsql | ompgsql | $ModLoad ompgsql *.*:ompgsql:DBserver,DBname,DBuser,DBpasswd |
如下舉例說明,將日誌發送到遠程主機
發送測試完畢後,在日誌服務器上(splunk)上能夠收到發送的測試日誌,證實rsyslog配置成功
查看詳細信息,能夠肯定使用tcp514端口發送的日誌
如下爲系統中經常使用的日誌文件說明,在/var/log/*路徑
/var/log/messages — 包括總體系統信息,其中也包含系統啓動期間的日誌。此外,mail,cron,daemon,kern和auth等內容也記錄在var/log/messages日誌中。
/var/log/dmesg — 包含內核緩衝信息(kernel ring buffer)。在系統啓動時,會在屏幕上顯示許多與硬件有關的信息。能夠用dmesg查看它們。
/var/log/auth.log — 包含系統受權信息,包括用戶登陸和使用的權限機制等。
/var/log/boot.log — 包含系統啓動時的日誌。
/var/log/daemon.log — 包含各類系統後臺守護進程日誌信息。
/var/log/dpkg.log – 包括安裝或dpkg命令清除軟件包的日誌。
/var/log/kern.log – 包含內核產生的日誌,有助於在定製內核時解決問題。
/var/log/lastlog — 記錄全部用戶的最近信息。這不是一個ASCII文件,所以須要用lastlog命令查看內容。
/var/log/maillog /var/log/mail.log — 包含來着系統運行電子郵件服務器的日誌信息。例如,sendmail日誌信息就所有送到這個文件中。
/var/log/user.log — 記錄全部等級用戶信息的日誌。
/var/log/Xorg.x.log — 來自X的日誌信息。
/var/log/alternatives.log – 更新替代信息都記錄在這個文件中。
/var/log/btmp – 記錄全部失敗登陸信息。使用last命令能夠查看btmp文件。例如,」last -f /var/log/btmp | more「。
/var/log/cups — 涉及全部打印信息的日誌。
/var/log/anaconda.log — 在安裝Linux時,全部安裝信息都儲存在這個文件中。
/var/log/yum.log — 包含使用yum安裝的軟件包信息。
/var/log/cron — 每當cron進程開始一個工做時,就會將相關信息記錄在這個文件中。
/var/log/secure — 包含驗證和受權方面信息。例如,sshd會將全部信息記錄(其中包括失敗登陸)在這裏。
/var/log/wtmp或/var/log/utmp — 包含登陸信息。使用wtmp能夠找出誰正在登錄進入系統,誰使用命令顯示這個文件或信息等。
/var/log/faillog – 包含用戶登陸失敗信息。此外,錯誤登陸命令也會記錄在本文件中。
除了上述Log文件之外, /var/log還基於系統的具體應用包含如下一些子目錄:
/var/log/httpd/或/var/log/apache2 — 包含服務器access_log和error_log信息。
/var/log/lighttpd/ — 包含light HTTPD的access_log和error_log。
/var/log/mail/ – 這個子目錄包含郵件服務器的額外日誌。
/var/log/prelink/ — 包含.so文件被prelink修改的信息。
/var/log/audit/ — 包含被 Linux audit daemon儲存的信息。
/var/log/samba/ – 包含由samba存儲的信息。
/var/log/sa/ — 包含每日由sysstat軟件包收集的sar文件。
/var/log/sssd/ – 用於守護進程安全服務