在centos7中,默認的日誌系統是rsyslog,它是一個類unix計算機系統上使用的開源工具,用於在ip網絡中轉發日誌信息。rsyslog採用模塊化設計,是syslog的替代品。rsyslog具備以下特色:前端

    實現了基本的syslog協議。mysql

    直接兼容syslogd的syslog.conf配置文件sql

    在同一臺機器上支持多個rsyslogd進程數據庫

    豐富的過濾功能,可將消息過濾後再轉發apache

    靈活的配置選項,配置文件中能夠寫簡單的邏輯判斷centos

    增長了重要的功能,如使用tcp進行消息傳輸安全

    有現成的前端Web展現程序。bash

   默認安裝的ryslog軟件包提供的守護進程是rsyslog,它是一項系統的基礎服務。應該設置爲開機運行,由systemd啓動的。服務器

systemctl enable rsyslog systemctl start rsyslog

    守護進程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】:指定消息規則。在規則中能夠引用以前的定義模版和輸出通道    

    以#開始的行爲註釋,全部空行將被忽略

    規則配置每一行的格式以下:

facility.priority     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的說明以下所示:(關鍵配置)

#### MODULES #### $ModLoad imuxsock # 提供本地系統日誌支持(如經過logger命令) $ModLoad imjournal # 提供對systemd journal的訪問 #$ModLoad imklog # 提供內核日誌支持(至關於systemed的systemd-journald.service) #$ModLoad immark # 提供-MARK-消息功能 #### GLOBAL DIRECTIVES #### # Use default timestamp format 使用默認日誌的時間戳格式 $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat # Include all config files in /etc/rsyslog.d/ 包含/etc/rsyslog.d/目錄下的配置文件 $IncludeConfig /etc/rsyslog.d/*.conf #### RULES #### # Log all kernel messages to the console. 將全部的內核消息記錄到控制檯 # Logging much else clutters up the screen. #kern.* /dev/console # Log anything (except mail) of level info or higher. 將info或更高級別的消息送到/var/log/messages,除了/mail/news/authpriv/cron以外 # Don't log private authentication messages! 其中*是通配符,表明任何設備:none表示不對任何級別的消息進行記錄 *.info;mail.none;authpriv.none;cron.none /var/log/messages # The authpriv file has restricted access. 將authpirv設備的任何級別的信息記錄到/var/log/secure中 authpriv.* /var/log/secure # Log all the mail messages in one place. 將mail設備中的任何級別信息記錄到/var/log/mailog文件中 mail.* -/var/log/maillog # Log cron stuff 將cron設備的任何級別的信息記錄到/var/log/cron文件中 cron.* /var/log/cron # Everybody gets emergency messages 將任何設備的emerg級別或者更高的消息發送給全部正在系統上用戶 *.emerg :omusrmsg:* # Save news errors of level crit and higher in a special file. 將uucp和news設備的crint級別或者更高級別消息記錄到/var/log/spooler文件中 uucp,news.crit /var/log/spooler # Save boot messages also to boot.log 將和本地系統啓動相關的信息記錄到/var/log/boot.log文件中 local7.* /var/log/boot.log

遠程日誌服務器

爲了方便日誌監控並防止日誌被篡改、一般在工做網絡中會架設中央日誌服務器用於存放各個服務器的日誌。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

 

如下舉例說明,將日誌發送到遠程主機

#已經配置好日誌服務器172.31.101.52上的rsyslog(splunk) #配置客戶端rsyslog發送tcp端口日誌,經過修改配置文件/etc/rsyslog.config上指定tcp傳輸的日誌 echo 'mail.info @@172.31.101.52:514'>>/etc/rsyslog.conf #配置文件中追加發送郵件相關的日誌,級別爲值得報告的信息 sysctemctl restart rsyslog #重啓syslog #測試,在客戶端執行logger命令進行測試 logger -p mail.info "this is a test for rmote log." #發送測試消息

發送測試完畢後,在日誌服務器上(splunk)上能夠收到發送的測試日誌,證實rsyslog配置成功

image.png

查看詳細信息,能夠肯定使用tcp514端口發送的日誌

image.png

 

如下爲系統中經常使用的日誌文件說明,在/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/ – 用於守護進程安全服務