歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

Linux維護之日志篇

Linux維護之日志篇

一. syslog程序
1.syslog程序的作用
系統內核和許多系統程序會產生錯誤信息、警告信息和其他信息。這些信息會被寫到一個文件,執行這個過程的程序就是syslog,它能設置成根據輸出信息的程序或重要程度將信息排序到不同的文件。例如,由於內核信息更重要且需要有規律地閱讀以確定問題出在哪裡,所以要把內核信息與其他信息分開來,單獨定向到一個分離的文件中。
日志文件通常存放在/var/log目錄下,為了查看日志文件的內容必須要有root權限。日志文件中的信息很重要,只有超級用戶有訪問這些文件的權限。
2.syslog程序
syslog已被許多日志函數采用,它被用在許多保護措施中。任何程序都可以通過syslog記錄事件。syslog可以記錄系統事件,可以寫到一個文件或設備中,或給用戶發送一個信息。它能記錄本地事件或通過網絡記錄另一個主機上的事件。
syslog程序依賴於兩個重要的文件:/etc/syslogd(守護進程)和/etc/syslog.conf配置文件。習慣上,多數syslog信息被寫到/var/adm或/var/log目錄下的信息文件中(messages.*)。一個典型的syslog記錄包括生成程序的名字和一個文本信息,它還包括一個設備和一個優先級范圍(但不在日志中出現)。
每個syslog消息被賦予下面的主要設備之一。
LOG_AUTH :認證系統login、su、getty等。
LOG_AUTHPRIV :同LOG_AUTH,但只登錄到所選擇的單個用戶可讀的文件中。
LOG_CRON :cron守護進程。
LOG_DAEMON :其他系統守護進程,如routed。
LOG_FTP :文件傳輸協議ftpd、tftpd。
LOG_KERN :內核產生的消息。
LOG_LPR :系統打印機緩沖池lpr、lpd。
LOG_MAIL :電子郵件系統。
LOG_NEWS :網絡新聞系統。
LOG_SYSLOG :由syslogd(8)產生的內部消息。
LOG_USER :隨機用戶進程產生的消息。
LOG_UUCP :UUCP子系統。
LOG_LOCAL0~LOG_LOCAL7 :為本地使用保留。
syslog為每個事件賦予幾個不同的優先級。
LOG_EMERG :緊急情況。
LOG_ALERT :應該被立即改正的問題,如系統數據庫被破壞。
LOG_CRIT :重要情況,如硬盤錯誤。
LOG_ERR :錯誤。
LOG_WARNING :警告信息。
LOG_NOTICE :不是錯誤情況,但是可能需要處理。
LOG_INFO :情報信息。
LOG_DEBUG :包含情報的信息,通常只在調試一個程序時使用。
3.syslog.conf配置文件
syslog.conf文件指明syslogd程序記錄日志的行為,該程序在啟動時查詢配置文件。該文件由不同程序或消息分類的單個條目組成,每個占一行。對每類消息提供一個選擇域和一個動作。這些域由tab符隔開,選擇域指明消息的類型和優先級,動作域指明syslogd接收到一個與選擇標准相匹配的消息時所執行的動作。每個選項是由設備和優先級組成的。當指明一個優先級時,syslogd將記錄一個擁有相同或更高優先級的消息。所以如果指明crit,那所有標為crit、alert和emerg的消息將記錄。每行的行動域指明當選擇域選擇了一個給定消息後應該把它發送到哪兒。例如,如果想把所有郵件消息記錄到一個文件中,向syslog.conf文件添加以下內容:
#Log all the mail messages in one place
mail.* /var/log/maillog
其他設備也有自己的日志。UUCP和news設備能產生許多外部消息。syslog程序把這些消息存到自己的日志(/var/log/spooler)並把級別限為“err”或更高。例如:
#Save mail and news errors of level err adn higher in aspecial file.
uucp,news.crit /var/log/spooler
當一個緊急消息到來時,可能想讓所有的用戶都得到,也可能想讓自己的日志接收並保存,如下所示:
#Everybody gets emergency messages, plus log them on anter machne
*.emerg *
*.emerg @linuxid.com.cn
alert消息應該寫到root和riger的個人賬戶中,向syslog.conf文件添加以下內容:
#Root adn Tiger get alert and higher messages
*.alert root,tiger
有時syslogd將產生大量的消息。例如,內核(Kernel設備)可能很冗長,用戶可能想把內核消息記錄到/dev/console中。下面的例子表明內核日志記錄被注釋掉了:
#Log all kernel messages to the console
#Logging much else clutters up the screen
#kern.* /dev/console
下面的例子把info或更高級別的消息記錄到/var/log/messages(mail除外),級別“none”禁止一個設備:
#Log anything(except mail)of level info or higher
#Don't log private authentication messages!
*.info:mail.none;authprive.noe /var/log/messages
二.常用的日志文件
1./var/log/boot.log
該文件記錄了系統在引導過程中發生的事件,就是Linux系統開機自檢過程顯示的信息。
2./var/log/cron
該日志文件記錄crontab守護進程crond所派生的子進程的動作,前面加上用戶、登錄時間和PID,以及派生出的進程的動作。執行某個命令的一個動作是cron派生出一個調度進程的常見情況。REPLACE(替換)動作記錄用戶對它的cron文件的更新,該文件列出了要周期性執行的任務調度。RELOAD動作在REPLACE動作後不久發生,這意味著cron注意到一個用戶的cron文件被更新而cron需要把它重新裝入內存。該文件可能會查到一些反常的情況。
3./var/log/maillog
該日志文件記錄了每一個發送到系統或從系統發出的電子郵件的活動。它可以用來查看用戶使用哪個系統發送工具或把數據發送到哪個系統。
4./var/log/messages
該日志文件是許多進程日志文件的匯總,從該文件可以看出任何入侵企圖或成功的入侵。該文件每一行包含日期、主機名、程序名,後面是包含 PID或內核標識的方括號、一個冒號和一個空格,最後是消息。該文件有一個不足,就是被記錄的入侵企圖和成功的入侵事件被淹沒在大量的正常進程的記錄中。但該文件可以由文件/etc/syslog進程定制,由配置文件/etc/syslog.conf決定系統如何寫/var/messages。
5./var/log/syslog
默認情況下Linux系統不生成該日志文件,但可以配置/etc/syslog.conf讓系統生成該日志文件。它和/etc/log /messages日志文件不同,它只記錄警告信息,常常是系統出問題的信息,所以更應該關注該文件。要讓系統生成該日志文件,需要在/etc /syslog.conf文件中加上“*.warning/var/log/syslog”。該日志文件能記錄當用戶登錄時login記錄下錯誤口令、 Sendmail的問題和su命令執行失敗等信息。
6./var/log/secure
該日志文件記錄與安全相關的信息。
7./var/log/lastlog
該日志文件記錄最近成功登錄事件和最後一次不成功登錄事件,由login生成。在每次用戶登錄時被查詢,該文件是二進制文件,需要使用 lastlog命令查看,根據UID排序顯示登錄名、端口號和上次登錄時間。如果某用戶從來沒有登錄過,就顯示為“**Never logged in**”。該命令只能以root權限執行。
系統賬戶諸如bin、daemon、adm、uucp、mail等不應該登錄,如果發現這些賬戶已經登錄,就說明系統可能已經被入侵了。若發現記錄的時間不是用戶上次登錄的時間,則說明該用戶的賬戶已經洩露了。
8./var/log/wtmp
該日志文件永久記錄每個用戶登錄、注銷及系統的啟動、停機的事件。因此隨著系統正常運行時間的增加,該文件也會起來越大,增加的速度取決於系統用戶登錄的次數。
轉載自:http://blog.sina.com.cn/s/blog_6954b9a90100xqrd.html
Copyright © Linux教程網 All Rights Reserved