nagios 的安裝與配置
nagios服務器端的配置文檔
4.4. 基於Fedora平台的快速指南
4.4.1. 介紹
本指南試圖讓你通過簡單的指令以在20分鍾內在Fedora平台上通過對Nagios的源程序的安裝來監控本地主機。這裏沒有討論更高級的設置項 - 隻是一些基本操作,但這足以使95%的用戶啟動Nagios。
這些指令在基於Fedora Core 6的係統下寫成的。
最終結果是什麼
如果按照本指南安裝,最後將是這樣結果:
Nagios和插件將安裝到/usr/local/nagios
Nagios將被配置為監控本地係統的幾個主要服務(CPU負荷、磁盤利用率等)
Nagios的Web接口是URL是https://localhost/nagios/
4.4.2. 準備軟件包
在做安裝之前確認要對該機器擁有root權限。
確認你安裝好的Fedora係統上已經安裝如下軟件包再繼續。
Apache
GCC編譯器
GD庫與開發庫
可以用yum命令來安裝這些軟件包,鍵入命令:
yum install httpd
yum install php
yum install perl
yum install fontconfig
yum install freetype
yum install libpng
配置index.php文件的訪問
vi /etc/httpd/conf/httpd.conf
yum install gcc
yum install glibc glibc-common
yum install gd gd-devel
4.4.3. 操作過程
1)建立一個帳號
切換為root用戶
su -l
創建一個名為nagios的帳號並給定登錄口令
/usr/sbin/useradd nagios
passwd nagios
創建一個用戶組名為nagcmd用於從Web接口執行外部命令。將nagios用戶和apache用戶都加到這個組中。
/usr/sbin/groupadd nagcmd
/usr/sbin/usermod -G nagcmd nagios
/usr/sbin/usermod -G nagcmd apache
2)下載Nagios和插件程序包
建立一個目錄用以存儲下載文件
mkdir ~/downloads
cd ~/downloads
下載Nagios和Nagios插件的軟件包(訪問https://www.nagios.org/download/站點以獲得最新版本),在寫本文檔時,最新的Nagios的軟件版本是3.0rc1,Nagios插件的版本是1.4.11。
wget https://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-3.0rc1.tar.gz
wget https://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11.tar.gz
3)編譯與安裝Nagios
展開Nagios源程序包
cd ~/downloads
tar xzf nagios-3.0rc1.tar.gz
cd nagios-3.0rc1
運行Nagios配置腳本並使用先前開設的用戶及用戶組:
./configure –with-command-group=nagcmd
編譯Nagios程序包源碼
make all
安裝二進製運行程序、初始化腳本、配置文件樣本並設置運行目錄權限
make install
make install-init
make install-config
make install-commandmode
現在還不能啟動Nagios-還有一些要做的…
4)客戶化配置
樣例配置文件默認安裝在這個目錄下/usr/local/nagios/etc,這些樣例文件可以配置Nagios使之正常運行,隻需要做一個簡單的修改…
用你擅長的編輯器軟件來編輯這個/usr/local/nagios/etc/objects/contacts.cfg配置文件,更改email地址nagiosadmin的聯係人定義信息中的EMail信息為你的EMail信息以接收報警內容。
vi /usr/local/nagios/etc/objects/contacts.cfg
5)配置WEB接口
安裝Nagios的WEB配置文件到Apache的conf.d目錄下
make install-webconf
創建一個nagiosadmin的用戶用於Nagios的WEB接口登錄。記下你所設置的登錄口令,一會兒你會用到它。
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
重啟Apache服務以使設置生效。
service httpd restart
6)編譯並安裝Nagios插件
展開Nagios插件的源程序包
cd ~/downloads
tar xzf nagios-plugins-1.4.11.tar.gz
cd nagios-plugins-1.4.11
編譯並安裝插件
./configure –with-nagios-user=nagios –with-nagios-group=nagios
make
make install
7)啟動Nagios
把Nagios加入到服務列表中以使之在係統啟動時自動啟動
chkconfig –add nagios
chkconfig nagios on
驗證Nagios的樣例配置文件
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
如果沒有報錯,可以啟動Nagios服務
service nagios start
8)更改SELinux設置
Fedora與SELinux(安全增強型Linux)同步發行與安裝後將默認使用強製模式。這會在你嚐試聯入Nagios的CGI時導致一個”內部服務錯誤”消息。
如果是SELinux處於強製安全模式時需要做
getenforce
令SELinux處於容許模式
setenforce 0
如果要永久性更變它,需要更改/etc/selinux/config裏的設置並重啟係統。
不關閉SELinux或是永久性變更它的方法是讓CGI模塊在SELinux下指定強製目標模式:
chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/
chcon -R -t httpd_sys_content_t /usr/local/nagios/share/
更多有關Nagios的CGI模塊增加目標策略的強製權限方式見NagiosCommunity.org的維基百科https://www.nagioscommunity.org/wiki。
9)登錄WEB接口
你現在可以從WEB方式來接入Nagios的WEB接口了,你需要在提示下輸入你的用戶名(nagiosadmin)和口令,你剛剛設置的,這裏用係統默認安裝的瀏覽器,用下麵這個超鏈接
https://localhost/nagios/
點擊“服務詳情”的引導超鏈來查看你本機的監視詳情。你可能需要給點時間讓Nagios來檢測你機器上所依賴的服務因為檢測需要些時間。
10)其他的變更
確信你機器的防火牆規則配置允許你可以從遠程登錄到Nagios的WEB服務。
配置EMail的報警項超出了本文檔的內容,指向你的係統檔案用網頁查找或是到這個站點NagiosCommunity.org wiki來查找更進一步的信息,以使你的係統上可以向外部地址發送EMail信息。更多有關通知的信息可以查閱這篇文檔。
11)完成了
祝賀你已經成功安裝好Nagios,但網絡監控工作隻是剛開始。毫無疑問你不是隻監控本地係統,所以要看以下這些文檔…
對Windows主機的監控
對Linux/Unix主機的監控
對Netware服務器的監控
監控路由器和交換機
監控公眾化服務(HTTP、FTP、SSH等)
4.5. 基於openSUSE平台的快速指南
4.5.1. 介紹
本指南試圖讓你通過簡單的指令以在20分鍾內在你的openSUSE平台上通過對Nagios的源程序的安裝來監控本地主機。這裏沒有討論更高級的設置項 - 隻是一些基本操作,但這足以使95%的用戶啟動Nagios。
這些指令在基於openSUSE10.2的係統下寫成的。
4.5.2. 所需的軟件包
確認你安裝好的openSUSE係統之上已經安裝了如下軟件包再繼續。你可以在openSUSE係統下用yast來安裝軟件包。
apache2
C/C++開發庫
4.5.3. 操作過程
1)建立一個帳號
切換為root用戶
su -l
創建新帳戶名為nagios並給它一個登錄口令
/usr/sbin/useradd nagiospasswd nagios
創建一個用戶組名為nagios,並把nagios帳戶加入該組
/usr/sbin/groupadd nagios/usr/sbin/usermod -G nagios nagios
創建一個用戶組名為nagcmd來執行外部命令並可以通過WEB接口來執行。將nagios用戶和apache用戶都加到這個組中。
/usr/sbin/groupadd nagcmd/usr/sbin/usermod -G nagcmd nagios/usr/sbin/usermod -G nagcmd wwwrun
2)下載Nagios和插件程序包
建立一個目錄用以存儲下載文件
mkdir ~/downloadscd ~/downloads
下載Nagios和Nagios插件的軟件包(訪問https://www.nagios.org/download/站點以獲得最新版本),在寫本文檔時,最新的Nagios的軟件版本是3.0rc1,Nagios插件的版本是1.4.11。
wget https://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-3.0rc1.tar.gzwget https://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11.tar.gz
3)編譯與安裝Nagios
展開Nagios源程序包
cd ~/downloadstar xzf nagios-3.0rc1.tar.gzcd nagios-3.0rc1
運行Nagios配置腳本並使用先前開設的用戶及用戶組:
./configure –with-command-group=nagcmd
編譯Nagios程序包源碼
make all
安裝二進製運行程序、初始化腳本、配置文件樣本並設置運行目錄權限
make installmake install-initmake install-configmake install-commandmode
現在還不能啟動Nagios - 還有一些要做的…
4)客戶化配置
樣例配置文件默認安裝在這個目錄下/usr/local/nagios/etc,這些樣例文件可以配置Nagios使之正常運行,隻需要做一個簡單的修改…
用你擅長的編輯器軟件來編輯這個/usr/local/nagios/etc/objects/contacts.cfg配置文件,更改email地址nagiosadmin的聯係人定義信息中的EMail信息為你的EMail信息以接收報警內容。
vi /usr/local/nagios/etc/objects/contacts.cfg
5)配置WEB接口
安裝Nagios的WEB配置文件到Apache的conf.d目錄下
make install-webconf
創建一個nagiosadmin的用戶用於Nagios的WEB接口登錄。記下你所設置的登錄口令,一會兒你會用到它。
htpasswd2 -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
重啟Apache服務以使設置生效。
service apache2 restart
6)編譯並安裝Nagios插件
展開Nagios插件的源程序包
cd ~/downloadstar xzf nagios-plugins-1.4.11.tar.gzcd nagios-plugins-1.4.11
編譯並安裝插件
./configure –with-nagios-user=nagios –with-nagios-group=nagiosmakemake install
7)啟動Nagios
把Nagios加入到服務列表中以使之在係統啟動時自動啟動
chkconfig –add nagioschkconfig nagios on
驗證Nagios的樣例配置文件
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
如果沒有報錯,可以啟動Nagios服務
service nagios start
8)登錄WEB接口
你現在可以從WEB方式來接入Nagios的WEB接口了,你需要在提示下輸入你的用戶名(nagiosadmin)和口令,你剛剛設置的,這裏用係統默認安裝的瀏覽器,用下麵這個超鏈接
konqueror https://localhost/nagios/
點擊“服務詳情”的引導超鏈來查看你本機的監視詳情。你可能需要給點時間讓Nagios來檢測你機器上所依賴的服務因為檢測需要些時間。
9)其他的變更
確信你機器的防火牆規則配置允許你可以從遠程登錄到Nagios的WEB服務。
你可以這樣做:
打開控製中心
選擇’打開超戶設置’以打開YaST超戶控製中心
選擇在’安全與用戶’設置裏的’防火牆’
在防火牆的配置窗口中點擊’允許的服務’選項
在許可的服務中增加’HTTP服務’,是’外部區’的部分
點擊’下一步’並選擇’接受’以使得防火牆設置生效
配置EMail的報警項超出了本文檔的內容,指向你的係統檔案用網頁查找或是到這個站點NagiosCommunity.org wiki來查找更進一步的信息,以使你的openSUSE係統上可以向外部地址發送EMail信息。
4.6. 基於Ubuntu平台的快速指南
4.6.1. 介紹
本指南試圖讓你通過簡單的指令以在20分鍾內在Ubuntu平台上通過對Nagios的源程序的安裝來監控本地主機。沒有討論更高級的設置項-隻是一些基本操作,但這足以使95%的用戶啟動Nagios。
這些指令在基於Ubuntu6.10(桌麵版)的係統下寫成的。
What You’ll End Up With
如果按照本指南安裝,最後將是這樣結果:
Nagios和插件將安裝到/usr/local/nagios
Nagios將被配置為監控本地係統的幾個主要服務(CPU負荷、磁盤利用率等)
Nagios的Web接口是URL是https://localhost/nagios/
4.6.2. 所需軟件包
確認你安裝好的係統上已經安裝如下軟件包再繼續。
Apache2
GCC編譯器與開發庫
GD庫與開發庫
可以用apt-get命令來安裝這些軟件包,鍵入命令:
sudo apt-get install apache2
sudo apt-get install build-essential
sudo apt-get install libgd2-dev
4.6.3. 操作過程
1)建立一個帳號
切換為root用戶
sudo -s
創建一個名為nagios的帳號並給定登錄口令
/usr/sbin/useradd nagios
passwd nagios
在Ubuntu服務器版(6.01或更高版本),創建一個用戶組名為nagios(默認是不創建的)。在Ubuntu桌麵版上要跳過這一步。
/usr/sbin/groupadd nagios
/usr/sbin/usermod -G nagios nagios
創建一個用戶組名為nagcmd用於從Web接口執行外部命令。將nagios用戶和apache用戶都加到這個組中。
/usr/sbin/groupadd nagcmd
/usr/sbin/usermod -G nagcmd nagios
/usr/sbin/usermod -G nagcmd www-data
2)下載Nagios和插件程序包
建立一個目錄用以存儲下載文件
mkdir ~/downloads
cd ~/downloads
下載Nagios和Nagios插件的軟件包(訪問https://www.nagios.org/download/站點以獲得最新版本),在寫本文檔時,最新的Nagios的軟件版本是3.0rc1,Nagios插件的版本是1.4.11。
wget https://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-3.0rc1.tar.gz
wget https://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11.tar.gz
3)編譯與安裝Nagios
展開Nagios源程序包
cd ~/downloads
tar xzf nagios-3.0rc1.tar.gz
cd nagios-3.0rc1
運行Nagios配置腳本並使用先前開設的用戶及用戶組:
./configure –with-command-group=nagcmd
編譯Nagios程序包源碼
make all
安裝二進製運行程序、初始化腳本、配置文件樣本並設置運行目錄權限
make install
make install-init
make install-config
make install-commandmode
現在還不能啟動Nagios-還有一些要做的…
4)客戶化配置
樣例配置文件默認安裝在這個目錄下/usr/local/nagios/etc,這些樣例文件可以配置Nagios使之正常運行,隻需要做一個簡單的修改…
用你擅長的編輯器軟件來編輯這個/usr/local/nagios/etc/objects/contacts.cfg配置文件,更改email地址nagiosadmin的聯係人定義信息中的EMail信息為你的EMail信息以接收報警內容。
vi /usr/local/nagios/etc/objects/contacts.cfg
5)配置WEB接口
安裝Nagios的WEB配置文件到Apache的conf.d目錄下
make install-webconf
創建一個nagiosadmin的用戶用於Nagios的WEB接口登錄。記下你所設置的登錄口令,一會兒你會用到它。
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
重啟Apache服務以使設置生效。
/etc/init.d/apache2 reload
6)編譯並安裝Nagios插件
展開Nagios插件的源程序包
cd ~/downloads
tar xzf nagios-plugins-1.4.11.tar.gz
cd nagios-plugins-1.4.11
編譯並安裝插件
./configure –with-nagios-user=nagios –with-nagios-group=nagios
make
make install
7)啟動Nagios
把Nagios加入到服務列表中以使之在係統啟動時自動啟動
ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
驗證Nagios的樣例配置文件
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
如果沒有報錯,可以啟動Nagios服務
/etc/init.d/nagios start
8)登錄WEB接口
你現在可以從WEB方式來接入Nagios的WEB接口了,你需要在提示下輸入你的用戶名(nagiosadmin)和口令,你剛剛設置的,這裏用係統默認安裝的瀏覽器,用下麵這個超鏈接
https://localhost/nagios/
點擊“服務詳情”的引導超鏈來查看你本機的監視詳情。你可能需要給點時間讓Nagios來檢測你機器上所依賴的服務因為檢測需要些時間。
9)其他的變更
如果要接收Nagios的EMail警報,需要安裝(Postfix)包
sudo apt-get install mailx
需要編輯Nagios裏的EMail通知送出命令,它位於/usr/local/nagios/etc/commands.cfg文件中,將裏麵的’/bin/mail’全部替換為’/usr/bin/mail’。一旦設置好需要重啟動Nagios以使配置生效。
sudo /etc/init.d/nagios restart
配置EMail的報警項超出了本文檔的內容,指向你的係統檔案用網頁查找或是到這個站點NagiosCommunity.org wiki來查找更進一步的信息,以使Ubuntu係統上可以向外部地址發送EMail信息。
———————————————————–
安裝nrpe插件監控linux主機
* 解壓:tar xvfz nrpe-2.12.tar.gz
* cd nrpe-2.12
* ./configure
* make all
* make install-plugin
在commands.cfg裏添加命令
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
———————————————————-
被監控linux主機安裝nrpe
創建用戶nagios
* useradd nagios
安裝nagios-plugins
* 解壓:#tar xvfz nagios-plugins-1.4.13.tar.gz
* 進入目錄:#cd nagios-plugins-1.4.13
* 配置:#./configure –prefix=/usr/local/nagios/
* 編譯:#make
* 安裝:#make install
更改文件夾屬主
* chown -R nagios.nagios /usr/local/nagios
安裝nrpe
* 解壓:tar xvfz nrpe-2.12.tar.gz
* cd nrpe-2.12
* ./configure
* make all
* make install-plugin
* make install-daemon
* make install-daemon-config
修改修改/usr/local/nagios/etc/nrpe.cof
* allowd_hosts=192.168.202.15
開機啟動nrpe
* 在/etc/init.d/rc.local裏添加/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
* 執行/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
//被監控機器安裝結束
———————————————————
[精華] Nagios飛信linux係統免費短信報警配置
——————————————————————————–
https://www.chinaunix.net 作者:solaris小兵 發表於:2009-05-26 16:27:58
【發表評論】【查看原文】【門戶網站運維討論區】【關閉】
Nagios飛信linux係統免費短信報警配置
本人聲明如需轉載請保留如下信息:
作者:SOLARIS小兵
MAIL:[email]solarisxb@hotmail.com[/email]
BLOG:https://solarisxb.cublog.cn/
一、 前言:
1、 nagios是一個非常好的係統監控工具,現在我的nagios係統已經正常運行,使用短信貓和郵件可以報警。使用飛信可以節約我們的短信貓和短信費用。
2、 飛信首先手機要開通中國移動的飛信業務。目前使用飛信發送短信是免費的。需要把接受短信的手機和飛信發送手機加為好友。
3、 下載飛信的linux客戶端程序.解開包後隻有一個文件sms。不錯。這個就是飛信發送短信的程序啦。現在的飛信還是不能用的。因為它需要libace的glibc庫的支持。
二、 飛信linux程序下載:
1、 飛信官方網站:https://www.it-adv.net/
2、 飛信官方命令下載:sms
https://www.it-adv.net/fetion/fetion_linux_20080402.tar.gz
3、 飛信官方lib庫下載:
32位官方lib庫:https://www.it-adv.net/fetion/library32.rar
64位官方lib庫:https://www.it-adv.net/fetion/library64_linux.tar.gz
三、 飛信程序測試:
1、 飛信命令測試:
# wget https://www.it-adv.net/fetion/fetion_linux_20080402.tar.gz
# tar xvfz fetion_linux_20080402.tar.gz
# cp sms /usr/bin
# sms -h
sms -f mobile -p pwd -t mobile1,.. -m message -a message -d
sms -f mobile -p pwd -t mobile1,.. -i file_name[utf8] -a invite_message -d 1
-f:Fetion mobile account(only supports mobile phone No.)
-p:Account password
-t:Destination mobile list
-m:Message
-i:File name(only supports utf8)
-a:Auto send invite using invite_message.
-d:Debug on.
如果沒有安裝lib庫,將會提示 缺少libACE.so.5.4.7包
四、 解決缺少lib庫的方法:
說明: 在centOS5下裝提示需要libACE.so.5.4.7這個庫,千萬不要自己去安裝ACE包,很麻煩,官方已經給了liunx的下載版本:
1.先檢查一下缺少的lib文件
[root@nagios libexec]# ldd sms
linux-gate.so.1 => (0×00b00000)
libACE.so.5.4.7 => not found
libACE_SSL.so.5.4.7 => not found
libssl.so.0.9.8 => not found
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0×02a05000)
libm.so.6 => /lib/libm.so.6 (0×00cd4000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0×029f7000)
libc.so.6 => /lib/libc.so.6 (0×00b92000)
/lib/ld-linux.so.2 (0×001c3000)
2.下載lib庫:
32位官方lib庫:https://www.it-adv.net/fetion/library32.rar
64位官方lib庫:https://www.it-adv.net/fetion/library64_linux.tar.gz
3、安裝lib庫
[root@nagios library32]# ls
libACE.so.5.4.7 libACE_SSL.so.5.4.7 libcrypto.so.0.9.8 libssl.so.0.9.8
[root@nagios library32]# cp *.* /lib/
[root@nagios library32]# cp *.* /usr/lib/
4、測試sms:
[root@nagios libexec]# ./sms
************************ IMPORTANT STATEMENT ************************
** **
** PLEASE DON’T USE THIS SOFTWARE TO SEND JUNK SHORT MESSAGES. **
** OTHERWISE PLEASE BEAR YOUR OWN CONSEQUENCES. **
** **
** [version:2008-4-2] **
*********************************************************************
This program is for sending short messages via CMCC Fetion!
[url=https://www.fetion.com.cn/]https://www.fetion.com.cn/
AUTHOR:KelvinHan MSN/EMAIL:shichangguo@msn.com 2008/3/8
Usage:
sms -f mobile -p pwd -t mobile1,.. -m message -a message -d
sms -f mobile -p pwd -t mobile1,.. -i file_name[utf8] -a invite_message -d 1
-f:Fetion mobile account(only supports mobile phone No.)
-p:Account password
-t:Destination mobile list
-m:Message
-i:File name(only supports utf8)
-a:Auto send invite using invite_message.
-d:Debug on.
五、 Nagios飛信測試:
1、 需要注冊一個可以使用飛信的手機號碼,測試期間可以自己發送給自己做測試。
2、 給別的手機發飛信,需要給把手機綁定為好友。
3、 飛信環境解決了,發短信測試一下
136933XXXXX為發飛信的注冊手機號碼
136833XXXXX、36733XXXXX 為接收飛信短信的手機號碼
[root@nagios libexec]# ./sms -f 136933XXXXX -p password -t 136833XXXXX -m hello,this is test
也可以要發的消息在一個文本文件裏,如 message.txt
./sms -f 136933XXXXX -p password -t 136833XXXXX,136733XXXXX -i message.txt
如果接收短信的手機號碼在你的好友列表裏,就會發送成功。
如果不在好友列表裏,發送是不成功的。如果你想讓程序邀請他們加入,那麼就用 -a 參數
sms -f 136933XXXXX -p password -t 136833XXXXX,136733XXXXX -m 你好,飛信 -a UBUNTU
這樣,對方就會收到移動發的確認短信。
六、 Nagios配置:
1、 nagios命令配置commands.cfg:
more /usr/local/nagios/etc/commands.cfg
define command{
command_name notify-service-by-sms
command_line /usr/bin/sms -f 13901111111 -p 562128 -t $CONTACTPAGER$ -m “$HOSTNAME$ $SERVICEDESC$ is $SERVICESTATE$
on $TIME$ result is $SERVICEOUTPUT$” $CONTACTPAGER$
}
2、 nagios發送配置contacts.cfg:
[root@nagios ~]# more /usr/local/nagios/etc/contacts.cfg
define contact{
contact_name sa
alias system admin
host_notification_period 24×7
service_notification_period 24×7
host_notification_options d,r,
service_notification_options c,w,r
service_notification_commands notify-service-by-email,notify-service-by-sms
# service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
# email [email]1234@sina.com[/email]
pager 158010775111
}
[root@nagios ~]#
七、 備注:
添加內容:現在新的lib庫,測試以後在32位和64位操作係統都可以使用!!
測試係統:centos 5.2
——————————————————————————-
4.7. 監控Windows主機
4.7.1. 介紹
本文用來說明如何監控Windows主機的本地服務和特性,包括:
內存占用率
CPU負載
Disk利用率
服務狀態
運行進程
等等
在Windows主機上的公眾化服務(如HTTP、FTP、POP3等)可以查閱監控公眾化服務這篇文檔。
注意
如下的內容是假定你已經按照快速安裝指南安裝好了Nagios係統之後做的,下麵所使用的樣例配置文件(如commands.cfg、templates.cfg等)已經在安裝過程中安裝到位。
4.7.2. 概覽
對Windows機器的監控私有服務需要在機器上安裝代理程序。代理將會在檢測插件與Nagios服務之間起網關代理作用。如果沒有在機器上安裝代理的話,Nagios將無法對Windows私有服務或屬性等進行監控。
在下麵例子中,將在Windows機器上安裝NSClient++外部構件並使用check_nt插件檢測和與NSClient++構件進行通訊。如果你按照指南來安裝的話,check_nt插件已經安裝到了Nagios服務器上。
如果願意,可以用其他的Windows代理(象NC_Net)替代NSClient++構件所起的作用-隻是要稍稍改一下對應的命令和服務定義等。下麵將隻是討論安裝了NSClient++外部構件的情況。
4.7.3. 步驟
為完成對Windows機器的檢測,有幾個步驟要做,它們是:
確認一下首要條件;
在Windows機器上安裝代理(在本例中是安裝NSClient++構件);
給Windows機器創建新的主機和服務對象定義;
重啟動Nagios守護進程。
4.7.4. 已經做了什麼?
為使過程簡單,已經完成了少量配置文件的工作:
已經把check_nt命令加入到了commands.cfg文件中,就可以直接使用check_nt插件來監控Windows服務;
一個Windows機器的主機對象模板(命名為windows-server)已經在templates.cfg文件裏創建好了,可以更容易地加入一個新的Windows主機對象定義。
常用的配置文件可以在/usr/local/nagios/etc/objects/目錄裏找到。如果願意可以對裏麵的對象進行修改以適應你的要求。但是,如果你沒有熟悉配置Nagios之前勸你不要這麼做。開始時可以隻是按照下麵的指令操作來快速完成監控Windows機器。
4.7.5. 首要條件
首次監控一台Winodws機器時需要對Nagios做點額外的工作,記住,僅僅是監控第一台Windows機器時需要做這些工作。
編輯Nagios的主配置文件
vi /usr/local/nagios/etc/nagios.cfg
把下麵這行最前麵的#號去掉:
#cfg_file=/usr/local/nagios/etc/objects/windows.cfg
保存配置文件並退出。
剛才做的是什麼呢?是讓Nagios起用/usr/local/nagios/etc/objects/windows.cfg這個配置文件裏的對象定義。在這個配置文件裏可以加些Windows的主機與服務對象定義。該配置文件裏已經包含有幾個樣例主機、主機組及服務對象定義。對於第一台Windows機器,可以隻是簡單地修改裏麵已經有的主機與服務對象定義而不要新創建一個。
4.7.6. 安裝Windows代理程序
在用Nagios監控Windows機器的私有服務之前,需要先在機器上安裝代理程序。推薦使用NSClient++外部構件,它可以在https://sourceforge.net/projects/nscplus找到。如下指令可以安裝一個基本的NSClient++外部構件,同時也配置好Nagios來監控這台Windows機器。
1.從https://sourceforge.net/projects/nscplus站點下載最新穩定版的NSClient++軟件包;
2.展開軟件包到一個目錄下,如C:\NSClient++;
3.打開一個命令行窗口並切換到C:\NSClient++目錄下;
4.用下麵命令將NSClient++係統服務注冊到係統裏:
nsclient++ /install
5.用下麵命令安裝NSClient++係統托盤程序(’SysTray’是大小寫敏感的):
nsclient++ SysTray
6.打開服務管理器並確認NSClientpp服務可以在桌麵交互(看一下服務管理器裏的’Log On’選項頁),如果沒有允許桌麵交互,點一下裏麵的選擇項打開它。
7.編輯NSC.INI文件(位於C:\NSClient++目錄)並做如下修改:
去掉在[modules]段裏的列出模塊程序的注釋,除了CheckWMI.dll和RemoteConfiguration.dll;
最好是修改一下在[Settings]段裏的’password’選項;
去掉在[Settings]段裏的’allowed_hosts’選項注釋,把Nagios服務所在主機的IP加到這一行裏,或是置為空,讓全部主機都可以聯入;
確認一下在[NSClient]段裏的’port’選項裏已經去掉注釋並設置成’12489′(默認端口);
8.用下麵命令啟動NSClient++服務:
nsclient++ /start
9.如果安裝正確,一個新的圖標會出現在係統托盤裏,是個黃圈裏麵有個黑色的’M';
10.完成了。這台Windows機器可以加到Nagios監控配置裏了…
4.7.7. 配置Nagios
為監控Windows機器下麵要在Nagios配置文件裏加幾個對象定義。
編輯方式打開windows.cfg文件。
vi /usr/local/nagios/etc/objects/windows.cfg
給Windows機器加一個新的主機對象定義以便監控。如果是被監控的第一台Windows機器,可以隻是修改windows.cfg文件裏的對象定義。修改host_name、alias和address域以符合那台Windows機器。
define host{
use windows-server ; Inherit default values from a Windows server template (make sure you keep this line!)
host_name winserver
alias My Windows Server
address 192.168.1.2
}
好了。下麵可以加幾個服務定義(在同一個配置文件裏)以使Nagios監控Windows機器上的不同屬性內容。如果是第一台Windows機器,可以隻是修改windows.cfg裏的服務對象定義。
注意
用你剛剛加好的主機對象定義裏的host_name來替換例子裏的”winserver”。
加入下麵的服務定義以監控運行於Windows機器上的NSClient++外部構件的版本。當到時間要升級Windows機器上的外部構件時這信息會很用有,因為它可以告知這台Windows機器上的NSClient++需要升級到最新版本。
define service{
use generic-service
host_name winserver
service_description NSClient++ Version
check_command check_nt!CLIENTVERSION
}
加入下麵的服務定義以監控Windows機器的啟動後運行時間。
define service{
use generic-service
host_name winserver
service_description Uptime
check_command check_nt!UPTIME
}
加入下麵的服務定義可監控Windows機器的CPU利用率,並在5分鍾CPU負荷高於90%時給出一個緊急警報或是高於80%時給出一個告警警報。
define service{
use generic-service
host_name winserver
service_description CPU Load
check_command check_nt!CPULOAD!-l 5,80,90
}
加入下麵的服務定義可監控Windows機器的內存占用率,並在5分鍾內存占用率高於90%時給出一個緊急警報或是高於80%時給出一個告警警報。
define service{
use generic-service
host_name winserver
service_description Memory Usage
check_command check_nt!MEMUSE!-w 80 -c 90
}
加入下麵的服務定義可監控Windows機器的C:盤的磁盤利用率,並在磁盤利用率高於90%時給出一個緊急警報或是高於80%時給出一個告警警報。
define service{
use generic-service
host_name winserver
service_description C:\ Drive Space
check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90
}
加入下麵的服務定義可監控Windows機器上的W3SVC服務狀態,並在W3SVC服務停止時給出一個緊急警報。
define service{
use generic-service
host_name winserver
service_description W3SVC
check_command check_nt!SERVICESTATE!-d SHOWALL -l W3SVC
}
加入下麵的服務定義可監控Windows機器上的Explorer.exe進程,並在進程沒有運行時給出一個緊急警報。
define service{
use generic-service
host_name winserver
service_description Explorer
check_command check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
}
都好了,已經加好了基礎服務定義,可以監控Windows機器了,保存一下配置文件。
4.7.8. 口令保護
如果想指定保存在Windows機器上NSClient++配置文件裏的口令,可以修改check_nt命令定義,讓它帶著口令。編輯方式打開commands.cfg文件。
vi /usr/local/nagios/etc/commands.cfg
修改check_nt命令的定義,帶上”-s <PASSWORD>”命令參數(這裏的PASSWORD 要換成你Windows機器的真正口令),象這樣:
define command{
command_name check_nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s PASSWORD -v $ARG1$ $ARG2$
}
保存文件退出。
——————————————————————————————————–
4.9. 監控路由器和交換機
4.9.1. 介紹
本文檔將介紹如何來監控路由器和交換機的狀態。一些便宜的”無網管”功能的交換機與集線器不能配置IP地址而且對於網絡是不可見的組成構件,因而沒辦法來監控這種東西。稍貴些的交換機和路由器可以配置IP地址可以用PING檢測或是通過SNMP來查詢狀態信息。
下麵將描述如果來監控這些有網管功能的交換機、集線器和路由器:
包丟棄率,平均回包周期RTA
SNMP狀態信息
帶寬與流量
注意
如下指令是假定你已經按快速安裝指南安裝好Nagios。參考的樣例配置是在已經按指南安裝就位的配置文件(commands.cfg、templates.cfg等)。
4.9.2. 概覽
監控交換機與路由器可簡可繁-主要是看擁有什麼樣設備與想監控什麼內容。做為極為重要的網絡組成構件,毫無疑問至少要監控一些基本狀態。
交換機與路由器可以簡單地用PING來監控丟包率、RTA等數據。如果交換機支持SNMP,就可以監控端口狀態等,用check_snmp插件,也可以監控帶寬(如果用了MRTG),用check_mrtgtraf插件。
check_snmp插件隻有當係統裏安裝了net-snmp和net-snmp-utils包後才編譯。先確定插件已經在/usr/local/nagios/libexec目錄裏再繼續做,如果沒有這個文件,安裝net-snmp和net-snmp-utils包並且重編譯並重新安裝Nagios插件包。
4.9.3. 步驟
要監控交換機與路由器要有幾步工作:
第一時間執行些必備工作;
給設備創建要監控的主機與服務對象定義;
重啟動Nagios守護進程。
4.9.4. 已經做了什麼?
為了讓工作輕鬆點,幾個配置任務已經做好了:
兩個命令定義(check_snmp和check_local_mrtgtraf)已經加到了commands.cfg文件中。可以用check_snmp和check_mrtgtraf插件來監控網絡打印機。
一個交換機模板(命名為generic-switch)已經創建在templates.cfg文件裏。可以在對象定義裏更容易地加一個新的交換機與路由器設備。
以上的監控配置文件可以在/usr/local/nagios/etc/objects/目錄裏找到。如果願意可以修改這些定義或是加入其他適合需要的更好的定義。但推薦你最好是等到你熟練地掌握了Nagios配置之後再這麼做。開始的時候,隻要按上述的配置來監控網絡裏的路由器和交換機就可以了。
4.9.5. 必備工作
要配置Nagios用於監控網絡裏的交換機之前,有必要做點額外工作。記住,這是首先要做的工作才能監控。
編輯Nagios的主配置文件
vi /usr/local/nagios/etc/nagios.cfg
移除文件裏下麵這行的最前麵的(#)符號
#cfg_file=/usr/local/nagios/etc/objects/switch.cfg
保存文件並退出。
為何要這麼做?這是要讓Nagios檢查/usr/local/nagios/etc/objects/switch.cfg配置文件來找些額外的對象定義。在文件裏可以增加有關路由器和交換機設備的主機與服務定義。配置文件已經包含了幾個樣本主機、主機組和服務定義。做為監控路由器與交換機的第一步工作是最好在樣例的主機與服務對象定義之上修改而不是重建一個。
4.9.6. 配置Nagios
需要做些對象定義以監控新的交換機與路由器設備。
打開switch.cfg文件進行編輯。
vi /usr/local/nagios/etc/objects/switch.cfg
給要監控的交換機加一個新的主機對象定義。如果這是第一台要監控的交換機設備,可以簡單地修改switch.cfg裏的樣例配置。修改主機對象裏的host_name、alias和address域值來適用於監控。
define host{
use generic-switch ; Inherit default values from a template
host_name linksys-srw224p ; The name we’re giving to this switch
alias Linksys SRW224P Switch ; A longer name associated with the switch
address 192.168.1.253 ; IP address of the switch
hostgroups allhosts,switches ; Host groups this switch is associated with
}
4.9.7. 監控服務
現在可以加些針對監控交換機的服務對象定義(在同一個配置文件)。如果是第一台要監控的交換機設備,可以簡單地修改switch.cfg裏的樣例配置。
注意
替換樣例定義裏的”linksys-srw224p”主機名為你剛才定義的名字,是修改在host_name域。
4.9.8. 監控丟包率和RTA
增加如下的服務定義以監控自Nagios監控主機到交換機的丟包率和平均回包周期RTA,在一般情況下每5分鍾檢測一次。
define service{
use generic-service ; Inherit values from a template
host_name linksys-srw224p ; The name of the host the service is associated with
service_description PING ; The service description
check_command check_ping!200.0,20%!600.0,60% ; The command used to monitor the service
normal_check_interval 5 ; Check the service every 5 minutes under normal conditions
retry_check_interval 1 ; Re-check the service every minute until its final/hard state is determined
}
這個服務的狀態將會處於:
緊急(CRITICAL)-條件是RTA大於600ms或丟包率大於等於60%;
告警(WARNING)-條件是RTA大於200ms或是丟包率大於等於20%;
正常(OK)-條件是RTA小於200ms或丟包率小於20%
4.9.9. 監控SNMP狀態信息
如果交換機與路由器支持SNMP接口,可以用check_snmp插件來監控更豐富的信息。如果不支持SNMP,跳過此節。
加入如下服務定義到你剛才修改的交換機對象定義之中
define service{
use generic-service ; Inherit values from a template
host_name linksys-srw224p
service_description Uptime
check_command check_snmp!-C public -o sysUpTime.0
}
在上述服務定義中的check_command域裏,用”-C public”來指定SNMP共同體名稱為”public”,用”-o sysUpTime.0″指明要檢測的OID(譯者注-MIB節點值)。
如果要確保交換機上某個指定端口或接口的狀態處於運行狀態,可以在對象定義裏加入一段定義:
define service{
use generic-service ; Inherit values from a template
host_name linksys-srw224p
service_description Port 1 Link Status
check_command check_snmp!-C public -o ifOperStatus.1 -r 1 -m RFC1213-MIB
}
在上例中,”-o ifOperStatus.1″指出取出交換機的端口編號為1的OID狀態。”-r 1″選項是讓check_snmp插件檢查返回一個正常(OK)狀態,如果是在SNMP查詢結果中存在”1″(1說明交換機端口處於運行狀態)如果沒找到1就是緊急(CRITICAL)狀態。”-m RFC1213-MIB”是可選的,它告訴check_snmp插件隻加載”RFC1213-MIB”庫而不是加載每個在係統裏的MIB庫,這可以加快插件運行速度。
這就是給SNMP庫的例子。有成百上千種信息可以通過SNMP來監控,這完全取決於你需要做什麼和如果來做監控。祝你好運!
提示
通常可以用如下命令來尋找你想用於監控的OID節點(用你的交換機IP替換192.168.1.253):snmpwalk -v1 -c public 192.168.1.253 -m ALL .1
4.9.10. 監控帶寬和流量
可以監控交換機或路由器的帶寬利用率,用MRTG繪圖並讓Nagios在流量超出指定門限時報警。check_mrtgtraf插件(它已經包含在Nagios插件軟件發行包中)可以實現。
需要讓check_mrtgtraf插件知道如何來保存MRTG數據並存入文件,以及門限等。在例子中,監控了一個Linksys交換機。MRTG日誌保存於/var/lib/mrtg/192.168.1.253_1.log文件中。這就是我用於監控的服務定義,它可以用於監控帶寬數據到日誌文件之中…
define service{
use generic-service ; Inherit values from a template
host_name linksys-srw224p
service_description Port 1 Bandwidth Usage
check_command check_local_mrtgtraf!/var/lib/mrtg/192.168.1.253_1.log!AVG!1000000,2000000!5000000,5000000!10
}
在上例中,”/var/lib/mrtg/192.168.1.253_1.log”參數傳給check_local_mrtgtraf命令意思是插件的MRTG日誌文件在這個文件裏讀寫,”AVG”參數的意思是取帶寬的統計平均值,”1000000,200000″參數是指流入的告警門限(以字節為單位),”5000000,5000000″是輸出流量緊急狀態門限(以字節為單位),”10″是指如果MRTG日誌如果超過10分鍾沒有數據返回一個緊急狀態(應該每5分鍾更新一次)。
保存該配置文件
—————————————————————————————————
4.12. 監控公眾服務平台
4.12.1. 介紹
本文檔介紹如何來監控一些公眾化的服務、應用及協議。所謂的”公眾”服務是指在網絡裏常見的服務-不管是本地網絡還是因特網上都是這樣。公眾服務包括象-HTTP服務(WEB)、POP3、IMAP/SMTP、FTP和SSH。其實在日常使用中還有更多的基礎服務。這些服務與應用,包括所依托的協議,可以被Nagios直接監控而不需要額外的支持。
與之相對,私有服務如果沒有某些中間件做代理Nagios是無法監控的。主機上的私有服務比如說CPU負荷、內存占用率、磁盤利用率、當前登錄用戶、進程信息等。這些私有服務或屬性不能暴露給外部客戶。這樣就要在這些被監控的主機上安裝一些中間件做代理來取得此類信息。更多有關在不同類型主機上的私有服務的信息可以查閱如下文檔:
監控Windows主機
監控Netware服務器
監控Linux/Unix機器
提示
偶爾發現有些私有服務和應用的信息可以通過SNMP來做監控。SNMP代理可以讓遠程監控係統提取一些有用信息。更多有關SNMP來監控服務信息的內容可以查閱一下監控交換機和路由器。
注意
如下內容假定你已經按照快速安裝指南安裝好Nagios係統。如下的配置樣例對象可以參考安裝包裏的commands.cfg和localhost.cfg兩個配置文件。
4.12.2. 監控服務的插件
當需要對一些應用、服務或協議進行監控時,可能已經有一個用於監控的插件了。Nagios的官方插件包帶有插件可以用於監控很多種服務與協議,在插件包的contrib/目錄下有很多可用的插件。而且在NagiosExchange.org網站上有許多額外的其他人寫的插件可以試試看!
如果不巧沒有找到要監控所需的插件,可以自己寫一個。插件寫起來很容易,不要怕它,讀一讀插件的開發這篇文檔吧。
下麵將會領略一下你遲早會用到的一些基礎服務,每個服務都可以在Nagios插件包裏找到對應的檢測插件。下麵就開始了…
4.12.3. 創建一個主機對象定義
在監控一個服務之前需要先定義一個服務要綁定的主機對象。可以把主機對象定義放在cfg_file域所指向的任何一個對象配置文件裏或是放在由cfg_dir域所指向的任何一個目錄下的文件裏。如果已經定義過一個主機對象了,可以跳過這一步。
在本例中,假定你想在一台主機上監控許多種服務,把這台主機命名為remotehost。可以把主機對象定義放在它自己的配置文件裏或加到一個已有的對象定義文件裏。這裏有個remotehost對象的定義象是這樣:
define host{
use generic-host ; Inherit default values from a template
host_name remotehost ; The name we’re giving to this host
alias Some Remote Host ; A longer name associated with the host
address 192.168.1.50 ; IP address of the host
hostgroups allhosts ; Host groups this host is associated with
}
現在可以有了一個可被監控的主機對象了,之後就可以定義所要監控的服務。有了主機對象定義,服務對象定義可以加在任何一個對象配置文件的任何一個位置裏。
4.12.4. 創建服務對象定義
在Nagios裏每個要監控的服務都必須給出一個綁定在剛才定義出的主機上的一個服務對象。可以把服務對象放在任何一個由cfg_file域指向的對象配置文件裏或是放在cfg_dir域所指向的目錄下。
下麵會給出一些要監控的樣例服務(HTTP、FTP等)的對象定義。
4.12.5. 監控HTTP
有時不管是你或是其他人需要監控一個Web服務器。check_http插件就是做這件事的。插件可以透過HTTP協議並監控響應時間、錯誤代碼、返回頁麵裏的字符串、服務器證書和更多的東西。
在commands.cfg文件裏包含有一個使用check_http插件的命令定義。象是這樣的:
define command{
name check_http
command_name check_http
command_line $USER1$/check_http -I $HOSTADDRESS$ $ARG1$
}
對於監控在remotehost機器上的HTTP服務的簡單的服務對象定義會象是這樣的:
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description HTTP
check_command check_http
}
這個服務對象定義將會監控位於remotehost機器上的HTTP服務。如果WEB服務在10秒內沒有響應將產生警報或是返回了一個HTTP的錯誤碼(403、404等)也會產生警報。這是最基本的監控要求,很簡單,不是麼?
提示
對於更高級的監控,可以在命令行下手工運行check_http插件,帶著–help參數,看看這個插件有什麼選項。–help語法對於本文檔所涉及的插件都適用。
下麵看看對HTTP服務更高級的監控。這個服務定義將會檢測如下內容:在URI(/download/index.php)裏是否包含有”latest-version.tar.gz”字符串。如果沒有指定字符串,或是URI非法也或許是在5秒內沒有響應的話,它將產生一個錯誤。
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description Product Download Link
check_command check_http!-u /download/index.php -t 5 -s “latest-version.tar.gz”
}
4.12.6. 監控FTP
監控FTP服務可以用check_ftp插件。在commands.cfg文件裏包含有一個使用check_ftp插件的命令樣例,象是這樣:
define command{
command_name check_ftp
command_line $USER1$/check_ftp -H $HOSTADDRESS$ $ARG1$
}
對remotehost主機上的FTP服務的簡單監控的例子象是這樣:
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description FTP
check_command check_ftp
}
這個服務對象定義將會在FTP服務器10秒內不響應時給出一個警報。
下麵對FTP做些高級監控。下麵這個服務將檢測FTP服務器綁定在remotehost主機上的1023端口的FTP服務。如果在5秒內沒有響應或是服務裏沒有回應字符串”Pure-FTPd [TLS]“時將會產生警報。
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description Special FTP
check_command check_ftp!-p 1023 -t 5 -e “Pure-FTPd [TLS]”
}
4.12.7. 監控SSH
監控SSH服務可以用check_ssh插件。在commands.cfg文件裏包含在使用check_ssh插件有樣例命令,象是這樣:
define command{
command_name check_ssh
command_line $USER1$/check_ssh $ARG1$ $HOSTADDRESS$
}
監控remotehost上的SSH服務的簡單例子象是這樣:
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description SSH
check_command check_ssh
}
這個服務對象定義將會在SSH服務10秒內不響應時給出一個警報。
下麵對SSH做些高級監控。下麵這個服務將檢測SSH服務,如果5秒內不響應或是服務器版本串裏沒有能匹配字符串”OpenSSH_4.2″時產生一個警報。
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description SSH Version Check
check_command check_ssh!-t 5 -r “OpenSSH_4.2″
}
4.12.8. 監控SMTP
用check_smtp插件來監控EMail服務。commands.cfg文件裏包含有使用check_smtp插件的命令,象是這樣:
define command{
command_name check_smtp
command_line $USER1$/check_smtp -H $HOSTADDRESS$ $ARG1$
}
監控remotehost上的SMTP服務的簡單例子象是這樣:
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description SMTP
check_command check_smtp
}
這個服務對象定義將會在SMTP服務器10秒內不響應時給出一個警報。
下麵是更高級的監控。下麵這個服務將檢測SMTP服務,如果服務在5少內不響應或是返回串裏沒有包含字符串”mygreatmailserver.com”時將產生一個警報。
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description SMTP Response Check
check_command check_smtp!-t 5 -e “mygreatmailserver.com”
}
4.12.9. 監控POP3
用check_pop插件來監控EMail的POP3服務。commands.cfg文件裏包含有使用check_pop插件的命令,象是這樣:
define command{
command_name check_pop
command_line $USER1$/check_pop -H $HOSTADDRESS$ $ARG1$
}
監控remotehost上的POP3服務的簡單例子象是這樣:
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description POP3
check_command check_pop
}
這個服務對象定義將會在POP3服務10秒內不響應時給出一個警報。
下麵是更高級監控。下麵這個服務將檢測POP3服務,當服務在5秒內不響應或是返回串裏沒有包含字符串”mygreatmailserver.com”時將產生一個警報。
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description POP3 Response Check
check_command check_pop!-t 5 -e “mygreatmailserver.com”
}
4.12.10. 監控IMAP
用check_imap插件可以監控EMail的IMAP4服務。commands.cfg文件裏包含有使用check_imap插件的命令,象是這樣:
define command{
command_name check_imap
command_line $USER1$/check_imap -H $HOSTADDRESS$ $ARG1$
}
監控remotehost上的IMAP服務的簡單例子象是這樣:
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description IMAP
check_command check_imap
}
這個服務對象定義將在IMAP服務10秒內不響應時給出一個警報。
下麵是更高級監控。下麵這個服務將檢測IAMP4服務,當服務在5秒內不響應或是返回串裏沒有包含有”mygreatmailserver.com”時將產生一個警報。
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description IMAP4 Response Check
check_command check_imap!-t 5 -e “mygreatmailserver.com”
}
—————————————————————————————————-
第 5 章 準備配置Nagios
5.1. 配置概覽
5.1.1. 介紹
在你開始監控網絡與係統之前要有同個不同配置文件需要創建和編輯。耐心點,配置Nagios可能是要花些時間特別是對於那些初次使用者。弄清其機理所有的將它們搞定絕對是值得的。
注意
樣本配置文件在安裝時放在了/usr/local/nagios/etc/目錄下,如果你是按照前麵給出的快速安裝指南來做的話。
5.1.2. 主配置文件
主配置文件包括了一係列的設置,它們會影響Nagios守護進程。不僅是Nagios守護進程要使用主配置文件,CGIs程序組模塊也需要,因此,主配置文件是你開始學習配置其他文件的基礎。
有關主配置文件的文檔在這裏。
5.1.3. 資源配置文件
資源文件可以保存用戶自定義的宏。資源文件的一個主要用處是用於保存一些敏感的配置信息如係統口令等不能讓CGIs程序模塊獲取到的東西。
你可以在主配置文件中設置resource_file指向一個或是多個資源文件。
5.1.4. 對象定義文件
對象定義文件用於定義主機、服務、主機組、服務組、聯係人、聯係人組、命令等等。這些將定義你需要監控什麼並將如何監控它們。
你可以在主配置文件裏設置cfg_file加上cfg_dir來指向一個或是多個對象定義文件。
有關對象定義和與其他間關係的文檔是這裏。
5.1.5. CGI配置文件
CGI配置文件包含了一係列的設置,它們會影響CGIs程序模塊。還有一些保存在主配置文件之中,因此CGI程序會知道你是如何配置的Nagios並且在哪裏保存了對象定義。
有關CGI配置文件的文檔在這裏。
5.2. 主配置文件選項
注意
當創建或編輯配置文件時,要遵守如下要求:
以符號’#'開頭的行將視為注釋不做處理;
變量必須是新起的一行 - 變量之前不能有空格符;
變量名是大小寫敏感的;
提示
樣例配置文件(/usr/local/nagios/etc/nagios.cfg)已經安裝到位,如果你是按照快速安裝指南來操作的話。
5.2.1. 配置文件的位置
主配置文件一般(實際是固定的)是nagios.cfg,存放位置在/usr/local/nagios/etc/目錄裏(--如果是rpm包來安裝,應該是在/etc/nagios/)。
5.2.2. 配置文件裏的變量
下麵將對每個主配置文件裏的選項進行說明…
表 5.1. 日誌文件
格式: log_file=<file_name>
樣例: log_file=/usr/local/nagios/var/nagios.log
這個變量用於設定Nagios在何處創建其日誌文件。它應該是你主配置文件裏麵的第一個變量,當Nagios找到你配置文件並發現配置裏有錯誤時會向該文件中寫入錯誤信息。如果你使能了日誌回滾,Nagios將在每小時、每天、每周或每月對日誌進行回滾。
表 5.2. 對象配置文件
格式: cfg_file=<file_name>
樣例: cfg_file=/usr/local/nagios/etc/hosts.cfg
cfg_file=/usr/local/nagios/etc/services.cfg
cfg_file=/usr/local/nagios/etc/commands.cfg
該變量用於指定一個包含有將用於Nagios監控對象的對象配置文件。對象配置文件中包括有主機、主機組、聯係人、聯係人組、服務、命令等等對象的定義。配置信息可以切分為多個文件並且用cfg_file=語句來指向每個待處理的配置文件。
表 5.3. 對象配置目錄
格式: cfg_dir=<directory_name>
樣例: cfg_dir=/usr/local/nagios/etc/commands
cfg_dir=/usr/local/nagios/etc/services
cfg_dir=/usr/local/nagios/etc/hosts
該變量用於指定一個目錄,目錄裏包含有將用於Nagios監控對象的對象配置文件。所有的在這個目錄下的且以.cfg為擴展名的文件將被作為配置文件來處理。另外,Nagios將會遞歸該目錄下的子目錄並處理其子目錄下的全部配置文件。你可以把配置放入不同的目錄並且用cfg_dir=語句來指向每個待處理的目錄。
表 5.4. 對象緩衝文件
格式: object_cache_file=<file_name>
樣例: object_cache_file=/usr/local/nagios/var/objects.cache
該變量用於指定一個用於緩衝對象定義複本的文件存放位置。對象緩衝將在每次Nagios的啟動和重啟時和使用CGI模塊時被創建或重建。它試圖加快在CGI裏的配置緩衝並使得你在編輯對象配置文件時可以讓正在運行的Nagios不影響CGI的顯示輸出。
表 5.5. 預緩衝對象文件
格式: precached_object_file=<file_name>
樣例: precached_object_file=/usr/local/nagios/var/objects.precache
該變量用於指定一個用於指定一個用於預處理、預緩衝 This directive is used to specify a file in which a pre-processed, pre-cached copy of 對象定義複本的文件存放位置。在大型或複雜Nagios安裝模式下這個文件可用於顯著地減少Nagios的啟動時間。如何加快啟動的更多信息可以查看這個內容。
表 5.6. 資源文件
格式: resource_file=<file_name>
樣例: resource_file=/usr/local/nagios/etc/resource.cfg
該變量用於指定一個可選的包含有$USERn$宏定義的可選資源文件。$USERn$宏在存放用戶名、口令及通用的命令定義內容(如目錄路徑)時非常有用。CGIs模塊將不會試圖讀取資源文件,所以你可以限定這權文件權限(600或660)來保護敏感信息。你可以在主配置文件裏用resource_file語句來加入多個資源文件-Nagios將會處理它們。如何定義$USERn$宏參見樣例resource.cfg文件,它放在Nagios發行包的sample-config/子目錄下。
表 5.7. 臨時文件
格式: temp_file=<file_name>
樣例: temp_file=/usr/local/nagios/var/nagios.tmp
該變量用於指定一個臨時文件,Nagios將在更新注釋數據、狀態數據等時周期性地創建它。該文件不再需要時會刪除它。
表 5.8. 臨時路徑
格式: temp_path=<dir_name>
樣例: temp_path=/tmp
這個變量是一個目錄,該目錄是塊飛地,在監控過程中用於創建臨時文件。你應在該目錄內運行tmpwatch或類似的工具程序以刪除早於24小時的文件(這是個垃圾文件存放地)。
表 5.9. 狀態文件
格式: status_file=<file_name>
樣例: status_file=/usr/local/nagios/var/status.dat
這個變量指向一個文件,文件被Nagios用於保存當前狀態、注釋和宕機信息。CGI模塊也會用這個文件以通過Web接口來顯示當前被監控的狀態,CGI模塊必須要有這個文件的讀取權限以使工作正常。在Nagios停機或在重啟動時將會刪除並重建該文件。
表 5.10. 狀態文件更新間隔
格式: status_update_interval=<seconds>
樣例: status_update_interval=15
這個變量設置了Nagios更新狀態文件的速度(秒為單位),最小更新間隔是1秒。
表 5.11. Nagios用戶
格式: nagios_user=<username/UID>
樣例: nagios_user=nagios
該變量指定了Nagios進程使用哪個用戶運行。當程序啟動完成並開始監控對象之前,Nagios將切換自己的權限並使用該用戶權限運行。你可以指定用戶或是UID名。
表 5.12. Nagios組
格式: nagios_group=<groupname/GID>
樣例: nagios_group=nagios
該變量用於指定Nagios使用哪個用戶組運行。當程序啟動完成並開始監控對象之前,Nagios將切換自己的權限並以該用戶組權限運行。你可以拽定用戶組或GID名。
表 5.13. 通知選項
格式: enable_notifications=<0/1>
樣例: enable_notifications=1
該選項決定了Nagios在初始化啟動或重啟動時是否要送出通知。如果這個選項不使能,Nagios將不會向任何主機或服務送出通知。注意,如果你打開了狀態保持選項,Nagios在其啟動和重啟時將忽略此設置並用這個選項的最近的一個設置(已經保存在狀態保
最後更新:2017-01-04 22:34:31