亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

Unix/Linux系統自動化管理:日志管理篇

添加時間:2014-1-3 17:49:43  添加: 思海網絡 

系統日志Unix/Linux中一個非常重要的功能組成部分。它可以按照某種規范記錄下系統所產生的所有行為。我們可以使用系統日志所記錄的信息進行系統排錯,系統性能優化,或者根據這些信息調整系統的行為。另外,系統日志還可以為系統的安全管理提供重要的信息。

不同的操作系統可能會使用不同的日志方式,如AIX的Error log和Linux的syslog/syslog-ng。本文將分別論述在AIX上對Error log的監控和在Linux上對syslog/syslog-ng的監控。

AIX Error log 簡介及其自動化監控機制

大部分的 Unix/Linux 系統都使用 syslog 作為系統日志方式,AIX 也支持 syslog 機制,但是 AIX 操作系統及其主要應用程序相關的日志都使用 Error log 來記錄日志,只有少量的應用程序使用 syslog。AIX syslog 和 Linux syslog 的功能以及配置非常類似,在此不再重復論述。

AIX Error log 機制是 AIX 基本系統 (Base Operating System) 的一部分,在缺省安裝情況下無需進行任何配置即可使用 AIX Error log 機制。

AIX Error log 機制組件

AIX Error log 機制主要由以下幾個部分組成:

  1. 設備文件 /dev/error: 用于接收內核以及應用程序產生的日志信息。
  2. 守護進程 /usr/lib/errdemon:在系統初始化時自動啟動,監控內核以及應用程序傳遞給設備文件 /dev/error 的日志信息,并將日志信息計入日志文件。
  3. 日志文件 /var/adm/ras/errlog:缺省日志文件。日志文件位置可以通過命令 /usr/lib/errdemon – i 進行配置
  4. 輔助程序:除了設備文件、守護進程和日志文件外,AIX Error log 還提供了豐富的輔助程序對 Error log 進行配置、操作、分析和生成報告。在下面的章節中會對各輔助程序進行詳細的說明。

AIX Error log 配置

AIX Error log 可以在不進行任何配置的情況下使用而且缺省配置基本上可以滿足各種場景的使用需求,但 AIX 仍然提供了配置接口。通過配置接口可以修改設備文件 /dev/error 的緩沖區尺寸、日志文件的位置、日志文件的尺寸限制以及對重復日志的處理等等。AIX Error log 通過命令 /usr/lib/errdemon 進行配置。

  1. 修改 Error log 設備的緩沖區大小

    Error log 設備 /dev/error 為塊設備,需要使用緩沖區進行讀寫。缺省情況下,/dev/error 的緩沖區大小為 8KB,我們可以通過 /usr/lib/errdemon – B 來配置 /dev/error 的緩沖區大小。如果新配置的緩沖區大小大于現有的配置,新配置將會立即生效;如果新配置的緩沖區大小小于現有的配置,則新配置會在 errdemon 重新啟動后生效。

  2. 配置日志文件路徑

    缺省情況下,AIX Error log 會使用文件 /var/adm/ras/errlog 存儲日志信息,使用 /usr/lib/errdemon – i 可以配置 Error log 日志文件的路徑。新配置的日志文件路徑會立即生效。

  3. 配置日志文件大小限制

    AIX Error log 的日志文件大小是可配置的,配置命令為 /usr/lib/errdemon – s。如果新配置的日志文件大小大于現有的配置,新配置將會立即生效;如果新配置的日志文件大小小于現有的配置,則現有的日志文件將會被備份為 *.log,然后 errdemon 會用新的日志文件大小配置生成一個新的日志文件。

  4. 配置對重復條目的處理

    如果操作系統或者應用程序發生了重復的信息或者錯誤,在 Error log 中就會造成重復的條目。AIX Error log 對重復的條目會進行相應的處理,如在一定時間內內容相同的條目將會被標記為重復,如果重復的條目數超過了預先設置的閾值,則新的重復的條目將不會再作為重復條目被記入 Error log。是否打開重復條目處理功能的配置參數為 /usr/lib/errdemon – d,重復條目的時間間隔配置參數為 /usr/lib/errdemon – t,最大重復條目數的配置參數為 /usr/lib/errdemon – m。

 

AIX Error log 使用

AIX Error log 機制啟動后,操作系統或者應用程序將會通過 AIX Error log 記錄所發生的事件或者錯誤。本節將給出日常使用 AIX Error log 的常用命令及其使用方法。AIX Error log 的使用主要有生成 Error log 報告和刪除 Error log 條目。

生成 AIX Error log 報告

AIX 命令 errpt 可以用來生成 Error log 報告,errpt 提供了豐富的參數來指定源數據的范圍和報告的格式。如 -d 參數可以用來指定只顯示特定的錯誤種類,-s 和 -e 參數可以指定特定時間范圍內的日志條目,-l 參數可以指定之顯示特定序號的日志條目,-a 參數可以指定顯示日志條目的詳細信息。具體 errpt 的用法可參見 errpt 的 manpage。

在此列舉 errpt 使用的一個例子并以此例子說明 AIX Error log 條目中各字段的含義。


清單 1. errpt 命令輸出示例
				 
 #errpt -a -l 2 
 --------------------------------------------------------- 
 LABEL:          REBOOT_ID 
 IDENTIFIER:     2BFA76F6 

 Date/Time:       Mon Mar  2 21:38:21 2009 
 Sequence Number: 2 
 Machine Id:      00C0DD724C00 
 Node Id:         p6ml4n05 
 Class:           S 
 Type:            TEMP 
 WPAR:            Global 
 Resource Name:   SYSPROC 

 Deion 
 SYSTEM SHUTDOWN BY USER 

 Probable Causes 
 SYSTEM SHUTDOWN 

 Detail Data 
 USER ID 
           0 
 0=SOFT IPL 1=HALT 2=TIME REBOOT 
           0 
 TIME TO REBOOT (FOR TIMED REBOOT ONLY) 
           0 
 # 

其中各主要字段的含義如下:

LABEL:為該事件預先定義的名稱

IDENTIFIER:此事件的數字標識

Date/Time:事件發生的日期和時間

Sequence Number:事件序列號

Machine Id:此事件發生的節點處理器識別符

Node Id:此事件發生的節點名稱

Class:事件的類別。AIX Error log 目前支持的類別有:

H: 硬件

S:軟件

O:Informational 條目

U:無法確定事件的類別

Type:事件的嚴重程度,AIX Error log 目前支持的事件嚴重程度有:

PEND:設備或組件即將失效

PERF:設備或組件的性能已經低于可以接受的閾值

PERM:無法修復的錯誤。PERM 是所有錯誤中最嚴重的一種,PERM log 往往說明某個硬件或者軟件組件已經失效并且無法修復。

TEMP:在若干次失敗后某個錯誤被成功修復。TEMP 也可以用于標識 informational 條目。

UNKN:無法確定事件的嚴重程度

INFO:信息而并非錯誤

Resource Name:產生信息的組件名稱

Deion:事件的簡短描述

Probable Causes:事件產生的可能原因

刪除 AIX Error log

刪除 AIX Error log 條目可以使用命令 errclear,errclear 也提供了選項用于指定刪除的范圍,如 -d 指定僅刪除特定類別的事件,-l 指定僅刪除特定序號的條目。通常情況下,errclear 可以被用作 cron 條目周期性執行用以清楚 Error log 文件。

手動生成 AIX Error log 條目

命令 errlogger 可以用于手動生成 AIX Error log 條目。手動生成 AIX Error log 條目可以用于測試 AIX Error log 功能或者測試下面將要論述的自動監控功能等。

 

AIX Error log 監控自動化

AIX 操作系統為 Error log 提供了一種通過 ODM 類 errnotify 進行錯誤通知 (Error Notification) 的機制。用戶可以通過添加一個 errnotify 的 ODM 類實例來實現 AIX Error log 的錯誤通知,即當 AIX Error log 機制記錄了錯誤條目后,errnotify 會調用預先定義好的命令通知系統管理員或者進行其它的修復動作。

AIX Error log 的錯誤通知機制的功能完全符合了監控自動化的要求,我們可以通過添加一個 errnotify 類實例來實現對 AIX Error log 的監控,當定義的錯誤發生后,errnotify 會調用相應的命令來通知系統管理員。需要注意的是只有 root 用戶才能添加 errnotify 類實例。

以下是添加 errnotify 類實例以及利用 errnotify 機制自動監控 AIX Error log 的具體步驟:

  1. 生成一個 ODM errnotify 類實例的 stanza 文件

    生成一個 ODM errnotify 類實例的 stanza 文件需要指定若干選項,各主要選項的說明如下:

    en_name:errnotify 類實例的名字,名字需要全局唯一。

    en_persistenceflg:在系統重新引導時是否自動刪除該實例,0 為在系統重新引導時自動刪除該實例,1 為在系統重新引導時不刪除該實例。

    en_type:指定僅監控特定嚴重程度的 Error log 條目如 INFO、PEND 等。

    en_class:指定僅監控特定類別的 Error log 條目如 H、S 等。

    en_method:定義在監測到 AIX Error log 條目后所采取的動作,動作可以為任何的腳本程序或者操作系統命令。errnotify 自動設置了關于 Error log 條目信息的變量可供監控程序使用:

    $1 error log 條目的序號

    $2 error log 條目的 ID

    $3 error log 條目的事件類別

    $4 error log 條目的事件嚴重程度

    $5 error log 條目的 Alert flags

    $6 error log 條目的產生的組件名稱

    $7 error log 條目的產生的組件種類 (Type)

    $8 error log 條目的產生的組件類 (Class)

    $9 error log 條目的錯誤標簽

    關于 errnotify 類實例的各字段的具體說明,請參見 AIX 文檔《 General Programming Concepts: Writing and Debugging Programs 》

    例如我們可以生成一個 errnotify 類實例的 stanza 如下:



    清單 2. errnotify 類實例 stanza
    				 
    errnotify: 
       en_name = "errlog_notify"
       en_persistenceflg = 1 
       en_method = "mail -s \"Events occured in Error log: sequence = $1 error_id = $2
       class = $3 type = $4 alert_flags = $5 res_name = $6 res_type = $7 res_class = $8
       label = $9\" root"
    
    

    該 stanza 的內容可解釋為當任何的 AIX Error log 事件發生時,都會給 root 用戶發送一個郵件,郵件的內容中包含了 Error log 條目的具體信息。

  2. 將類實例添加到 ODM 數據庫

    AIX 命令 odmadd 可以將 ODM 類實例添加到 ODM 數據庫中。

    如 : odmadd /errnotifystanza

  3. 驗證 ODM errnotify 類實例

    可以用命令 odmget 來驗證 errnotify 類實例已經被正確添加。



    清單 3. 使用 odmget 命令查看 errnotify 類實例
    				 
    [node01][/]> odmget -q en_name="errlog_notify" errnotify 
    
    errnotify: 
         en_pid = 0 
         en_name = "errlog_notify"
         en_persistenceflg = 1 
         en_label = ""
         en_crcid = 0 
         en_class = ""
         en_type = ""
         en_alertflg = ""
         en_resource = ""
         en_rtype = ""
         en_rclass = ""
         en_symptom = ""
         en_err64 = ""
         en_dup = ""
         en_method = "mail -s \"Events occured in Error log: sequence = $1 error_id = $2
         class = $3 type = $4 alert_flags = $5 res_name = $6 res_type = $7 res_class = $8
         label = $9  contents = \n`errpt -a -l $1\n\" root"
    

 

  • 手動生成 Error log 條目測試監控是否工作

    在確認 errnotify 類實例已經被正確添加后即可以通過 errologger 手動生成 Error log 條目測試監控是否工作。如:



    清單 4. 使用 errlogger 命令生成測試日志
    				 
     errlogger "this is a test for Error log monitoring"
    

    然后即可以查看 root 的郵件中是否已經收到了該 Error log,如果工作正常 root 的郵件中會收到內容如下的郵件:



    清單 5. mail 命令
    				 
    Message 37: 
    From root Fri Mar 20 02:43:15 2009 
    Date: Fri, 20 Mar 2009 02:43:15 -0400 
    From: root 
    To: root 
    Subject: Events occured in Error log: sequence = 142983 error_id = 0xaa8ab241 
    class = O type = TEMP alert_flags = FALSE res_name = OPERATOR res_type = NONE
     res_class = NONE label = OPMSG  contents = 
    
     --------------------------------------------------------------------------- 
     LABEL:          OPMSG 
     IDENTIFIER:     AA8AB241 
    
     Date/Time:       Fri Mar 20 02:43:14 EDT 2009 
     Sequence Number: 142983 
     Machine Id:      000181404C00 
     Node Id:         hacsmdev3 
     Class:           O 
     Type:            TEMP 
     Resource Name:   OPERATOR 
    
     Deion 
     OPERATOR NOTIFICATION 
    
     User Causes 
     ERRLOGGER COMMAND 
    
            Recommended Actions 
            REVIEW DETAILED DATA 
    
     Detail Data 
     MESSAGE FROM ERRLOGGER COMMAND 
     this is a test for Error log monitoring 				
    

  • 停止監控 AIX Error log

    如果想停止通過 errnotify 監控 AIX Error log,只需要將 errnotify 類實例從 ODM 數據庫中刪除即可。



    清單 6. 刪除 errnotify 類實例
    				 
     [node01][/]> odmdelete -q en_name="errlog_notify" -o errnotify 
     1 objects deleted 
    
  •  

     

    Linux syslog/syslog-ng 簡介及其自動化監控機制

    大部分的 Linux 系統中都要使用 syslog 機制來記錄系統日志,它具有很強的靈活性,能使系統根據不同日志配置采取不同的動作。一般來講,syslog 能通過產生日志的子系統和信息優先級對日志做分類處理,包括將日志條目寫到一個文件,一個設備,或給用戶發送一個信息。它既可以記錄本地事件,也可能通過網絡紀錄另一個主機上的事件。

    但是,隨著系統中運行的應用程序越來越多,一個子系統有可能同時被多個應用程序使用,這樣就導致一些不是很重要的信息將重要的信息掩蓋,僅憑產生日志的子系統和信息優先級來區分日志的方法已經不能明確地甄別出系統管理者感興趣的信息。

    syslog-ng(下一代系統日志工具)應運而生,它的一個設計原則就是建立更好的消息過濾粒度。syslog-ng 可以完全替代 syslog 的服務,并且通過定義規則,實現更好的過濾功能。

    下面我們將分別對 syslog 和 syslog-ng 機制做具體的介紹。

    Linux syslog/syslog-ng 機制組件

    Linux syslog/syslog-ng 機制主要由以下幾個部分組成:

    1. 設備文件 /dev/log: 用于接收內核以及應用程序產生的日志信息。
    2. 守護進程:在系統初始化時自動啟動,監控內核以及應用程序傳遞給設備文件 /dev/log 的日志信息,并將日志信息計入日志文件。
    3. 在 syslog 機制中為 /sbin/syslogd;在 syslog-ng 機制中為 /sbin/syslog-ng。
    4. 配置文件:為守護進程提供配置信息,在程序啟動時讀取,用于指定日志記錄規則。

    在 syslog 機制中配置文件的默認位置為 /etc/syslog.conf;在 syslog-ng 機制中為 /etc/syslog-ng/syslog-ng.conf。

    日志文件 /var/log/messages:缺省日志文件。用于記錄郵件以外其他設備優先級高于”info”的日志信息。

    Linux syslog/syslog-ng 配置和使用

    Linux 中 syslog/syslog-ng 的配置較 AIX 簡單而靈活,用戶只需手動修改 syslog.conf/syslog-ng.conf 文件中的配置條目后,重新啟動 syslog 服務即可完成,下面我們具體介紹配置方法:

    • 在 syslog 機制中配置文件 /etc/syslog.conf 的規則格式如下:

      facility.level action

      其中 facility.level 又稱為選擇符 (selector),facility 指產生日志的子系統,level 指日志級別。

      例如:

      authpriv.* /var/log/secure

      表示將來自子系統 authpriv 的所有優先級日志條目都寫入 /var/log/secure 文件中。

      facility 可以設置為下面的關鍵字之一:

      auth 由 pam_pwdb 報告的認證活動。

      authpriv 包括私有信息 ( 如用戶名 ) 在內的認證活動

      cron 與 cron 和 at 有關的信息。

      daemon 與 inetd 守護進程有關的信息。

      ftp 與 FTP 有關的信息

      kern 內核信息,首先通過 klogd 傳遞。

      lpr 與打印服務有關的信息。

      mail 與電子郵件有關的信息

      mark syslog 內部功能用于生成時間戳

      news 來自新聞服務器的信息

      syslog 由 syslog 生成的信息

      user 由用戶程序生成的信息

      uucp 由 uucp 生成的信息

      local0 ~ local7 由自定義程序使用,例如使用 local5 做為 ssh 功能

      * 通配符代表除了 mark 以外的所有功能

      level 可以設置為下面的關鍵字之一 ( 降序排列,嚴重性越來越低 ):

      emerg 系統不可用

      alert 需要立即被修改的條件

      crit 阻止某些工具或子系統功能實現的錯誤條件

      err 阻止工具或某些子系統部分功能實現的錯誤條件

      warning 預警信息

      notice 具有重要性的普通條件

      info 提供信息的消息

      debug 不包含函數條件或問題的其他信息

      none 沒有優先級,通常用于排錯

      * 除了 none 之外的所有級別

    • 在 syslog-ng 機制中配置文件 /etc/syslog-ng/syslog-ng.conf 的規則格式如下:

      log { source S1; source S2; ... filter F1; filter F2; ... destination D1; destination D2; ... };

      其中 source 為消息源標志符,filter 為過濾器標志符,destination 為目的地標志符。

      例如:

      source src { unix-dgram("/dev/log"); };

      filter f_warn { level(warn, err, crit); };

      destination warn { file("/var/log/warn" fsync(yes)); };

      log { source(src); filter(f_warn); destination(warn); };

      表示將 /dev/log 設備收到的所有日志信息做過濾處理,只把優先級是 warn, err, crit 的日志寫入 /var/log/warn 文件中。

      用戶可以選擇使用系統提供的 source/filter/destination 規則定義,也可以按規定格式定義用戶化的配置項。一般情況下,我們只創建自定義的 destination 并結合系統提供的 source 和 filter 一起使用。關于這些配置項的定義方法請參見 syslog-ng.conf manpage。

    Linux syslog-ng 監控自動化

    在 Linux 系統中,缺省情況下,除 iptables, news 和 mail 子系統外,其它所有子系統的日志信息都會存儲在 /var/log/messages 文件中。當系統中運行應用程序越來越多,各相關子系產生的日志也會越來越繁雜,從系統日志中分離出對自己有用的信息并對其實現自動監控往往令系統管理員頭痛不已。

    syslog-ng 服務就提供了一種消息粒度更小定義更為靈活的日志過濾機機制,用戶可以根據不同的需要定義不同的消息源,過濾器和目的地,從而將特定的日志信息存儲到特定的位置;同時,系統管理員還可以創建自動化腳本對這些分類后的日志文件做進一步的處理。例如,定時監控系統錯誤信息并以郵件的方式通知系統管理員。

    下面我們將介紹對特定日志信息中系統錯誤進行自動監控的具體步驟:

    1. 根據需要定義 filter 和 destination

      前面我們已經講過 Linux syslog-ng 中 /etc/syslog-ng/syslog-ng.conf 文件對 source,filter 和 destination 的定義規則,在這里假設當前應用程序使用 local6 做網絡管理功能,我們需要對來自這一子系統的優先級為 err(錯誤)的系統消息做監控和管理。

      那么,我們需要在 /etc/syslog-ng/syslog-ng.conf 文件中定義 filter 如下:

      filter f_local6err { level(err) and facility(local6); };

      定義 destination 如下:

      destination local6err { pipe(“/var/log/local6.err” group(root) perm(0644)); };

      表示目的地為隊列 /var/log/local6.err,該隊列屬于 root 組,其訪問屬性為 0644。

    2. 組建 log 配置條目

      定義了 filter 和 destination 之后,我們需要將它們組合在一起,形成一個 syslog-ng 的 log 配置條目,例如:

      log { source(src); filter(f_ local6err); destination(local6err); };

      然后重新啟動 syslog-ng 服務使新配置生效:

      # /etc/init.d/syslog restart

      Shutting down syslog services done

      Starting syslog services done

     

     

    #

    這樣,系統中來自 local6 子系統的所有 err 日志都將被存儲在 /var/log/local6.err 隊列中。這里之所以將日志目的設置為隊列而非普通文件主要是為下一步中自動監控做準備。并且,在設置前需要調用命令 “mkfifo /var/log/local6.err”來預告創建好這個隊列。

  • 創建腳本對目標隊列做自動監控

    為了能將 /var/log/local6.err 隊列接收到系統錯誤及時地通知給系統管理員,我們需要創建一個腳本定期讀取 local6.err 隊列,一旦監測到有新的系統錯誤產生,就以 mail 的形式通知系統管理員。

    下面是一個監測隊列的自動化腳本的 perl 實例僅供參考。



    清單 7. 監測隊列的自動化腳本
    				 
     #  monitor_fifo 
     #!/usr/bin/perl 
    
     # $fifo 為目標隊列
     my $fifo = “/var/log/local6.err”; 
    
     # 首先檢測 fifo 的有效性
    	 local $SIG{ALRM} = sub { die "alarm\n" }; 
    	 eval { 
    		 alarm 4; 
    		 open(PIPE, $fifo) or die 
            print “Error: $fifo can not be opened.\n”; 
    		 alarm 0; 
    	 }; 
    	 if ($@ =~ /alarm/) { close PIPE; exit 0; } 
    
     # 讀取 fifo 
    	 my $allinfo = ""; 
    	 while (1) 
    	 { 
    		 my $line; 
    		 eval { 
    			 alarm 2; 
    			 $line = <PIPE>; 
    			 alarm 0; 
    		 }; 
    		 if ($@ =~ /alarm/) { 
    				 close PIPE; 
                    # 如果讀到系統錯誤日志,郵件通知系統管理員
    		     if ($allinfo) 
    		         { 
    			  my $command = “echo \“$allinfo\” | mail -s \”$fifo\” root”; 
    			  my $rc = system($command); 
                        if ($rc) 
                        { 
                            print “Notification to root failed.\n”; 
    					 } 
    				 } 
    
    				 exit 0; 
    		 } 
    		 $allinfo .= $line; 
    	 } 
    	 close PIPE; 	
    

    不難發現,這個自動化腳本會將目標隊列中現存的所有日志以郵件的形式發送給系統 root 用戶,如果系統管理員需要連續地定期地對這一目標隊列進行自動監控,那么就需要借助 Linux 系統的 crontab 功能,使系統可以定期地調用 monitor_fifo 腳本。

    例如:

    使用 crontab -e 命令編輯 crontab 配置文件,并添加如下條目:

    */1 * * * * /root/monitor_fifo 1>/dev/null 2>/dev/null

    上面的例子表示每一分鐘調用一次 monitor_fifo 腳本。

  • 驗證配置是否成功

    管理員可以使用 logger 命令產生幾條測試日志信息。

    # logger -p local6.err "This is a local6.err test message1."

    # logger -p local6.err "This is a local6.err test message2."

    # logger -p local6.err "This is a local6.err test message3."

    表示產生三條 facility 為 local6,level 為 err 的消息內容為 This is a local6.err test message# 的系統日志。

    如果配置正確,這條消息將會被存放在目標隊列 /var/log/local6.err 中。通過系統調用 /root/monitor_fifo 腳本,這條系統錯誤日志信息會被郵寄給 root 用戶,使用 mail 命令即可讀取這些郵件。



    清單 8. mail 命令
    				 
     # mail 
     mailx version nail 11.25 7/29/05.  Type ? for help. 
    "/var/mail/root": 1 message 1 new 
     >N  1 root@p6hv8n02.clus Tue Apr 14 03:19   21/808   /var/log/monitor.warn 
     ? 
    
     Message  1: 
     From root@p6hv8n02.clusters.com  Tue Apr 14 03:19:37 2009 
     X-Original-To: root 
     Delivered-To: root@p6hv8n02.clusters.com 
     Date: Tue, 14 Apr 2009 03:19:37 +0000 
     To: root@p6hv8n02.clusters.com 
     Subject: /var/log/monitor.warn 
     User-Agent: nail 11.25 7/29/05 
     MIME-Version: 1.0 
     Content-Type: text/plain; charset=us-ascii 
     Content-Transfer-Encoding: 7bit 
     From: root@p6hv8n02.clusters.com (root) 
    
     Apr 14 03:19:26 p6hv8n02 root: This is a local6.err test message1. 
     Apr 14 03:19:28 p6hv8n02 root: This is a local6.err test message2. 
     Apr 14 03:19:30 p6hv8n02 root: This is a local6.err test message3. 
    

     

    我們可以看出,通過這一配置,系統管理員可以很方便對系統錯誤進行自動監控。

  • 注意事項

    在 Linux 系統中,一些安全設置會影響到 syslog/syslog-ng 的使用,所以在配置過程中要特別注意否則 syslog/syslog-ng 將不能正常工作。

    在 RedHat 系統中,使用 syslog/syslog-ng 時 SELinux (Security-Enhanced Linux) 服務必須關閉,可參見如下方法:

    • 修改 /etc/selinux/config 文件,設置 SELINUX=permissive。
    • 重啟系統使 selinux 設置生效。

    在 SLES10 SP1 及其以上服務級的系統中,為使 syslog/syslog-ng 正常工作,我們需要修改 /etc/apparmor.d/sbin.syslog-ng 文件或者從 AppArmor 列表中刪除 syslog 項。下面兩個例子分別介紹如何修改 sbin.syslog-ng 文件和從 Apparmor 列表中刪除 syslog 項的具體方法:

      • 修改 sbin.syslog-ng 文件,設置 fifo /var/log/local6.err 為讀寫權限,并重新啟動 boot.apparmor 服務。如下:


    清單 9. 修改 apparmor 訪問權限
    				 
     # cat /etc/apparmor.d/sbin.syslog-ng 
     #include <tunables/global> 
     /sbin/syslog-ng { 
     #include <abstractions/base> 
     . 
     . 
     . 
     /var/run/syslog-ng.pid w, 
     /var/log/local6.err wr, 
     } 
    
     # /etc/init.d/boot.apparmor restart 
    

      • 從 AppArmor 列表中刪除 syslog 項,并重新啟動 boot.apparmor 服務。如下:

    #rm -f /etc/apparmor.d/sbin.syslogd

    #rm -f /etc/apparmor.d/sbin.syslog-ng

    # /etc/init.d/boot.apparmor restart

  • 取消配置

    Linux syslog/syslog-ng 的取消配置操作相對簡單,只需要手動編輯 /etc/syslog.conf 或 /etc/syslog-ng/syslog-ng.conf 文件,刪除相關的配置信息,然后重新啟動 syslog 服務即可。

    在這個例子中,除取消 syslog/syslog-ng 配置外,我們還需要清除 crontab 中的配置信息。

      小結

      本文介紹了 AIX 和 Linux 上的日志方式 AIX Error log 和 Linux syslog 以及如何自動化監控 AIX Error log 和 Linux syslog。監控系統日志會給系統管理員提供豐富的關于系統運行的信息,自動化監控的實現更能為系統管理員在系統發生異常時采取迅速的措施提供了方便

    1. 關鍵字:Linux、系統、應用程序

    2. 分享到:

      頂部 】 【 關閉
      版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
      聯系電話:(0757)22630313、22633833
      中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
      網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
      察察 工商 網安 舉報有獎  警警  手機打開網站