nagios安裝以及配置

環境:CentOS-5.5



需要的安裝包:

apache(httpd-2.2.19.tar.gz),

nagios2.6.tar.gz,

nagios-plugins-1.4.15.tar.gz,

nagios-cn-3.2.3.tar.bz2

nagios下載地址:http://sourceforge.jp/projects/sfnet_nagios/releases/

其他可以去官網下載:www.nagios.org



一. 安裝nagios

1.先創建nagios用戶和用戶組

將nagios進程的運行用戶和組設置爲nagios,並且將nagios的主程序目錄設置爲nagios保證安全

useradd -s /sbin/nologin nagios

mkdir /usr/local/nagios

chown -R nagios.nagios /usr/local/nagios

2.編譯nagios

tar -zxvf nagios2.6.tar.gz

cd nagios2.6

./configure --prefix=/usr/local/nagios

make all

make install 安裝nagios主程序的CGI和html文件

make install-init 在/etc/rc.d/init.d 目錄下創建nagios啓動腳本

make install-commandmode 配置目錄權限

make install-config 安裝nagios示例配置文件,安裝路徑是/usr/local/nagios/etc

驗證是否正確安裝,可以查看/usr/local/nagios下是否有以下目錄:

bin Nagios執行程序所在目錄,這個目錄只有一個文件nagios
etc Nagios配置文件位置,初始安裝完後,只有幾個*.cfg-sample文件
sbin Nagios Cgi文件所在目錄,也就是執行外部命令所需文件所在的目錄
Share Nagios網頁文件所在的目錄
Var Nagios日誌文件、spid 等文件所在的目錄


看到這5個目錄,nagios應該就算安裝完成了。

3.安裝插件

nagios提供的各種監控功能基本都是插件來完成的,而nagios核心只提供了很少的監控功能,因此安裝插件是必須的,這裏下載的是 nagios-plugins-1.4.15.tar.gz,插件與nagios之間的版本關聯不大,不一定非得用nagios-plugins-1.4.5這個版本

tar -zxvf nagios-plugins-1.4.15.tar.gz

cd nagios-plugins-1.4.15

./configure --prefix=/usr/local/nagios

make

make install

說明一下,插件安裝的路徑最好和nagios安裝路徑一樣,安裝完成之後會在/usr/local/nagios下生libexec目錄,裏面的可執行文件就是nagios所需的插件。

4.安裝漢化插件

安裝nagios-cn-3.2.3.tar.bz2

tar -jxvf nagios-cn-3.2.3.tar.bz2

cd nagios-cn-3.2.3

./configure

make all

make install

5.安裝和配置apache

Web服務不是nagios所必須的,但是nagios提供了web監控頁面,如果沒有web查看監控對象的狀態將是非常費事和沒有趣味的事情,可以選擇apache,nginx,這裏我選擇apache,版本是httpd-2.2.19

這裏需要注意一下,nagios在nagios 3.1x版本以後,配置web監控界面時需要php的支持,這裏我用的是nagios2.6版本,因此不需要安裝php。

tar zxvf httpd-2.2.19.tar.gz

cd httpd-2.2.19

./configure --prefix=/usr/local/apache

make

make install



如果需要安裝,可以參照以下步驟:

tar zxvf php-5.3.2.tar.gz

cd php-5.3.2

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-zlib --with-gd

make

make install

接着需要配置apache,進入/usr/local/apache/conf/httpd.conf

修改:

User nagios

Group nagios

然後找到:

DirectoryIndex index.html index.html.var

修改爲:

DirectoryIndex index.html index.php

接着增加:

AddType application/x-httpd-php .php



安全起見,nagios的目錄需要進行用戶驗證,只有合法的授權用戶纔可以訪問nagios的頁面文件,因此需要增加驗證配置,在httpd.conf文件最後添加: #setting for nagios
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"
<Directory "/usr/local/nagios/sbin"> //Cgi文件所在目錄
AuthType Basic
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthUserFile /usr/local/nagios/etc/htpasswd //驗證文件路徑
Require valid-user
</Directory>

Alias /nagios "/usr/local/nagios/share"
<Directory "/usr/local/nagios/share"> //nagios頁面文件目錄
AuthType Basic
Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName "nagios Access"
AuthUserFile /usr/local/nagios/etc/htpasswd //驗證文件路徑
Require valid-user
</Directory>

創建apache目錄驗證文件,上面的配置已經指定了目錄驗證文件的路徑已經文件名
/usr/local/apache/bin/htpasswd –c /usr/local/nagios/etc/htpasswd sery
New password:
Re-type new password:
Adding password for user sery
這樣就在/usr/local/nagios/etc/目錄下創建了一個htpasswd驗證文件,用戶名是sery

到這裏,就可以啓動apache
/usr/local/apache/bin/apachectl -k start
然後輸入網址:http://IP/nagios 然後需要輸入賬號和密碼,就能看見nagios頁面了.
二.配置nagios
nagios默認的配置文件在/usr/local/nagios/etc目錄下,有5個文件,說明如下:
cgi.cfg-sample 控制CGI訪問的配置文件
commands.cfg-sample 命令定義配置文件,其中定義的命令可以被其他配置文件引用
localhost.cfg-sample 監控本地主機的配置文件
nagios.cfg-sample nagios主配置文件
resource.cfg-sample 變量定義文件,在此文件中定義變量,以便由其他配置文件引用,如$USER1$
我們先把這些文件重命名:cp cgi.cfg-sample cgi.cfg 其他文件一樣操作

nagios配置過程設計的定義有:主機、主機組、服務、服務組、聯繫人、聯繫人組、監控時間和監控命令,各個配置文件之間是互爲關聯彼此引用的,成功配置一臺nagios監控系統,需要弄清楚每個配置文件之間的關係,最重要的是4點:第一要定義監控哪些主機、主機組、服務和服務組,第二要定義這個監控要通過什麼命令監控,第三要定義監控時間段,最後定義主機或服務出現問題時需要通知的聯繫人和聯繫人組。
1.先修改主配置文件nagios.cfg
進入nagios.cfg,註釋掉:# cfg_file=/usr/local/nagios/etc/localhost.cfg
然後去掉以下注釋:cfg_file=/usr/local/nagios/etc/contactgroups.cfg //聯繫組配置文件路徑
cfg_file=/usr/local/nagios/etc/contacts.cfg //聯繫人配置文件路徑
cfg_file=/usr/local/nagios/etc/hostgroups.cfg //主機組配置文件路徑
cfg_file=/usr/local/nagios/etc/hosts.cfg //主機配置文件路徑
cfg_file=/usr/local/nagios/etc/services.cfg //服務配置文件路徑
cfg_file=/usr/local/nagios/etc/timeperiods.cfg //監視時段配置文件路徑

修改check_external_commands=0爲check_external_commands=1 .這行的作用是允許在web界面下執行重啓nagios、停止主機/服務檢查等操作
把command_check_interval的值從默認的1改成command_check_interval=10s(根據自己的情況定這個命令檢查時間間隔,不要太長也不要太短)
2.修改cgi.cfg文件
cgi.cfg它的作用是控制相關cgi腳本,如果想在nagios的web監控界面執行CGI腳本,例如重啓nagios進程、關閉nagios通知、停止nagios主機檢測,這是就需要配置cgi.cfg文件,由於nagios的web監控界面驗證用戶爲sery,因此只需在文件中添加此用戶,先確保use_authentication=1 這是個需要驗證的意思.
接着修改 default_user_name=sery 之後還要修改如下: authorized_for_system_information=nagiosadmin,sery
authorized_for_configuration_information=nagiosadmin,sery
authorized_for_system_commands=sery //多個用戶之間用逗號隔開
authorized_for_all_services=nagiosadmin,sery
authorized_for_all_hosts=nagiosadmin,sery
authorized_for_all_service_commands=nagiosadmin,sery
authorized_for_all_host_commands=nagiosadmin,sery

上面的用戶名sery是之前用命令:/usr/local/apache/bin/htpasswd –c /usr/local/nagios/etc/htpasswd sery 得來的
3.增加新的文件timeperiods.cfg define timeperiod{
timeperiod_name 24x7
alias 24 Hours A Day, 7 Days A Week
sunday 00:00-24:00
monday 00:00-24:00
tuesday 00:00-24:00
wednesday 00:00-24:00
thursday 00:00-24:00
friday 00:00-24:00
saturday 00:00-24:00
}


以上是建立7x24小時監控

4.增加contacts.cfg文件

define contact {
contact_name sery //聯繫人名稱
alias system administrator
service_notification_period 24x7 //當服務出現異常時,發送通知的時間段,是在timeperiods.cfg中定義
host_notification_period 24x7 //當主機出現異常時,發送通知的時間段,是在timeperiods.cfg中定義
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-email //服務故障發送通知方式,可以是短信和郵件,這裏是郵件發送,notify-by-email 是在commands.cfg文件中定義
host_notification_commands host-notify-by-email //主機故障發送通知方式,可以是短信和郵件,這裏是郵件發送,host-notify-by-email是在commands.cfg文件中定義
email [email protected]
}
如果有更多聯繫人的話,照這個格式在後面追加即可.服務通知選項(service_notification_options),主機通知選項(host_notification_options)幾個選項在這裏說明一下:
w-warning(警告), u-unknown(不明狀態),c-critical(緊急狀態),r-recover(恢復狀態);
d-down(宕機狀態),u-unreachable(不可到達狀態),r-recovery(重新恢復),注意一下,主機報警和服務報警有些差異。
5.手動創建contactgroups.cfg define contactgroup {
contactgroup_name sagroup //不要用空格
alias system administrator group
members sery //本例有2個成員
}

6.配置hosts.cfg

define host {
host_name nagios-server
alias nagios server
address 10.x.x.113
contact_groups sagroup //多個聯繫組用逗號分隔,數據來源於contactgroups.cfg
check_command check-host-alive //指定檢查主機狀態的命令,check-host-alive在commands.cfg中定義
max_check_attempts 5 //nagios對主機的最大檢查次數,也就是nagios在檢查過程中發現主機異常時,並不馬上判斷爲異常狀況,而是多試幾次,因爲可能只是一時網絡太擁擠或是其他一些原因,使主機受到一些影響,這裏的5就是至少嘗試5次的意思
notification_interval 10 //在主機出現異常後,一直沒有解決和恢復,nagios再次對使用者發出通知的時間,單位是分鐘,如果只需要通知一次,可以設爲0
notification_period 24x7 //主機故障時,發送通知的時間範圍,在timeperiods.cfg中進行定義
notification_options d,u,r //定義主機在什麼狀態下發送通知給使用者d-down(宕機狀態),u-unreachable(不可到達狀態),r-recovery(重新恢復)
}
define host {
host_name test-200
alias server 200
address 10.x.x.200
contact_groups sagroup
check_command check-host-alive //down機就發報警通知
max_check_attempts 5
notification_interval 10
notification_period 24x7
notification_options d,u,r
}

7.配置services.cfg
define service {
host_name nagios-server //來源:hosts.cfg
service_description check_tcp 80
check_period 24x7
max_check_attempts 4 //nagios對服務的最大檢查次數
normal_check_interval 3 //服務檢查時間間隔,也就是說,nagios這一次檢查與下一次檢查所隔的時間,這裏是3分鐘
retry_check_interval 2 //重試檢查時間間隔,單位分鐘
contact_groups sagroup //來源:contactgroups.cfg 指定聯繫人組
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
check_command check_tcp!80 //檢查tcp 80端口是否存活
}
define service {
host_name test-200
service_description check_tcp 80
check_period 24x7
max_check_attempts 4
normal_check_interval 3
retry_check_interval 2
contact_groups sagroup
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
check_command check_tcp!80 //檢查tcp 80端口服務是否正常
}

8.配置hostgroups.cfg
define hostgroup {
hostgroup_name sa-servers
alias sa servers
members nagios-server,test-200//用逗號間隔多個主機
}

9.檢查配置
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
10.啓動和關閉
/etc/rc.d/init.d/nagios reload
/etc/rc.d/init.d/nagios restart

/etc/init.d/nagios start
/etc/init.d/nagios stop

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