系統日志管理


 

 

系統日志管理

 

日志文件的分類(日志保存在/var/log下)

 

內核及系統日志

 

由系統服務syslog統一進行管理

 

  

/var/log/messages 內核及公共消息日志 /var/log/cron 計划任務日志 /var/log/dmesg 系統引導日志 /var/log/maillog 郵件系統日志 /var/log/secure 記錄與訪問限制相關日志

 

用戶日志

 

記錄系統用戶登錄及退出系統的相關信息

 

  /var/log/lastlog    最近的用戶登錄事件
    /var/log/wtmp        用戶登錄、注銷及系統開關機
    /var/log/btmp         失敗的用戶登陸事件
    /var/run/utmp        當前登錄的每個用戶詳細信息    

 

 

程序日志

 

由各種應用程序獨立管理的日志文件,記錄格式不統一
Web服務的access_log、error_log
Squid代理服務的access.log、cache.log
FTP服務的Xferlog

 

用戶日志分析

 

users    
who    比w更加簡潔
w    查看當前登陸的用戶
last    最近系統登陸情況
lastb    最近系統登陸失敗的情況

 

系統及內核日志格式

 

時間標簽       主機名    子系統名稱    消息

 

syslogd管理日志:5版本

 

配置文件:/etc/syslog.conf

格式如下

 

服務類別.日志級別        日志消息發送位置 

配置文件定義格式為:

 facility.priority        action 

facility,可以理解為日志的來源或設備目前常用的facility有以下幾種:

 auth                  # 認證相關的 
    authpriv              # 權限,授權相關的 
    cron                  # 任務計划相關的 
    daemon                # 守護進程相關的 
    kern                  # 內核相關的 
    lpr                   # 打印相關的 
    mail                  # 郵件相關的 
    mark                  # 標記相關的 
    news                  # 新聞相關的 
    security             # 安全相關的,與auth 類似  
    syslog               # syslog自己的 
    user                 # 用戶相關的 
    uucp                 # unix to unix cp 相關的 
    local0 到 local7     # 用戶自定義使用 
    *                    # *表示所有的facility 

 

priority(log level)日志的級別,一般有以下幾種級別(從低到高)

 

 debug           # 程序或系統的調試信息 
    info            # 一般信息
    notice          # 不影響正常功能,需要注意的消息 
    warning/warn    # 可能影響系統功能,需要提醒用戶的重要事件 
    err/error       # 錯誤信息 
    crit            # 比較嚴重的 
    alert           # 必須馬上處理的 
    emerg/panic     # 會導致系統不可用的 
    *               # 表示所有的日志級別 
    none            # 跟* 相反,表示啥也沒有 

 

 

日志消息的級別

 

0 EMERG(緊急) 會導致主機系統不可用的情況 1 ALERT(警告) 必須馬上采取措施解決的問題 2 CRIT(嚴重) 比較嚴重的情況 3 ERR(錯誤) 運行出現錯誤 4 WARNING(提醒) 可能會影響系統功能的事件 5 NOTICE(注意) 不會影響系統但值得注意 6 INFO(信息) 一般信息 7 DEBUG(調試) 程序或系統調試信息等

 

表示消息類別,例如:

auth、authpriv、cron、daemon、kern、lpr、mail、syslog、user

 

action(動作)日志記錄的位置

 

系統上的絕對路徑    # 普通文件 如: /var/log/xxx 
    |                   # 管道  通過管道送給其他的命令處理 
    終端              # 終端   如:/dev/console 
    @HOST               # 遠程主機 如: @10.0.0.1      
    用戶              # 系統用戶 如: root 
    *                   # 登錄到系統上的所有用戶,一般emerg級別的日志是這樣定義的 

 

定義格式例子:

mail.info   /var/log/mail.log # 表示將mail相關的,級別為info及 
                              # info以上級別的信息記錄到/var/log/mail.log文件中 
auth.=info  @10.0.0.1         # 表示將auth相關的,基本為info的信息記錄到10.0.0.1主機上去 
                              # 前提是10.0.0.1要能接收其他主機發來的日志信息 
user.!=error                  # 表示記錄user相關的,不包括error級別的信息 
user.!error                   # 與user.error相反 
*.info                        # 表示記錄所有的日志信息的info級別 
mail.*                        # 表示記錄mail相關的所有級別的信息 
*.*                           # 你懂的. 
cron.info;mail.info           # 多個日志來源可以用";" 隔開 
cron,mail.info                # 與cron.info;mail.info 是一個意思 
mail.*;mail.!=info            # 表示記錄mail相關的所有級別的信息,但是不包括info級別的 

 

 

rsyslog管理日志:6版本

 

配置文件:/etc/rsyslog.conf
格式如下

服務類別.日志級別           日志消息發送位置 

 

日志消息的級別

 

0  EMERG(緊急)        會導致主機系統不可用的情況
1  ALERT(警告)        必須馬上采取措施解決的問題
2  CRIT(嚴重)        比較嚴重的情況
3  ERR(錯誤)        運行出現錯誤
4  WARNING(提醒)    可能會影響系統功能的事件
5  NOTICE(注意)        不會影響系統但值得注意
6  INFO(信息)        一般信息
7  DEBUG(調試)        程序或系統調試信息等

 

 

連接符號

. 記錄大於等於此等級
.= 只記錄等於此等級的信息
.! 不等於此等級,也就是記錄此等級之外的信息

 

表示消息類別,例如:

auth、authpriv、cron、daemon、kern、lpr、mail、syslog、user

 

配置文件定義格式為:

facility.priority        action 

 

facility,可以理解為日志的來源或設備目前常用的facility有以下幾種:

 

  auth                  # 認證相關的 
    authpriv              # 權限,授權相關的 
    cron                  # 任務計划相關的 
    daemon                # 守護進程相關的 
    kern                  # 內核相關的 
    lpr                   # 打印相關的 
    mail                  # 郵件相關的 
    mark                  # 標記相關的 
    news                  # 新聞相關的 
    security             # 安全相關的,與auth 類似  
    syslog               # syslog自己的 
    user                 # 用戶相關的 
    uucp                 # unix to unix cp 相關的 
    local0 到 local7     # 用戶自定義使用 
    *                    # *表示所有的facility 

 

priority(log level)日志的級別,一般有以下幾種級別(從低到高)

  debug           # 程序或系統的調試信息 
    info            # 一般信息
    notice          # 不影響正常功能,需要注意的消息 
    warning/warn    # 可能影響系統功能,需要提醒用戶的重要事件 
    err/error       # 錯誤信息 
    crit            # 比較嚴重的 
    alert           # 必須馬上處理的 
    emerg/panic     # 會導致系統不可用的 
    *               # 表示所有的日志級別 
    none            # 跟* 相反,表示啥也沒有 

 

action(動作)日志記錄的位置

 

系統上的絕對路徑    # 普通文件 如: /var/log/xxx 
    |                   # 管道  通過管道送給其他的命令處理 
    終端              # 終端   如:/dev/console 
    @HOST               # 遠程主機 如: @10.0.0.1      
    用戶              # 系統用戶 如: root 
    *                   # 登錄到系統上的所有用戶,一般emerg級別的日志是這樣定義的 

 

定義格式例子:

mail.info   /var/log/mail.log # 表示將mail相關的,級別為info及 
                              # info以上級別的信息記錄到/var/log/mail.log文件中 
auth.=info  @10.0.0.1         # 表示將auth相關的,基本為info的信息記錄到10.0.0.1主機上去 
                              # 前提是10.0.0.1要能接收其他主機發來的日志信息 
user.!=error                  # 表示記錄user相關的,不包括error級別的信息 
user.!error                   # 與user.error相反 
*.info                        # 表示記錄所有的日志信息的info級別 
mail.*                        # 表示記錄mail相關的所有級別的信息 
*.*                           # 你懂的. 
cron.info;mail.info           # 多個日志來源可以用";" 隔開 
cron,mail.info                # 與cron.info;mail.info 是一個意思 
mail.*;mail.!=info            # 表示記錄mail相關的所有級別的信息,但是不包括info級別的 

 

 

日志的管理策略

 

 

一般化措施

 

重要日志做好備份/延長保存期限
控制日志的訪問權限

 

集中管理日志

 

方便消息的統一收集、整理和分析
避免日志的意外丟失、防惡意篡改記錄

 

 

logrotate日志輪轉

 

logrotate輪轉

 

減小日志大小,降低分析難度
丟棄過期日志節省空間
結合cron每天執行

 

軟件包

logrotate

 

主配置文件/etc/logrotate.conf(daily, weekly, monthly, or yearly)

  weekly      輪轉頻率,默認每周
    rotate 4      保留4個輪轉備份
    create      執行輪轉后創建新文件
    #compress      是否壓縮日志
    dateext        以年月日時間取代后綴1 2 3 ...
    include /etc/logrotate.d          包含此目錄下的配置
    /var/log/wtmp {          啟用輪轉的日志文件
            monthly          每月輪轉一次
        missingok          丟失不提示
            notifempty         如果為空則不輪轉
            minsize 1M          日志達到1MB才開始輪轉
            create 0664 root utmp      建新文件並設權限
            rotate 1          只保留一個備份
        }    

 

輪詢完會生成一個空的message文件

如何輪詢:

1.假如以星期為輪詢周期。如果系統有一個message文件,過了一周后會生成一個空的message文件和message1(原來的message),第二周就會生成message2文件(message1改為message2),依次類推

 

 

logrotate    手工執行輪轉

-v    啟動顯示模式
    -f    強制rotate

 

 

/var/lib/logrotate.status

** size生效的話,會忽略輪轉頻率
    ** 輪轉頻率生效的話,會忽略size
    ** 配置的順序:后生效的會覆蓋之前的語句

 


免責聲明!

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



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