Linux系統的LOG記錄檔及入侵後日誌的清除

來源:互聯網
上載者:User

下面的文章是瞭解系統日誌是看到別人寫的,現在貼出來為了使自己記住沒有掌握的Linux功能。

-------------
文檔目錄
-------------
1 什麼是syslogd
2 配置syslogd的說明
3 syslogd和系統中服務配置中日誌的關係
4 什麼是logrotate
5 配置logrotate的說明

-------------
文檔本文
-------------
1 什麼是syslogd
      syslogd可以簡單地被稱為記錄系統活動的一個daemons。比如可以記錄誰,在什麼時間,在哪裡,做了什麼事情(像是在寫記敘文啊);也可以記錄您的系統曾經發生過什麼事情,比如什麼時候重新引導過、軟硬體的錯誤資訊等;當然也記錄著您系統上運行著的服務的資訊。
      很多時候,有朋友上來就問,“我的X不能啟動了是怎麼回事啊?!”問號和歎號這樣使用在語文規範上是不允許的,但是我們可以獲知,他的心情是急迫的。可是為什麼您不先考慮一下您做了什麼更改,為什麼不先看看是否有錯誤輸出,為什麼不看看記錄檔?起碼,日誌為解決問題提供了很好的參考啊。很多人講自己的某個裝置不工作,dmesg的資訊您是否認真參考了?
      syslogd做的是瑣碎的工作,但卻是相當重要的工作。很多朋友為了提高系統的效能,節省那一點點資源就決定把這個daemons停掉。我認為,這是不可取的。
      syslogd記錄的日誌一般在/var/log/下,當然也有儲存在另外的伺服器上的。因為syslogd記錄的資訊實在是太重要了,所以還要涉及日誌安全的問題。
      一般系統中日誌資訊:
/var/log/secure: 記錄系統的安全資訊,比如ssh、ftp、pop3等;
/var/log/wtmp: 記錄誰曾經登陸過系統,由於本日誌被編碼過,所以只能用last命令查看;
/var/log/boot.log: 顧名思義,記錄開啟或者關閉系統及武夫的資訊;
/var/log/message:系統發生的錯誤資訊都會記錄在這個日誌中,比如iptables中您使用log功能的日誌;
/var/log/mail:
/var/log/httpd/
/var/log/mysqld.d 等,記錄的就是這些服務的日誌。
   
2 配置syslogd的說明
2.1 啟動syslogd服務
    首先,您要確定您的系統是否運行著這個服務。
service syslog status
    或者:
ps -aux|grep syslog
     如果您的系統中並沒有運行這個服務,您可以開啟它。方法很多啦。
service syslog start
     如果您希望系統在下次啟動的時候就運行syslogd,您可以在setup中的服務中添加。如果確定您的預設引導層級,比如3,那麼您也可以在/etc/rc.d/rc3.d/下添加以 S 開頭的軟串連。或者,您使用chkconfig 2345 syslog on來添加。
2.2 syslogd服務的設定檔
      syslogd的設定檔一般在/etc/syslog.conf中。這個檔案依然遵循你所見過的其它設定檔的規則,比如 # 是注釋。您可以看看您的syslogd都在協助您記錄著什麼。這是我的syslog.conf中的一部分:
QUOTE:
# 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.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages

# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure

# Log all the mail messages in one place.
mail.*                                                  /var/log/maillog

# Log cron stuff
cron.*                                                  /var/log/cron
2.3 syslog.conf的配置規則
服務名稱.資訊等級        存放或者顯示地點
這個文法很簡單呢。   
服務名稱
    mail http at cron kern 等等。
資訊等級
    info: 一些提示資訊資料;
    notice: 需要您注意的資訊;
    warn或者waring: 警告資訊;
    上面三個資訊雖然是提醒您注意,但是卻還沒有到錯誤的情況。下面的資訊就要注意了。
    error或者err: 錯誤資訊。您需要仔細檢查發生錯誤的原因了;
    crit: 很嚴重的錯誤,到達臨界點了;
    alert: 警告! 是否想起了“Red Alert”?不過,在這裡這可是相當嚴重的錯誤啊;
    emerg或者panic:系統混亂,重做吧;
   
    特別的:
    debug: 將顯示很多資訊;
    none: 顧名思義,什麼資訊也不記錄。   
存放或者顯示地點
    日誌的絕對路徑: 比如/var/log;
    您的一個使用者 ;
    網路上的主機: @log.company.com
    印表機: /dev/lp0
2.4 應用舉例
mail.info        /var/log/maillog
      大於等於info的資訊都會寫到/var/log/maillog中。
mail.*;cron.* /var/log/mailcron mail.=warn;cron.=warn /var/log/mailcronwarn
      等級為warn的資訊,寫進/var/log/mailcronwarn,其它的資訊寫進/var/log/mailcron。
 *.*;mail,cron.none /var/log/message

*.*;mail.none;cron.none /var/log/message
      記錄除去mail和cron之外的所有服務的所有資訊。

3 syslogd和系統中服務配置中日誌的關係
      上面已經說了,syslogd是為系統提供Log Service的。那麼,我們在設定檔中定義的日誌資訊和syslog.conf有什麼關係呢?
       或者您也注意到了這段:
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
      這段話是什麼意思呢?我認為是在/var/log/messages中記錄除去mail、authpriv和cron之外的所有系統資訊。也就是說它會記錄您自己的http資訊。是否這樣呢?我自己安裝了一個httpd,並且指定日誌到另外一個檔案,比如/usr/website/log/httplog。我雖然可以在/usr/website/log/httpdlog中看到我的httpd的日誌資訊,但是我執行
# cat /var/log/messages|grep HTTP
卻得到空。
      另外,就這個問題我曾經請教一個朋友。他說syslogd不會記錄你沒有要求它記錄的資訊,雖然有上面的*.info但是這個*是不包括你自己的服務的。我問,那麼iptables也沒有在我的syslog.conf中要求,那為什麼它會記錄到/var/log/messages呢?或者是iptables自己定義了吧。
      所以,關於這段的理解我只有這樣的認識。如果有錯誤,請您指出。

4 什麼是logrotate
      logrotate是對記錄檔做輪換。就是把現在的log命名為log.1,然後繼續寫log。如果存在log.1就命名log.1為log.2然後命名log為log.1,依此類推,但並非沒有盡頭。這個盡頭就是您在logrotate的設定檔中的定義,我的系統預設的是到4。那麼對log.4做什麼操作呢?刪除。
      syslogd是daemons方式啟動並執行;
      logrotate是按計劃啟動並執行。

5 配置logrotate的說明
5.1 設定檔的位置
/etc/logrotate.conf
/etc/logrotate.d
      其中,/etc/logrotate.conf是主要設定檔,/etc/logrotate.d中的檔案會被/etc/logrotate.conf讀取。如果您在/etc/logrotate.d中的設定檔沒有規定具體的參數,則這些參數由/etc/logrotate來決定。
5.2 logrotate的配置規則
      正如在上面5.1中所說的,logrotate的主要配置在/etc/logrotate.conf中設定,而/etc/logrotate.d中的檔案是對/etc/logrotate.conf的補充。或者可以看作為了不使/etc/logrotate.conf過大而設定。logrotate的寫法:
     把logfile(s)寫在前面,包含檔案的絕對路徑,可以使用空白字元分隔多個log,也可以使用統配符置換;
     用 { } 包含所有設定;
     一般包括:
prerotate 在啟動 logrotate 之前執行的命令,比如 /usr/bin/charrt -a /var/log/logfile;
postrotate 在執行了 logrotate 之後執行的命令,比如 /usr/bin/charrt +a /var/log/logfile;
     您可以設定執行如上兩個動作,也可以不設定,這依賴於您的需要。   
     在prerotate與postrotate之間的動作有:
weeky                                  #每個星期執行一次
rotate 4                               #保留四個日誌
create                                 #logratoe之後再建立日誌
compress                               #rotate之後的日誌是否壓縮
include /etc/logrotate.d               #包含/etc/logrotate.d目錄下面的輪換設定
      如果您自己在/etc/logrotate.d下寫了自己的輪換設定可以使用

logrotate -f yourfile
來測試。
5.3 應用舉例
    鑒於這個文檔的設定比較明了所以不在此舉例。您可以參考您的 /etc/logrotate.conf 和 /etc/logrotate.d 下面的文檔看看。

 

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/cneaglelee/archive/2009/06/27/4301513.aspx

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.