Linux中國

Linux下Nagios的安裝與配置

可以看到Nagios支持多種郵件傳送方式。最常見的莫過於伺服器(Internet Site)直接向接收者發送郵件,另一種常見的形式是用智能主機或中繼伺服器,將郵件傳送至中繼郵件伺服器,然後它負責將郵件傳送給接收者。

進行下一步操作時伺服器的域名需要包含進去。

最後,設置一下Nagios管理員『nagiosadmin』的密碼,用戶可以之後自行修改密碼。

CentOS或RHEL下Nagios的安裝

使用yum命令來安裝,建立repoforge庫之後運行如下yum命令:

[root@mrtg ~]# yum install nagios nagios-plugins

監測需求

本段教程中,我們希望完成以下監測內容:

  1. 每三分鐘監測一次所有Linux伺服器。
  2. 每三分鐘監測一次所有思科路由器。
  3. 所有的郵件告警集中發送至sentinel@example.tst
  4. 發出告警前Nagios都將進行3次驗證以確保問題確有發生。
  5. 當設備的往返時延超過100ms並且/或包丟失量超過20%將發出郵件告警。

餘下的教程將指導您如何在Linux系統中配置Nagios。

Ubuntu下Nagios的配置

明確Nagios配置文件的地址至關重要,以下路徑指明了Debian系統下Nagios的配置文件地址。

/etc/nagios-plugins     實現監測功能的專有腳本存放地址
/etc/nagios3    添加主機、服務,定義檢測和定時器的配置文件
/usr/lib/nagios/plugins     用於監測的可執行文件

接下來的步驟相互關聯,由此開始定義主機,主機組及向主機組添加服務操作。

添加主機模板

我們對同一類型的主機定義了對應的模板,這裡使用安裝文件作舉例說明。

首先,為Linux設備定義主機模板。

root@mrtg:~# cd /etc/nagios3/conf.d
root@mrtg:/etc/nagios3/conf.d/# cp generic-host_nagios2.cfg linux-server.cfg 

如下編輯linux-server.cfg。需要修改部分已經標出。

root@mrtg:/etc/nagios3/conf.d/# vim linux-server.cfg    

-

define host{
name                        linux-server    ; 名稱,需修改
notifications_enabled       1   
event_handler_enabled       1   
flap_detection_enabled      1   
failure_prediction_enabled  1   
process_perf_data           1   
retain_status_information   1   
retain_nonstatus_information    1 
check_command               example-host-check  ; 檢查所用腳本,需修改
check_interval              3       ; 連續檢查的間隔,需修改
max_check_attempts          3       ; 產生郵件告警前的自檢次數,需修改
notification_interval       0
notification_period 24x7
notification_options        d,u,r
contact_groups              admins  ; 郵件將要發送至的組,需修改
register0
}

接下來,為Cisco設備定義主機模板。

root@mrtg:/etc/nagios3/conf.d/# cp linux-server.cfg cisco-device.cfg 

如下修改cisco-device.cfg。需要修改部分已經標出。

root@mrtg:/etc/nagios3/conf.d/# vim cisco-device.cfg 

-

define host{
name                        cisco-device    ;名稱,需修改
notifications_enabled       1   
event_handler_enabled       1   
flap_detection_enabled      1   
failure_prediction_enabled  1   
process_perf_data           1   
retain_status_information   1   
retain_nonstatus_information    1 
check_command               example-host-check  ; 檢查時使用的腳本,需修改
check_interval              3   ; 連續檢查間隔,需修改
max_check_attempts          3   ; 產生郵件告警前的自檢次數,需修改
notification_interval       0
notification_period         24x7            
notification_options        d,u,r
contact_groups              admins  ; 郵件將要發至的組,需修改
register                    0       
}

添加主機

現在已定義主機模板,就可以添加需要監測的主機。以默認的文件作例子展示如下內容。

root@mrtg:/etc/nagios3/conf.d/# cp localhost_nagios2.cfg example.cfg
root@mrtg:/etc/nagios3/conf.d/# vim example.cfg 

-

# Host 1
define host{
use                     linux-server    ; 使用的主機模板名
host_name               our-server      ; nagios使用的主機名
alias                   our-server
address                 172.17.1.23     ; 主機的IP地址
}

# Host 2
define host{
use                     cisco-device    ; 使用的主機模板名
host_name               our-router      ; nagios使用的主機名
alias                   our-router
address                 172.17.1.1      ; 主機的IP地址
}

主機組定義

當有多個主機時,為方便管理,建議將相似的主機組成一組。

root@mrtg:/etc/nagios3/conf.d/# vim hostgroups_nagios2.cfg 

-

define hostgroup {
hostgroup_name  linux-server    ; 主機組名
alias           Linux Servers
members         our-server      ; 組員列表
}

define hostgroup {
hostgroup_name  cisco-device    ; 主機組名
alias           Cisco Devices
members         our-server      ; comma separated list of members
}

定義服務

首先,定義一個服務example-host-check:當往返時延達到100ms預警值並且有20%包丟失時發出警告,而緊急告警設置為5000ms且包丟失比率為100%,只執行一個IPv4的ping請求檢測。

root@mrtg:~# vim /etc/nagios-plugins/config/ping.cfg 

-

define command{
      command_name    example-host-check
      command_line    /usr/lib/nagios/plugins/check_ping -H '$HOSTADDRESS$' -w 100,20% -c 5000,100% -p 1 -4
}

然後,將命令關聯至主機組。

root@mrtg:/etc/nagios3/conf.d/# vim services_nagios2.cfg 

-

define service {
hostgroup_name            linux-server
service_description       Linux Servers
check_command             example-host-check
use                       generic-service
notification_interval     0 ; 初始化設置為0
}

define service {
hostgroup_name            cisco-device
service_description       Cisco Devices
check_command             example-host-check
use                       generic-service
notification_interval     0 ; 初始化設置為0
}

聯繫人定義

進行如下定義將發送郵件需要的地址添加至Nagios。

root@mrtg:/etc/nagios3/conf.d/# vim contacts.cfg

-

define contact{
contact_name                    root
alias                           Root
service_notification_period     24x7
host_notification_period        24x7
service_notification_options    w,u,c,r
host_notification_options       d,r
service_notification_commands   notify-service-by-email
host_notification_commands      notify-host-by-email
email                           root@localhost, sentinel@example.tst
}

最後,試運行初始化檢測是否有配置錯誤。如果沒有錯誤,Nagios開始安全運行。

root@mrtg:~# nagios -v /etc/nagios3/nagios.cfg
root@mrtg:~# service nagios3 restart 

CentOS/RHEL上的Nagios配置

Redhat系統中Nagios的配置文件地址如下所示。

/etc/nagios/objects     添加主機、服務,定義監測和定時器的配置文件

/usr/lib/nagios/plugins     實現監測的可執行文件

添加主機模板

為特定類型的主機創建所需的模板,相應修改安裝所需的文件。

[root@mrtg objects]# cd /etc/nagios/objects/
[root@mrtg objects]# vim templates.cfg 

-

 define host{
 name                   linux-server    
 use                    generic-host    
 check_period           24x7      
 check_interval         3
 retry_interval         1
 max_check_attempts     3
 check_command          example-host-check
 notification_period    24x7
 notification_interval  0
 notification_options   d,u,r
 contact_groups         admins
 register               0
 }

 define host{
 name                   cisco-router    
 use                    generic-host    
 check_period           24x7      
 check_interval         3
 retry_interval         1
 max_check_attempts     3
 check_command          example-host-check
 notification_period    24x7
 notification_interval  0
 notification_options   d,u,r
 contact_groups         admins
 register               0
 }

添加主機和主機組

這裡以默認的配置文件為例,主機和主機組添加至配置文件中。

[root@mrtg objects]# cp localhost.cfg example.cfg
[root@mrtg objects]# vim example.cfg 

-

#Adding Linux server
define host{
use         linux-server
host_name   our-server
alias       our-server
address     172.17.1.23
}

#Adding Cisco Router
define host{
use         cisco-router
host_name   our-router
alias       our-router
address     172.17.1.1
}

# HOST GROUP DEFINITION
define hostgroup{
hostgroup_name  linux-servers
alias           Linux Servers
members         our-server
}

define hostgroup{
hostgroup_name  cisco-router
alias           cisco-router
members         our-router
}

服務定義

定義一個服務example-host-check:當往返時延達到100ms預警值並且有20%包丟失時發出警告,而緊急告警設置為5000ms且包丟失比率為100%,只執行一個IPv4的ping請求檢測。

[root@mrtg objects]# vim commands.cfg 

-

define command{
command_name    example-host-check
command_line    $USER1$/check_ping -H $HOSTADDRESS$ -w 100.0,20% -c 5000.0,100% -p 1 -4
}

聯繫人定義

告警要發送的郵件地址添加至Nagios中。

[root@objects objects]# vim contacts.cfg 

-

define contact{
contact_name    nagiosadmin       
use             generic-contact
alias           Nagios Admin
email           nagios@localhost, sentinel@example.tst
}

最後,準備啟動Nagios服務,可先試運行檢測配置是否出錯。

[root@mrtg ~]# nagios –v /etc/nagios/nagios.cfg
[root@mrtg ~]# service nagios restart
[root@mrtg ~]# chkconfig nagios on 

配置後訪問Nagios

現在一切就緒,可以開始Nagios之旅了。Ubuntu/Debian用戶可以通過打開 http://IP地址/nagios3 網頁訪問Nagios,CentOS/RHEL用戶可以打開 http://IP地址/nagios ,如 http://172.17.1.23/nagios3 來訪問Nagios。「nagiosadmin」用戶則需要認證來訪問頁面。

若Nagios沒有依原設定運行,首先要做的是建立一個測試運行(dry run)。

Debian或Ubuntu系統:

# nagios3 -v /etc/nagios3/nagios.cfg

CentOS或RHEL系統:

# nagios -v /etc/nagios/nagios.cfg

日誌文件也會提供重要線索,若需查看可以轉至路徑/var/log/nagios/nagios.log。

希望本文有所幫助。

via: http://xmodulo.com/2013/12/install-configure-nagios-linux.html

譯者:icybreaker 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國