Linux rsyslogd服務及啟動方法
在 CentOS 6.x 中,日志服務已經由 rsyslogd 取代了原先的 syslogd。Red Hat 公司認為 syslogd 已經不能滿足工作中的需求,rsyslogd 相比 syslogd 具有一些新的特點:
- 基於TCP網絡協議傳輸日志信息。
- 更安全的網絡傳輸方式。
- 有日志信息的即時分析框架。
- 后台數據庫。
- 在配置文件中可以寫簡單的邏輯判斷。
- 與syslog配置文件相兼容。
rsyslogd 日志服務更加先進,功能更多。但是,不論是該服務的使用,還是日志文件的格式,其實都是和 syslogd 服務相兼容的,所以學習起來基本和 syslogd 服務一致。
查詢 Linux 中的 rsyslogd 服務是否啟動
[root@localhost ~]# ps aux | grep "rsyslog" | grep -v "grep" root 917 0.0 0.1 219752 3684 ? Ssl 10:23 0:00 /usr/sbin/rsyslogd -n
查詢 rsyslogd 服務的自啟動狀態
[root@localhost ~]# systemctl list-unit-files | grep rsyslog rsyslog.service enabled
系統中的絕大多數日志文件是由 rsyslogd 服務來統一管理的,只要各個進程將信息給予這個服務,它就會自動地把日志按照特定的格式記錄到不同的日志文件中。也就是說,采用 rsyslogd 服務管理的日志文件,它們的格式應該是統一的。
在 Linux 系統中有一部分日志不是由 rsyslogd 服務來管理的,比如 apache 服務,它的日志是由 Apache 軟件自己產生並記錄的,並沒有調用 rsyslogd 服務。但是為了便於讀取,apache 日志文件的格式和系統默認日志的格式是一致的。
Linux日志文件(常見)及其功能
那么,系統日志文件保存在什么地方呢?還記得 /var/ 目錄嗎?它是用來保存系統動態數據的目錄,那么 /var/log/ 目錄就是系統日志文件的保存位置。我們通過表 1 來說明一下系統中的重要日志文件。
日志文件 | 說 明 |
/var/log/cron | 記錄與系統定時任務相關的曰志 |
/var/log/cups/ | 記錄打印信息的曰志 |
/var/log/dmesg | 記錄了系統在開機時內核自檢的信總。也可以使用dmesg命令直接查看內核自檢信息 |
/var/log/btmp | 記錄錯誤登陸的日志。這個文件是二進制文件,不能直接用Vi查看,而要使用lastb命令查看。命令如下: [root@localhost log]#lastb root tty1 Tue Jun 4 22:38 - 22:38 (00:00) #有人在6月4 日 22:38便用root用戶在本地終端 1 登陸錯誤 |
/var/log/lasllog | 記錄系統中所有用戶最后一次的登錄時間的曰志。這個文件也是二進制文件.不能直接用Vi 查看。而要使用lastlog命令查看 |
/var/Iog/mailog | 記錄郵件信息的曰志 |
/var/log/message | 記錄系統里要佶息的日志.這個日志文件中會記錄Linux系統的絕大多數重要信息。如果系統出現問題,首先要檢查的應該就是這個日志文件 |
/var/log/secure | 記錄驗證和授權方面的倍息,只要涉及賬戶和密碼的程序都會記錄,比如系統的登錄、ssh的登錄、su切換用戶,sudo授權,甚至添加用戶和修改用戶密碼都會記錄在這個日志文件中 |
/var/log/wtmp | 永久記錄所有用戶的登陸、注銷信息,同時記錄系統的后動、重啟、關機事件。同樣,這個文件也是二進制文件.不能直接用Vi查看,而要使用last命令查看 |
/var/tun/ulmp | 記錄當前已經登錄的用戶的信息。這個文件會隨着用戶的登錄和注銷而不斷變化,只記錄當前登錄用戶的信息。同樣,這個文件不能直接用Vi查看,而要使用w、who、users等命令查看 |
除系統默認的日志之外,采用 RPM 包方式安裝的系統服務也會默認把日志記錄在 /var/log/ 目錄中(源碼包安裝的服務日志存放在源碼包指定的目錄中)。不過這些日志不是由 rsyslogd 服務來記錄和管理的,而是各個服務使用自己的日志管理文檔來記錄自身的日志。以下介紹的日志目錄在你的 Linux 上不一定存在,只有安裝了相應的服務,日志才會出現。服務日志如表 2 所示。
日志文件 | 說明 |
---|---|
/var/log/httpd/ | RPM包安裝的apache取務的默認日志目錄 |
/var/log/mail/ | RPM包安裝的郵件服務的額外日志因錄 |
/var/log/samba/ | RPM色安裝的Samba服務的日志目錄 |
/var/log/sssd/ | 守護進程安全服務目錄 |
Linux日志文件格式分析
只要是由日志服務 rsyslogd 記錄的日志文件,它們的格式就都是一樣的。
日志文件的格式包含以下 4 列:
- 事件產生的時間。
- 產生事件的服務器的主機名。
- 產生事件的服務名或程序名。
- 事件的具體信息。
我們查看一下 /var/log/secure 日志,這個日志中主要記錄的是用戶驗證和授權方面的信息,更加容易理解。命令如下:
[root@localhost ~]# vi /var/log/secure Jun 5 03:20:46 localhost sshd[1630]:Accepted password for root from 192.168.0.104 port 4229 ssh2 # 6月5日 03:20:46 本地主機 sshd服務產生消息:接收從192.168.0.104主機的4229端口發起的ssh連接的密碼 Jun 5 03:20:46 localhost sshd[1630]:pam_unix(sshd:session):session opened for user root by (uid=0) #時間 本地主機 sshd服務中pam_unix模塊產生消息:打開用戶root的會話(UID為0) Jun 5 03:25:04 localhost useradd[1661]:new group:name=bb, GID=501 #時間 本地主機 useradd命令產生消息:新建立bb組,GID為501 Jun 5 03:25:04 localhost useradd[1661]:new user:name=bb, UID=501, GID=501, home=/home/bb, shell=/bin/bash Jun 5 03:25:09 localhost passwd:pam_unix(passwd:chauthtok):password changed for bb
截取了一段日志的內容,注釋了其中的三句日志,如果我們的服務器出現了一些問題,比如系統不正常重啟或關機、用戶非正常登錄、服務無法正常使用等,則都應該先查詢日志。