Linux 系統日志管理


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日志文件(常見)及其功能

日志文件是重要的系統信息文件,其中記錄了許多重要的系統事件,包括用戶的登錄信息、系統的啟動信息、系統的安全信息、郵件相關信息、各種服務相關信息等。這些信息有些非常敏感,所以在 Linux 中這些日志文件只有 root 用戶可以讀取。

那么,系統日志文件保存在什么地方呢?還記得 /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 032046 localhost sshd[1630]:Accepted password for root from 192.168.0.104 port 4229 ssh2
# 6月5日 032046 本地主機 sshd服務產生消息:接收從192.168.0.104主機的4229端口發起的ssh連接的密碼
Jun 5 032046 localhost sshd[1630]:pam_unix(sshd:session):session opened for user root by (uid=0)
#時間 本地主機 sshd服務中pam_unix模塊產生消息:打開用戶root的會話(UID為0)
Jun 5 032504 localhost useradd[1661]:new group:name=bb, GID=501
#時間 本地主機 useradd命令產生消息:新建立bb組,GID為501
Jun 5 032504 localhost useradd[1661]:new user:name=bb, UID=501, GID=501, home=/home/bb, shell=/bin/bash
Jun 5 032509 localhost passwd:pam_unix(passwd:chauthtok):password changed for bb

截取了一段日志的內容,注釋了其中的三句日志,如果我們的服務器出現了一些問題,比如系統不正常重啟或關機、用戶非正常登錄、服務無法正常使用等,則都應該先查詢日志。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM