Nagios是一款開源的免費監控軟件,能很好的監控Windows、Linux和Unix的主機狀態,交換機、路由器等網絡設備等。相信很多朋友都有用過這個軟件,下面把我的安裝使用過程中拿出來和大家分享一下,有不足之處希望大家指正。
安裝環境: Redhat 5.5 x86_64bit
一、主監控機系統的安裝
1、建目錄用戶與授權:
[root@localhost ]# groupadd nagios
[root@localhost ]# useradd -g nagios nagios
[root@localhost ]# mkdir /usr/local/nagios
[root@localhost ]# chown nagios:nagios /usr/local/nagios
2、解壓與安裝:(下載地址:http://sourceforge.net/projects/nagios/files/)
[root@localhost ]# tar -zxvf nagios-
[root@localhost ]# cd nagios-
[root@localhost ]# ./configure
[root@localhost ]# make all
[root@localhost ]# make install
[root@localhost ]# make install-init
[root@localhost ]# make install-commandmode
[root@localhost ]# make install-config
3、安裝相關插件:(下載地址:http://www.nagios.org/download/plugins/)
[root@localhost ]# tar -zxvf nagios-plugins-
[root@localhost ]# cd nagios-plugins-
[root@localhost ]# ./configure
[root@localhost ]# make && make install
[root@localhost ]# ls /usr/local/nagios/libexec/ (查看有無安裝成功,成功會顯示組件包)
4、安裝apache發佈器(如果之前系統未安裝httpd組件的話,要新裝一下相關的rpm包):
[root@localhost ]# rpm -ivh apr-
[root@localhost ]# rpm -ivh postgresql-libs-
[root@localhost ]# rpm -ivh apr-util-
[root@localhost ]# rpm -ivh httpd-
[root@localhost ]# rpm -ivh httpd-manual-
(注意這上面的rpm包要按照順序來安裝)
5、配置發佈器httpd.conf的參數:
[root@localhost ]# vim /etc/httpd/conf/httpd.conf
(在文件內容的最底下添加)
- ServerName localhost:80
- ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin
- <Directory "/usr/local/nagios/sbin">
- Options ExecCGI
- AllowOverride None
- Order allow,deny
- Allow from all
- AuthName "Nagios Access"
- AuthType Basic
- AuthUserFile /usr/local/nagios/etc/htpasswd.users
- Require valid-user
- </Directory>
- Alias /nagios /usr/local/nagios/share
- <Directory "/usr/local/nagios/share">
- Options None
- AllowOverride None
- Order allow,deny
- Allow from all
- AuthName "Nagios Access"
- AuthType Basic
- AuthUserFile /usr/local/nagios/etc/htpasswd.users
- Require valid-user
- </Directory>
6、添加nagios的登錄用戶(如nagiosadmin)
[root@localhost ]# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
[root@localhost ]# cat /usr/local/nagios/etc/htpasswd.users (說明:查看有無添加成功)
7、添加啓動nagios服務:
[root@localhost ]# chkconfig --add nagios
[root@localhost ]# chkconfig nagios on
[root@localhost ]# service nagios start
8、啓動http發佈服務:
[root@localhost ]# service httpd start
[root@localhost ]# chkconfig httpd on
9、登錄頁面:
(1) http://IP地址/nagios
(2) 輸入登錄用戶名和密碼
(3) 進入管理平臺
注意: 如果輸入用戶名和密碼成功登錄以後,頁面顯示“無權訪問網頁”,這是因爲沒有安裝PHP的套件,nagios的網頁需要php來支持。解決辦法如下:
(1) 確保linux主機或服務器能夠上互聯網。
(2) 執行下面的安裝命令:
[root@localhost ]# yum install php (說明:yum命令會先對比本機缺少的php包,然後自動從互聯網上尋找,找到以後會列出來,提示你是否下載安裝,這時候再點擊“yes”下載過來自動安裝。)
二、主監控機系統的參數配置
1、主配置文件:nagios.cfg
[root@localhost ]# cd /usr/local/nagios/etc
[root@localhost ]# vim nagios.cfg
(主要配置參數說明)
- cfg_file=/usr/local/nagios/etc/objects/commands.cfg #監控命令配置文件
- cfg_file=/usr/local/nagios/etc/objects/contacts.cfg #聯繫人配置文件路徑
- cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg #監視時段配置文件路徑
- cfg_file=/usr/local/nagios/etc/objects/templates.cfg #監控服務報警配置文件
- cfg_file=/usr/local/nagios/etc/objects/localhost.cfg #監控本機服務配置文件
- cfg_file=/usr/local/nagios/etc/objects/windows.cfg # 監控windows機器列表的配置文件
- cfg_file=/usr/local/nagios/etc/objects/linux.cfg #新增監控linux機器列表的配置文件
- check_external_commands=1 #允許在web界面下執行重啓nagios、停止主機/服務檢查等操作,0表不啓用
- command_check_interval=5 #監控正常檢測週期間隔時間,可以以設成10秒(10s),默認值是-1(爲儘可能的快速輪詢);注意這是檢測週期,不是報警週期,檢測週期設置一定要比服務的告警週期要小
- interval_length=60 #間隔長度,默認值爲60,代表基數是60秒,表示週期是1分鐘
- service_check_timeout=60 #服務檢查時間間隔
- host_check_timeout=30 #主機檢查時間間隔
- event_handler_timeout=30
- notification_timeout=10
- ocsp_timeout=5
- perfdata_timeout=5
[root@localhost ]# cd /usr/local/nagios/etc/objects
[root@localhost ]# vim linux.cfg
- define host{ ;要監控的主機定義
- use linux-server ;被監控主機用途
- host_name web_host ;被監控主機名稱
- alias It’s http server ;被監控主機別名
- address 10.0.0.2 ;被監控主機IP地址
- }
- define hostgroup{ ;要監控的組定義
- hostgroup_name remote-linuxt-server ;被監控組名稱
- alias linuxserver ;被監控組別名
- members web_host ;被監控組成員主機名有哪些,這裏不能用別名,多個成員之間用,逗號隔開
- }
- define service{ ;要監控的服務定義
- use local-service ;服務模型,可自定義
- hostname web_host ;要加入此服務的主機名稱,要與上面一致。
- hostgroup_name remote-linux-server ;要加入此服務的組名稱,要與上面一致
- service_description HTTP_port ;要監控的項目名稱,可自己起
- check_command check_tcp!80!0.1!0.3 ;檢測命令,配置文件在commands.cfg
- notifications_enabled 0 ;是否通知報告
- notification_interval 10 ;發告警的時間間隔10分鐘,默認單位是分鐘,這行不設的話默認是1小時
- }
(注意:這邊的“notification_interval”報警時間間隔要與templates.cfg文件中“normal_check_interval”的時間相對應,不能小於那邊設置的時間,不然會報錯。normal_check_interval默認是10分鐘發送報警郵件一次)
(說明:定義service服務的時候,要加入此服務的主機名稱和組名稱,可只設置一個,不必同時設置。
如果服務是多臺主機共用的(如檢測內存),可設置一個組名稱。
如果服務只是某一臺或幾臺主機用的,設置一個主機名稱就可以了。)
3、命令參數配置文件:command.cfg
[root@localhost ]# cd /usr/local/nagios/etc/objects
[root@localhost ]# vim command.cfg
- define command{
- command_name check_local_disk
- command_line $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
- }
說明:這裏的$USER1$,$ARG1$, $ARG2$, $ARG3$是什麼意思呢?
(1)$USER1$ 是指插件路徑/usr/local/nagios/libexec
(2)-w $ARG1$的參數指定磁盤剩了多少是警告狀態,
(3)-c $ARG2$的參數指定剩多少是嚴重狀態,
(4)-p $ARG3$用來指定路徑目錄.
在loccalhost.cfg調用命令的時候可寫成 “ check_command check_local_disk!10%!5%!/”
在命令名後面用!分隔出了3個參數,10%是$ARG1$的值,5%是$ARG2$的值,/ 是$ARG3$的值,
4、報警聯繫人蔘數配置文件:contacts.cfg
[root@localhost ]# cd /usr/local/nagios/etc/object
[root@localhost ]# vim contacts.cfg
- define contact{ ;聯繫人
- contact_name nagiosadmin
- use generic-contact
- alias Nagios Admin
- email [email protected] ;接收報警的郵件地址
- }
- define contactgroup{ ;聯繫人組
- contactgroup_name admins ;聯繫人組名
- alias Nagios Administrators ;組別名
- members nagiosadmin ;組成員名單
- }
5、配置完參數以後一定要重新檢測是否正確
[root@localhost ]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
( -v 檢查配置參數 )
[root@localhost ]# /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
( -d 後臺重啓服務進程 )
6、命令和插件監控
[root@localhost ]# cd /usr/local/nagios/libexec
[root@localhost ]# ./check_disk -h (查看磁盤情況的命令使用方法,提示:這邊所有命令的使用方法都可以通過”命令名 –h”來查看)
命令使用:check_disk -w 10% -c 5% / 此命令的含義是檢查/分區的使用情況,若剩餘10%以下,爲警告狀態(warning);5%以下,爲嚴重狀態(critical)。命令調用時簡寫成check_disk!10%!5%!/)
(小結:localhost.cfg定義監控項目用某個命令,這個命令必須在commands.cfg中定義,定義這個命令時使用了libexec下的插件)