Linux日誌系統(一)
1) Linux常見日誌與檔名
l /var/log/boot.log:
開機的時候系統核心會去偵測與啟動硬體,接下來開始各種核心支援的功能啟動等。這些流程都會記錄在/var/log/boot.log 裡面哩! 不過這個檔案只會存在這次開機啟動的資訊,前次開機的資訊並不會被保留下來!
l /var/log/cron:
還記得第十五章例行性工作排程吧?你的 crontab 排程有沒有實際被進行? 進行過程有沒有發生錯誤? 你的 /etc/crontab 是否撰寫正確?在這個日誌內查詢看看。
l /var/log/dmesg:
記錄系統在開機的時候核心偵測過程所產生的各項資訊。由於 CentOS 預設將開機時核心的硬體偵測過程 取消顯示, 因此額外將資料記錄一份在這個檔案中;
l /var/log/lastlog:
可以記錄系統上面所有的賬號最近一次登入系統時的相關資訊。lastlog 指令就是利用這個 檔案的記錄資訊來顯示的。
l /var/log/maillog 或 /var/log/mail/*:
記錄郵件的往來資訊,其實主要是記錄 postfix (SMTP 協議提供者) 與 dovecot (POP3 協議提供者) 所產生 的訊息啦。 SMTP 是發信所使用的通訊協議, POP3 則是收信使用的通訊協議。 postfix 與 dovecot 則分 別是兩套達成通訊協議的軟體。
l /var/log/messages:
這個檔案相當的重要,幾乎系統發生的錯誤訊息 (或者是重要的資訊) 都會記錄在這個檔案中; 如果系統發生莫名的錯誤時,這個檔案是一定要查閱的日誌之一。
l /var/log/secure:
基本上,只要牽涉到『需要輸入賬號密碼』的軟體,那麼當登入時 (不管登入正確或錯誤) 都會被記錄在此 檔案中。 包括系統的 login 程式、圖形介面登入所使用的 gdm 程式、 su,sudo 等程式、還有網路聯機的 ssh,telnet 等程式, 登入資訊都會被記載在這裡;
l /var/log/wtmp,/var/log/faillog:
這兩個檔案可以記錄正確登入系統者的帳戶資訊 (wtmp) 與錯誤登入時所使用的帳戶資訊 (faillog) !我們在第十章談到的 last 就是讀取wtmp 來顯示的, 這對於追蹤一般賬號者的使用行為很有幫助!
l /var/log/httpd/*,/var/log/samba/*:
不同的網路服務會使用它們自己的日誌檔案來記載它們自己產生的各項訊息!上述的目錄內則是個別服務 所制訂的日誌。
2) 日誌相關服務(daemon) 與程式
l systemd-journald.service:最主要的訊息收受者,由 systemd 提供的;
l rsyslog.service:主要日誌系統與網路等服務的訊息;
l logrotate:主要在進行日誌檔案的輪替功能。
3) CentOS 7.x 使用 systemd 提供的 journalctl 日誌管理
CentOS 7 除了保有既有的 rsyslog.service 之外,其實最上游還使用了 systemd 自己的登入檔案日誌 管理功能喔!他使用的是 systemd-journald.service 這個服務來支援的。基本上,系統由 systemd 所 管理,那所有經由 systemd 啟動的服務,如果再啟動或結束的過程中發生一些問題或者是正常的訊 息, 就會將該訊息由 systemd-journald.service 以二進位制的方式記錄下來,之後再將這個訊息傳送給 rsyslog.service 作進一步的記載。
systemd-journald.service 的記錄主要都放置於記憶體中,因此在存取方面效能比較好~我們也能夠透過 journalctl 以及 systemctl status unit.service 來檢視各個不同服務的登入檔! 這有個好處,就是登入檔 可以隨著個別服務讓你查閱,在單一服務的處理上面,要比跑到 /var/log/messages 去大海撈針來的 簡易很多!不過,因為 system-journald.service 裡面的很多觀念還是沿用 rsyslog.service 相關的資訊, 所以,本章還是先從 rsyslog.service 先談起, 談完之後再以 journalctl 進一步瞭解 systemd 是怎麼去記錄登入檔案日誌功能的呦!
4) rsyslog.service :記錄日誌檔案的服務
[root@study ~]# ps aux | grep rsyslog
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 750 0.0 0.1 208012 4732 ? Ssl Aug17 0:00 /usr/sbin/rsyslogd -n
[root@study ~]# systemctl status rsyslog.service
rsyslog.service - System Logging Service
Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled)
Active: active (running) since Mon 2015-08-17 18:37:58 CST; 2 days ago
Main PID: 750 (rsyslogd)
CGroup: /system.slice/rsyslog.service
└─750 /usr/sbin/rsyslogd -n
rsyslog.service 的配置檔案:/etc/rsyslog.conf
5) 日誌檔案的安全性設定
[root@study ~]# chattr [+-=][ASacdistu]檔案或目錄名稱
選項與引數:
+:增加某一個特殊引數,其他原本存在引數則不動。
-:移除某一個特殊引數,其他原本存在引數則不動。
=:設定一定,且僅有後面接的引數
A:當設定了A這個屬性時,若你有存取此檔案(或目錄)時,他的存取時間atime將不會被修改,可避免I/O較慢的機器過度的存取磁碟。(目前建議使用檔案系統掛載引數處理這個專案)
S:一般檔案是非同步寫入磁碟的(原理請參考前一章sync的說明),如果加上S這個屬性時,當你進行任何檔案的修改,該更動會『同步』寫入磁碟中。
a:當設定a之後,這個檔案將只能增加資料,而不能刪除也不能修改資料,只有root才能設定這屬性
c:這個屬性設定之後,將會自動的將此檔案『壓縮』,在讀取的時候將會自動解壓縮,但是在儲存的時候,將會先進行壓縮後再儲存(看來對於大檔案似乎蠻有用的!)
d:當dump程式被執行的時候,設定d屬性將可使該檔案(或目錄)不會被dump備份
i:這個i可就很厲害了!他可以讓一個檔案『不能被刪除、改名、設定連線也無法寫入或新增資料!』對於系統安全性有相當大的助益!只有root能設定此屬性
s:當檔案設定了s屬性時,如果這個檔案被刪除,他將會被完全的移除出這個硬碟空間,
所以如果誤刪了,完全無法救回來了喔!
u:與s相反的,當使用u來設定檔案時,如果該檔案被刪除了,則資料內容其實還存在磁碟中,可以使用來救援該檔案喔!
注意1:屬性設定常見的是a與i的設定值,而且很多設定值必須要身為root才能設定
注意2:xfs檔案系統僅支援AadiS而已
[root@study ~]# lsattr [-adR]檔案或目錄
選項與引數:
-a:將隱藏檔的屬性也秀出來;
-d:如果接的是目錄,僅列出目錄本身的屬性而非目錄內的檔名;
-R:連同子目錄的資料也一併列出來!
6) 日誌伺服器的設定
我們可以讓某一部主機當成 『日誌檔案伺服器』,用他來記錄所有的其他 linux 主機的資訊,這樣我就直接進入一部主機就可以了。
那要怎麼達到這樣的功能呢?很簡單啦, CentOS 7.x的 rsyslogd 本身就已經具有這個日誌檔案伺服器的功能了, 只是預設並沒有啟動該功能而已。既然是日誌伺服器,那麼我們的 Linux 主機當然會啟動一個埠來監聽了,就是 UDP 或 TCP 的 port 514 。
l 伺服器端設定:
# 1. Server 端:修改 rsyslogd 的啟動配置檔案,在 /etc/rsyslog.conf 內 !
[root@study ~]# vim /etc/rsyslog.conf
# 找到底下這幾行:
# Provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514
# Provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514
# 上面的是 UDP 埠口,底下的是 TCP 埠口!如果你的網路狀態很穩定,就用 UDP 即可。
# 不過,如果你想要讓資料比較穩定傳輸,那麼建議使用 TCP 囉 !所以修改底下兩行即可!
$ModLoad imtcp
$InputTCPServerRun 514
l 客戶端設定
client 端的設定就簡單多了!只要指定某個資訊傳送到這部主機即可! 舉例來說,我們的日誌伺服器 IP 為 192.168.1.100 ,而 client 端希望所有的資料都送給主機, 所以,可以在 /etc/rsyslog.conf 裡面新增這樣的一行:
[root@study ~]# vim /etc/rsyslog.conf
*.* @@192.168.1.100
#*.* @192.168.1.100 # 若用 UDP 傳輸,設定要變這樣 !
[root@study ~]# systemctl restart rsyslog.service
【參考】
【1】鳥哥的Linux私房菜-基礎篇.第四版,第十八章認識與分析登入檔。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16976507/viewspace-2130250/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux系統級日誌系統Linux
- LINUX檢視系統日誌Linux
- Linux 系統日誌的組成Linux
- 日誌系統
- 用系統日誌瞭解你的 Linux 系統Linux
- Linux 日誌檔案系統如何工作Linux
- linux檔案系統和日誌分析Linux
- Linux作業系統常用log日誌Linux作業系統
- 用日誌系統保護Linux安全Linux
- Linux檔案系統與日誌分析Linux
- AIX系統日誌AI
- AIX 系統日誌AI
- Linux作業系統的日誌說明Linux作業系統
- Linux--檔案系統與日誌分析Linux
- Linux系統檢視日誌資訊總結Linux
- 在Linux中,如何檢視系統日誌?Linux
- 總部系統內控統一運維日誌系統運維
- 一種分散式預寫日誌系統分散式
- 日誌審計系統
- Rsyslog日誌系統
- ELK日誌分析系統
- elk 日誌分析系統
- 日誌檔案系統
- 【ELK】日誌分析系統
- 日誌系統相關
- 分散式日誌傳輸系統Databus(一)--系統介紹分散式
- Linux日誌檔案系統及效能分析(轉)Linux
- Linux日誌式檔案系統面面觀(轉)Linux
- Linux 作業系統日誌管理全攻略Linux作業系統
- Linux系統檢視log日誌命令詳解!Linux
- 在Linux中,有哪些系統日誌檔案?Linux
- 各大作業系統AIX/HPUX/Solaris/Linux下的系統日誌作業系統AILinux
- 檢查Linux系統日誌error和mysql錯誤日誌的指令碼薦LinuxErrorMySql指令碼
- Linux系統日誌分為哪幾種?日誌檔案包括幾列內容?Linux
- 設計一套完整的日誌系統
- Kafka與ELK實現一個日誌系統Kafka
- 日誌系統實戰(一)—AOP靜態注入
- 統一日誌管理