Linux下Nagios的安裝與配置
可以看到Nagios支持多種郵件傳送方式。最常見的莫過於伺服器(Internet Site)直接向接收者發送郵件,另一種常見的形式是用智能主機或中繼伺服器,將郵件傳送至中繼郵件伺服器,然後它負責將郵件傳送給接收者。
進行下一步操作時伺服器的域名需要包含進去。
最後,設置一下Nagios管理員『nagiosadmin』的密碼,用戶可以之後自行修改密碼。
CentOS或RHEL下Nagios的安裝
使用yum命令來安裝,建立repoforge庫之後運行如下yum命令:
[root@mrtg ~]# yum install nagios nagios-plugins
監測需求
本段教程中,我們希望完成以下監測內容:
- 每三分鐘監測一次所有Linux伺服器。
- 每三分鐘監測一次所有思科路由器。
- 所有的郵件告警集中發送至sentinel@example.tst。
- 發出告警前Nagios都將進行3次驗證以確保問題確有發生。
- 當設備的往返時延超過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
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive