nagios相關參數

 

1、設置Apache2服務器,讓apache2啓動時加載nagios
       Nagios安裝好之後,我們需要從瀏覽器去察看nagios的監控信息,否則如果直接去看nagios的log文件,人會瘋掉的。
       那麼,如何才能從瀏覽器看到nagios的信息呢?這時需要用到apache2服務器,也就是基於apache2的基礎上,通過瀏覽器去訪問nagios的數據信息。
       我們要做的工作只是配置一下apache,即修改配置文件。要修改的內容在nagios編譯的時候已經生成,爲sample-config目錄下的httpd.conf文件。將該文件的全部內容添加到apache2的主配置文件中即可!
2、nagios的授權
       用戶在從瀏覽器中查看nagios的監控信息時,我們可以對不同用戶作一些限制。比如某些用戶可以所有信息,某些用戶只能查看部分信息。
       首先,使用htpasswd添加授權用戶(即可以從瀏覽器登陸nagios監控界面的用戶)。如:
      htpasswd –c /usr/local/nagios/etc/htpasswd.users nagiosadmin
然後輸入密碼,即可用該用戶名密碼登陸nagios。
       在這裏插一句,nagios啓動之後,所有的信息均在var目錄下的log文件中,所有nagios的信息之所以能夠在瀏覽器中顯示出來,需要一個工具,就是CGI,是它把信息顯示在網頁上。用戶權限的限制正是在這裏!
       接下來,在cgi的主配置文件中,有一個變量use_authentication,默認是1,即需要認證。開始的時候我建議大家把這個值改爲0,是爲了省事,這樣配置起來確實方便,只此一步,就可以查看nagios的監控信息。但是,這樣的話,就是所有htpasswd授權的用戶均可以查看所有信息,很不安全。我們需要對不同的用戶進行限制。所以建議將use_authentication改爲1,然後再在接下來後面的幾個變量中添加各種權限的用戶。如
       authorized_for_system_information
       authorized_for_configuration_information
       authorized_for_system_commands
       authorized_for_all_services
       authorized_for_all_hosts
       authorized_for_all_service_commands
       authorized_for_all_host_commands
       。。。。。。
當use_authentication值爲0時,這些變量的賦值全部失效,默認爲全部用戶。
3、nagios配置文件的關係和理解
       Nagios能實現的具體的功能正是通過配置文件來表現的。而這些配置文件之間有着千絲萬縷的關係。比如services依賴於host,timeperiod和contactgroup等。
       Nagios.cfg:
這是nagios的主配置文件,它主要負責管理其他所有跟nagios有關的文件。他定義了nagios的日誌文件,緩衝文件,狀態信息存放文件等。還有其他所有的配置文件等。這些主要的配置文件如下:
1.        hosts.cfg
define host{
host_name                                 #這一項是用來定義標識主機的名字。我們用這個名字在host group和service裏標識這個主機。一個主機能定義多個服務。使用適當時,宏$HOSTNAME$裏存放了這一項的值。
alias                                          #這一項用來定義主機的一個完整名字或描述。主要是和使你能理容易的標識一個主機。使用適當時,宏$HOSTALIAS$裏存放了這一項的值。
address                                    #這一項是用來定義主機的地址。一般而言是主機的IP。當然,你也能夠使用一個FQDN來標識你的主機,在沒有可訪問DNS服務器服務的情況下這種方法會引起問題。使用適當時,宏$ HOSTADDRESS $裏存放了這一項的值。
max_check_attempts                  #這一項用來定義在檢測返回結果不是OK時,nagios重試檢測命令的次數。設置這個值爲1會導致nagios一次也不重試就報警。
check_period                            #這一項用一個time period項的名字來定義在哪段時間內激活對這臺主機的主動檢測。time period是定義在別的文件裏的配置項,我們可以在這裏用名字來引用她。
contact_groups                          #這是一個聯繫組列表。我們用聯繫組的名字來引用她們。多個聯繫組間用“,”來分隔。
notification_interval                     #這一項用來定義當一個服務仍然down或unreachable時,我們間隔多久重發一次通知給聯繫組。
notification_period                      #這一項用一個time period定義來標識什麼時間段內給聯繫組送通知。這裏我們用time period定義的名字來引用她。
notification_options                   #這一項用來決定發送通知的時機。選項有:d = 當有down狀態時發送通知,u = 當有unreachable狀態時發送通知, r = 當有服務recoveries時發送通知,f = 當主機啓動或停機時發送通知。如果你給一個n選項,那麼永遠不會發送通知。
            }
2.        hostgroups.cfg
define hostgroup{
               hostgroup_name                          #主機組名稱,通常定義得較短
               alias                                          #主機組別名,通常定義得較長
               members                                    #主機組成員
              }
3.        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不發送通知
               contact_groups                           #聯繫人組
              }
4.        servicegroups.cfg
define servicegroup{
               servicegroup_name                      #服務組名稱,通常定義得較短       
               alias                                #服務組別名,通常定義得較長
               members                          #服務組成員
              }
5.        contacts.cfg
define contact{
contact_name                             #這個指令用來定義一個聯繫人的簡稱。他會在定義contactgroup時被引用到。在相應的環境中,宏定義$CONTACTNAME$會包含這個值。
alias                                           #這個指令是爲了定義一個聯繫人的具體的描述。在相應的環境中,宏定義$CONTACTALIAS$會包含這個值。
host_notification_period               #這個指令是爲了定義,能夠通知Contact中定義的那個簡稱聯繫人,關於主機有問題或者恢復正常狀態的時間段。你可以把他想象成能夠通知Contact關於主機的在線時間。
service_notification_period                  #這個指令是爲了定義,能夠通知Contact中定義的那個簡稱聯繫人,關於服務的問題或恢復正常的時間段。
host_notification_options                     #這個指令爲了定義主機在什麼狀態下會給聯繫人發通知。各個參數的描述如下:d=當主機的狀態處於down時,發送通知;f=當主機狀態處於stop時發送通知。r=當主機恢復up狀態時發送通知。n=什麼狀態下都不發送通知。
service_notification_options                 #這個指令爲了定義服務在什麼狀態下會給聯繫人發通知。各個參數的描述如下:w=當服務處於警告狀態時發送通知 u=當服務的狀態處於unknown時,發送通知;f=當服務狀態處於啓動和停止時發送通知。c=當服務處於Critical狀態時發送通知。n=什麼狀態下都不發送通知。
host_notification_commands               #這個指令是爲了定義一個通知聯繫人關於主機問題或恢復正常的聯繫手段的一個列表。多個手段之間用逗號隔開。
service_notification_commands    #這個指令是爲了定義一個通知聯繫人關於服務問題或恢復正常的聯繫手段的一個列表。多個手段之間用逗號隔開。
email                                                 #這個指令是爲了定義聯繫人的email地址。這個將取決於你是如何定義你的notification commands.它可以用來給聯繫人發送緊急郵件。在相應的環境中。宏定義$CONTACTEMAIL$將會包含它的值。
}
6.        contactgroups.cfg
define contactgroup{
               contactgroup_name                            #聯繫組名稱,通常定義得較短
               alias                                #聯繫組別名,通常定義得較長
               members                          #聯繫組成員
              }
 
7.        timeperiods.cfg
define timeperiod{
               timeperiod_name                         #時間段名稱,通常定義得較短
               alias                                           #時間段別名,通常定義得較長
               sunday                                       #星期日時間段
               monday                                      #星期一時間段
               tuesday                                      #星期二時間段
               wednesday                                 #星期三時間段
               thursday                                     #星期四時間段
               friday                                         #星期五時間段
               saturday                                     #星期六時間段
            }
8.        commands.cfg
       define command{
           command_name        #定義命令的簡稱
           command_line        #定義當服務進行時Nagios要執行的動作。在命令執行以前,所有合法的宏都要被他們的值代替。
           }

 

發佈了4 篇原創文章 · 獲贊 9 · 訪問量 23萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章