Nagios 工作原理

監控對象
       網絡服務監控:主機存活檢查,ftp,web等常見服務,數據庫服務監控...
       主機資源監控:系統負載,當前ip鏈接數,磁盤空間使用情況,當前進程數..
  監控主要目的
       監控對象發生故障或資源緊張時及時通知相關人員,以便問題得到迅速處理
  監控效果的展現
        web方式:通過瀏覽器觀看被監控對象;
           # 顏色代表嚴重級別如下所示
             綠色        OK         正常
             黃色        WARNING    警告
             紅色       CRITICAL   嚴重
             深黃色     UNKOWN     未知錯誤
       郵件通知:達到設定重試次數和探測間隔時間後發送郵件,說明問題的大致情況
       手機短信:較爲及時重要的功能
       上班時間開着瀏覽器看頁面,打開郵件程序查看,手機24小時開機.
 
詳解配置文件
 
配置文件概括總結其作用
        nagios.cfg : 主配置文件,nagios進程和CGIs讀取定義和控制nagios行爲,需要修改
           cgi.cfg : cgi配置文件,瀏覽器執行諸如重啓nagios服務等,需要修改
      resource.cfg : 宏定義文件,定義插件路徑,不需要修改
      commands.cfg : 命令定義文件,定義怎麼發送短信,郵件等,需要修改
      contactgroups.cfg,contacts.cfg,hostgroups.cfg,hosts.cfg,services.cfg
                   :監控對象配置文件,如主機配置文件,聯繫人配置文件等
                     主配置文件包含,並需手動創建
    
配置文件詳細其參數作用
————nagios.cfg
    # 主配置文件,主要管理其他所有跟nagios有關的文件.
    # 它定義了nagios的日誌文件,緩衝文件,狀態信息存放文件...
 
——nagios主要參數及含義
log_file=/var/spool/nagios/nagios.log
                      # 日誌文件
#cfg_file=/usr/local/etc/nagios/objects/localhost.cfg
                       # 此處常註釋,爲方便維護,配置目標單獨放
cfg_file=/usr/local/etc/nagios/objects/cgi.cfg
cfg_file=/usr/local/etc/nagios/objects/resource.cfg
cfg_file=/usr/local/etc/nagios/objects/commands.cfg
cfg_file=/usr/local/etc/nagios/objects/hosts.cfg
cfg_file=/usr/local/etc/nagios/objects/hostgroups.cfg
cfg_file=/usr/local/etc/nagios/objects/services.cfg
cfg_file=/usr/local/etc/nagios/objects/servicegroups.cfg                 
cfg_file=/usr/local/etc/nagios/objects/contacts.cfg
cfg_file=/usr/local/etc/nagios/objects/contactgroups.cfg
cfg_file=/usr/local/etc/nagios/objects/timeperiods.cfg
cfg_file=/usr/local/etc/nagios/objects/templates.cfg
                      # 配置文件模板
cfg_file=/usr/local/etc/nagios/objects/windows.cfg
cfg_file=/usr/local/etc/nagios/objects/switch.cfg
cfg_file=/usr/local/etc/nagios/objects/printer.cfg
check_extermal_commands=1
                      # web界面下重啓nagios,停止主機/服務檢查等操作,默認值爲0
command_check_interval=10s
                      # 命令檢查時間間隔.默認值是1秒

 
 
————cgi.cfg
                      # 只修改管理用戶
authorized_for_system_information=nagiosadmin
                      # 開始頭爲authorized_for_的都要改爲nagiosadmin
 
 
————resource.cfg
 
————hosts.cfg
    define host {
          host_name   # 定義主機名字,在hostgroups.cfg和services.cfg裏關聯.
                      # 一個主機能定義多個服務
                      # 當使用時,宏$HOSTNAME$裏存放這一項的值
          alias        # 定義一個方便理解的一個主機名字或描述
                      # 當使用時,宏$HOSTALIAS$裏存放這一項的值
          address     # 定義主機地址,一般是IP
                      # 當使用時,宏$HOSTADDRESS$裏存放這一值
          max_check_attempt(嘗試)
                       # 定義了檢測結果返回不是OK時,nagios重試檢測的次數
                      # 設置值爲1,不重試檢測直接報警
          check_period(期)
                      # 用time_period項的名字,定義在哪段時間內對主機主動檢測
                       # time_period是定義在別的文件裏的配置項,在這裏用名字引用它
          contact_groups(聯繫組)
                      # 定義聯繫組列表,用聯繫組的名字引用它們.多個組用","隔開
          notification_interval(通知_間隔)
                      # 定義當一個服務仍然down或unreachable
                      # 間隔多久重發一次通知給聯繫組
          notification_period(通知時間段)
                       # 定義什麼時間段內給聯繫組發通知
                      # 可以用time_period定義的名字引用它
          notification_options(通知時機)
                      # 定義發送通知的選項.選項有:
                        d=當有down狀態時發送通知
                        u=當有unreachable狀態時發送通知
                        r=當有服務recoveries時發送通知
                        f=當主機啓動或停機時發送通知
                        n=永遠不發送通知
               }
 
————hostgroups.cfg
   define hostgroup {
          hostgroup_name   
                      # 主機組名稱,通常定義得較短
          alias        # 主機組別名,通常定義得較長,方便理解
          members      # 主機組成員
                    }
 
————services.cfg
   define service {
          host_name   # 主機名稱
          service_description
                       # 服務描述
          check_command
                      # 執行命令
           max_check_attempts
                      # 失敗時嘗試檢測最大次數,值爲1時只報警不重新檢測
          normal_check_interval
                      # 常規檢測間隔時間,默認60分鐘          
                       # 常規指無論服務狀態是否正常,檢測次數達到"最大次數"時
          retry_check_interval
                      # 失敗嘗試間隔時間,默認爲60分鐘
                      # 失敗嘗試指服務狀態不正常,檢查次數達到"最大次數"時
           check_period
                      # 檢測時間段
          notification_interval
                      # 當服務狀態不正常時通知,值爲0時不通知聯繫人
          notification_period
                      # 通知聯繫人時間段
          notification_options
                      # 通知聯繫人選項:
                       # w警告,u未知,c危機,f啓動和停止,n不發送通知
          nitification_groups
                      # 聯繫人組
                 }
 
————servicegroups.cfg
   define servicegroup {
          servicegroup_name
                      # 服務組名稱,通常定義得較短
           alias        # 服務組別名,通常定義得較長
          members      # 服務組成員
                       }
 
————contacts.cfg
   define contact {
          contact_name
                      # 定義聯繫人的簡稱,他與contactgroup關聯
                      # 使用時,宏定義$CONTACTNAME$存放這個值
          alias       # 聯繫人的具體描述
                      # 使用時,宏定義$CONTACTALIAS$存放這個值
           host_notification_period
                       # 定義通知簡稱聯繫人關於主機的問題或恢復正常狀態的時間段
                      # 可以理解爲主機的在線時間
          service_notification_period
                      # 通知簡稱聯繫人關於服務的問題或恢復正常的時間段
          host_notification_options
                       # 定義主機在什麼狀態下給聯繫人發通知.參數描述如下:
                        d=主機是down,發通知
                        f=主機stop時,發通知
                        r=主機恢復up時,發通知
                        n=啥狀態都不發通知
           service_notification_options
                      # 定義服務在什麼狀態時給聯繫人發通知
                        w=警告狀態時,發通知
                        u=unknown狀態時,發通知
                        f=啓動和停止時,發通知
                        c=critival(關鍵,緊要)狀態時,發通知
                        n=什麼狀態下都不發通知
          host_notification_commands (短信,郵箱)
                      # 定義一個通知聯繫人主機問題或恢復正常的聯繫方式的列表
                      # 多個列表用","隔開
          service_notification_commands (短信,郵箱)
                      # 定義一個通知聯繫人服務問題或恢復正常的聯繫方式的列表
                      # 多個列表用","隔開
          email        # 定義聯繫人的email地址.
                      # 取決於你是如何定義notification commands,給聯繫人發緊急郵件
                       # 使用時,宏$CONTACTEMAIL$存放這個值
                         }
 
————contactgroup.cfg
    define contactgroup {
          contactgroup_name
                      # 聯繫組名稱,通常定義得較短
           alias       # 聯繫人別名,通常定義得較長
          members     # 聯繫組成員
                        }
 
————timeperiods.cfg
    define timeperiod {
          timeperiod_name
                      # 時間名稱,通常定義得較短
          alias        # 時間段別名,通常定義的較長
          sunday      # 星期日時間段
          monday      # 星期一時間段
           tuesday     # 星期二時間段
          wednesday   # 星期三時間段
          thursday    # 星期四時間段
          friday       # 星期五時間段
          saturday    # 星期六時間段
                      }
 
————commands.cfg
    define command {
           command_name
                      # 定義命令的簡稱
          command_line
                      # 定義當服務進行時nagios要執行的動作
                      # 在命令執行前,所有合法的宏都被他們的值代替
                   }
 
需要注意:
石頭大哥([url]http://www.itnms.net/discuz/[/url])的翻譯如下:
簡單說一下,大概的內容,不是嚴格翻譯。
    1. 確認check_nrpe 和 nrpe daemon的版本一定要一致。
    2. 確認 check_nrpe和nrpe deamon端同時啓用或者禁用ssl支持。
    3. 確認nrep.cfg可以被nrpe(或者nagios,反正是執行nrep或者xinetd/inetd程序的)用戶正常讀取。
    4. 有關僞隨機設備的問題。這個只會在solaris 8上出現,需要一個補丁Sun patch 112438。
    5. 確定nagios主機在xinetd的 only_from中,如果沒有使用xinetd,則要確認nrpe.cfg中的配置。
   6. 檢查一下你的Windows或者Linux自帶的防火牆,是否把端口給filter掉了。
   7. 把nrpe的的log打開,可以發現更多有用的信息。
 
(Nagios飛信linux系統免費短信報警配置)

CACTI網絡流量監控
1.什麼是cacti和rrdtool
    Cacti是一套基於PHP,MySQL,SNMP及RRDTool開發的網絡流量監測圖形分析工具。是通過 snmpget來獲取數據,使用 RRDtool繪畫圖形它提供了非常強大的數據和用戶管理功能,可以指定每一個用戶能查看樹狀結構、host以及任何一張圖,還可以與LDAP結合進行用戶驗證,同時也能自己增加模板,功能非常強大完善。界面友好。
   Rrdtool是用來存儲和處理通過SNMP收集到的數據的工具。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章