1. 程式人生 > 實用技巧 >監控伺服器Nagios之三 監控案例

監控伺服器Nagios之三 監控案例

前邊的兩篇僅是Nagios服務端的安裝與配置檔案的解讀,現在終於來到了第三篇,本篇將介紹下Nagios是如下實現監控的。

安裝完Nagios之後,登入Web介面訪問,在hosts一項中僅有localhost(hosts代表所監控的主機),如下圖:

wKioL1U7vhiAONDIAADKe_DfD1w379.jpg

Service中預設已經監控Nagios伺服器本身的以下選項,如下圖所示

wKiom1U7vLfxw2n6AALk2hEbJw8552.jpg

上圖中http處於WARNING狀態,提示HTTP WARNING:HTTP/1.1 403 Forbidden - 5237 bytes in 0.003 second response time

這個是因為才Apache預設釋出目錄/var/www/html下沒有index.html,建立一個即可。

一、監控Nagios伺服器本身

預設HTTPSSH雖然被監控,但是是沒有報警通知的,我們首先開啟HTTPSSH的通知!

#vim/usr/local/nagios/etc/objects/localhost.cfg

找到HTTPSSHdefine,把notifications_enabled 0這行註釋掉或者0改為1,然後重啟Nagios服務即可

wKiom1U7vLjxTi6xAAKoV1GVuJ4709.jpg

下面我們再新增一些其它監控項

新增監控本地伺服器磁碟項,/dev/sda2為例。

[email protected]_Server~]#df-h/dev/sda2
FilesystemSizeUsedAvailUse%Mountedon
/dev/sda230G4.3G25G15%/
現在有85%的空閒空間。
[
[email protected]
_Server~]#cd/usr/local/nagios/etc/objects/ [[email protected]_Serverobjects]#vimcommands.cfg 新增以下內容 definecommand{ command_namecheck_disk command_line$USER1$/check_disk-w$ARG1$-c$ARG2$$ARG3$#這裡的變數$USER1$在resource.cfg檔案中進行定義,即$USER1$=/usr/local/nagios/libexec; }#-w第一個引數-c第二個引數然後第三個引數 [[email protected]
_Serverobjects]#vimlocalhost.cfg 新增以下內容 defineservice{ uselocal-service host_namelocalhost service_descriptionDisk_monitor check_commandcheck_disk!30%!20%!/dev/sda2#每個引數用”!”隔開 notifications_enabled1#是否監控該服務#對於/dev/sda2當可用率小於30%的時候就Warning(警告),小於20%的時候就Critical(嚴重) }#命令等同於/usr/local/nagios/libexec/check_disk-w30%-c20%/dev/sda2 [[email protected]_Serverobjects]#/usr/local/nagios/libexec/check_disk-w30%-c20%/dev/sda2 DISKOK-freespace:/24639MB(85%inode=92%);|/=4323MB;6102;7628;0;30512 [[email protected]_Server~]#/usr/local/nagios/bin/nagios-v/usr/local/nagios/etc/nagios.cfg 檢查配置檔案,確保沒有警告與錯誤,然後重啟Nagios和httpd

wKioL1U7vhrxy4f6AAC3PBqGA1Q031.jpg

[[email protected]_Server~]#servicenagiosrestart
[[email protected]_Server~]#servicehttpdrestart

wKiom1U7vLnD9T2vAANF8McCN0A149.jpg

二、監控Linux客戶端

1linux客戶端配置環境

#rpm-qgccglibcglibc-commongdgd-develxinetdopenssl-devel

根據實際環境,安裝所缺少的包

2、首先建立nagios使用者,並安裝nagios-pluginsNRPE

[[email protected]_client~]#useraddnagios
[[email protected]_client~]#ls
nagios-plugins-1.4.14.tar.gznrpe-2.14.tar.gz
[[email protected]_client~]#tar-zxfnagios-plugins-1.4.14.tar.gz
[[email protected]_client~]#cdnagios-plugins-1.4.14
[[email protected]_clientnagios-plugins-1.4.14]#./configure--prefix=/usr/local/nagios&&make&&makeinstall
[[email protected]_client~]#tar-zxfnrpe-2.14.tar.gz
[[email protected]_client~]#cdnrpe-2.14
[[email protected]_clientnrpe-2.14]#./configure--enable-ssl--with-ssl-lib&&makeall&&makeinstall-plugin&&makeinstall-daemon&&makeinstall-daemon-config
[[email protected]_clientnrpe-2.14]#chown-Rnagios:nagios/usr/local/nagios

啟動nrpe客戶端:

[[email protected]_client~]#/usr/local/nagios/bin/nrpe-c/usr/local/nagios/etc/nrpe.cfg-d
[[email protected]_client~]#netstat-anlp|grepnrpe
tcp000.0.0.0:56660.0.0.0:*LISTEN25392/nrpe
unix2[]DGRAM5245425392/nrpe

3Nrpe客戶端配置

[[email protected]_client~]#vim/usr/local/nagios/etc/nrpe.cfg

下邊是預設配置

wKioL1U7vh2CEdmFAASOqynh9e0441.jpg

其中“1”是已經配置好的命令,”2”是模板檔案,可在服務端command.cfg呼叫!

根據需要修改,加入兩行如下:

wKiom1U7vLyg2-VcAAS_wJ9OQv8419.jpg

[[email protected]_client~]#vim/usr/local/nagios/etc/nrpe.cfg
#新增允許監控的伺服器端IP
把allowed_hosts=127.0.0.1改為allowed_hosts=127.0.0.1,192.168.1.2
重啟NRPE客戶端
[[email protected]_clientetc]#netstat-anlp|grepnrpe
tcp000.0.0.0:56660.0.0.0:*LISTEN25392/nrpe
unix2[]DGRAM5245425392/nrpe
[[email protected]_clientetc]#pkillnrpe
[[email protected]_clientetc]#netstat-anlp|grepnrpe
[[email protected]_clientetc]#/usr/local/nagios/bin/nrpe-c/usr/local/nagios/etc/nrpe.cfg-d
[[email protected]_clientetc]#netstat-anlp|grepnrpe
tcp000.0.0.0:56660.0.0.0:*LISTEN25472/nrpe
unix2[]DGRAM5641025472/nrpe
[[email protected]_clientetc]#

4、Nrpe服務端配置

[[email protected]_Serverobjects]#pwd
/usr/local/nagios/etc/objects
[[email protected]_Serverobjects]#vimcommands.cfg
#在末端新增以下內容(呼叫NRPE)
definecommand{
command_namecheck_nrpe
command_line$USER1$/check_nrpe-H$HOSTADDRESS$-c$ARG1$
}

5Nagios監控端客戶機配置

[[email protected]_Server~]#cd/usr/local/nagios/etc/
[[email protected]_Serveretc]#ls
cgi.cfghtpasswd.usersnagios.cfgobjectsresource.cfg
[[email protected]_Serveretc]#vimnagios.cfg
#36行後新增以下內容
cfg_file=/usr/local/nagios/etc/objects/192.168.1.4.cfg
[[email protected]_Serverobjects]#pwd
/usr/local/nagios/etc/objects
[[email protected]_Serverobjects]#touch192.168.1.4.cfg
[[email protected]_Serverobjects]#chownnagios:nagios192.168.1.4.cfg
[[email protected]_Serverobjects]#vim192.168.1.4.cfg
#新增以下內容
definehost{
uselinux-server
host_name192.168.1.4
alias192.168.1.4
address192.168.1.4
}
definehostgroup{
hostgroup_name192.168.1.4
aliasLinuxServers
members192.168.1.4
}
defineservice{
uselocal-service
host_name192.168.1.4
service_descriptionMonitor_sda1
check_commandcheck_sda1
notifications_enabled1
}

defineservice{
uselocal-service
host_name192.168.1.4
service_descriptionMonitor_sda2
check_commandcheck_sda2
notifications_enabled1
}

6、驗證是否新增成功

服務端測試是否可以與客戶端nrpe通訊(顯示NRPE版本即代表成功)

[[email protected]_Serverobjects]#/usr/local/nagios/libexec/check_nrpe-H192.168.1.4
NRPEv2.14

如報錯

CHECK_NRPE: Error - Could not complete SSLhandshake.

killnrpe 重啟nrpe即可

[[email protected]_Server~]#/usr/local/nagios/bin/nagios-v/usr/local/nagios/etc/nagios.cfg#測試配置檔案是否存在錯誤
[[email protected]_Server~]#servicenagiosrestart
Runningconfigurationcheck...done.
Stoppingnagios:done.
Startingnagios:done.
[[email protected]_Server~]#servicehttpdrestart
停止httpd:[確定]
正在啟動httpd:[確定]

wKioL1U7viCRlj4LAAOk4OGcmVY396.jpg

7、Other

其實在Nagios服務端如果新增NRPE客戶端的時候,可以複製localhost模板,因為裡邊已經定義過很多服務,只需要修改一些即可。

cp localhost.cfg 192.168.1.4.cfg

把預設配置檔案裡面的locahost127.0.0.1check_locallinux-servers更新一下

[[email protected]_Server~]#sed-i's#localhost#192.168.1.4#g;s#127.0.0.1#192.168.1.4#g;s#check_local#check#g;s#linux-servers#192.168.1.4#g'192.168.1.4.cfg

因為客戶端是基於NRPE的,所以要把所監控的服務check_command 前加check_nrpe! 這裡不再敘述!

三、監控Windows客戶端

Nagioslibexec下有check_nt這個外掛,它就是用來檢查windows機器的服務的。其功能類似於check_nrpe。不過還需要搭配另外一個軟體NSClient++,它則類似於NRPE

NSClient++的原理如下圖

wKioL1U7viCyC4hzAACJ0zqers8208.jpg

可以看到NSClientnrpe最大的區別就是:

被監控機上安裝有nrpe,並且還有外掛,最終的監控是由這些外掛來進行的。當監控主機將監控請求發給nrpe後,nrpe呼叫外掛來完成監控。

NSClient++則不同,被監控機上只安裝NSClient,沒有任何的外掛。當監控主機將監控請求發給NSClient++後,NSClient直接完成監控,所有的監控是由NSClient完成的。

這也說明了NSClient++的一個很大的問題:不靈活、沒有可擴充套件性。它只能完成自己本身包含的監控操作,不能由一些外掛來擴充套件。好在NSClient++已經做的不錯了,基本上可以完全滿足我們的監控需求。

1、安裝NSClient++

http://www.nsclient.org/nscp/downloads 下載NSClient++-0.2.7.zip

解壓到C盤根目錄。

開啟cmd 切換到c:\NSClient++-0.2.7

執行nsclient++ /install 進行安裝

wKiom1U7vL7gxGiEAAB0Olj6pwg376.jpg

執行nsclient++ SysTray (注意大小寫),這一步是安裝系統托盤,時間稍微有點長。

wKiom1U7vL7Bs5EKAAAxqkithwI413.jpg

在執行裡面輸入services.msc 開啟“服務”,看到下圖就說明NSClient服務已經安裝上了

wKioL1U7viDzAuH_AACglU5LLcw082.jpg

雙擊開啟,點“登入”標籤,在“允許服務與桌面互動”前打勾

wKiom1U7vMCjssvwAAEtmXnMazc615.jpg

2、編輯配置檔案

編輯c:\NSClient++-0.2.7下的NSC.ini檔案。

[modules]部分的所有模組前面的註釋都去掉,除了CheckWMI.dll RemoteConfiguration.dll 這兩個。

wKioL1U7viLRwqGPAAI4IW0PkHo142.jpg

[Settings]部分設定'password'選項來設定密碼,作用是在nagios連線過來時要求提供密碼。這一步是可選的,我這裡設定為'hi'

[Settings]部分'allowed_hosts'選項的註釋去掉,並且加上執行nagios的監控主機的IP。各IP之間以逗號相隔。這個地方是支援子網的,如果寫成192.168.1.0/24則表示該子網內的所有機器都可以訪問。如果這個地方是空白則表示所有的主機都可以連線上來。

注意是[Settings]部分的,因為[NSClient]部分也有這個選項。

wKioL1U7viPQHs7NAANNT8hUJvo200.jpg

必須保證[NSClient]'port'選項並沒有被註釋,並且它的值是'12489',這是NSClient的預設監聽埠。

wKiom1U7vMGizP9BAAERSwiSFuI568.jpg

cmd 中執行nsclient++ /start啟動服務,注意所在目錄是c:\NSClient++-0.2.7

wKiom1U7vMGRaPj-AABEbxtWd8M044.jpg

服務已經啟動

wKioL1U7viOhT_-AAACBc4gWH6A325.jpg

cmd 裡面執行netstat an 可以看到已經開始監聽tcp12489埠了。

wKiom1U7vMPAi6bzAAHLcUrk-GU369.jpg

防火牆也要開啟tcp12489埠,否則nagios 檢查此服務的時候會報錯。

3、Nagios服務端配置

a、確保check_nt命令在/etc/nagios/objects/commands.cfg都被定義了。還有一點改變,應用預設配置不使用密碼了,所以在命令列末尾,加-s hi,以便讓check_nt命令使用預設的密碼”hi”

[[email protected]_Serverobjects]#pwd
/usr/local/nagios/etc/objects
[[email protected]_Serverobjects]#vimcommands.cfg

wKioL1U7viXgnSMYAACz8LWiKxo183.jpg

bWindows主機定義模板——不是真的主機,只是模板!

/etc/nagios/objects/templates.cfg,你需要模板來定義Windows主機應該怎樣配置

wKiom1U7vMSTlLJwAAOW4l0heUk887.jpg

c、核實模板存在之後,需要通知Nagios還得監視Windows。通過取消註解cfg_file行,讓Nagioswindows.cfg檔案。

[[email protected]_Serveretc]#pwd
/usr/local/nagios/etc
[[email protected]_Serveretc]#vimnagios.cfg

wKioL1U7vibz163sAABpE6duQMc545.jpg

d、定義Windows主機被監視。這一步在每個要被監視的windows主機都要做。你需要一個在windows.cfg檔案中的定義主機項

[[email protected]_Serverobjects]#pwd
/usr/local/nagios/etc/objects
[[email protected]_Serverobjects]#vimwindows.cfg

wKiom1U7vMTjp0AXAAENnlqw1mc713.jpg

4、 驗證配置

提醒:一定要確保windows的防火牆是關閉的或者開發”12489”

wKioL1U7vieA9kSYAAE0Pu9yJ9U664.jpg

wKiom1U7vMewGCAcAAYn6bouvKI634.jpg

出現了一個錯誤

NSClient - ERROR:PDH Collection thread not running.

Windows客戶端配置

開啟C:\NSClient++-0.2.7\counters.defs檔案,複製檔案裡面"English US"那部分內容,貼上到counters.defs 檔案的最後,修改Description = "Chinese"

增加以下內容(notepad++開啟會有更友好的試圖),重啟Nsclient服務即可

[0x0804]

Description ="Chinese"

NT4_SystemTotalProcessorTime= "\System\% Total Processor Time"

NT4_SystemSystemUpTime= "\System\System Up Time"

NT4_MemoryCommitLimit= "\Memory\Commit Limit"

NT4_MemoryCommitByte= "\Memory\Committed Bytes"

W2K_SystemTotalProcessorTime= "\Processor(_total)\% Processor Time"

W2K_SystemSystemUpTime= "\System\System Up Time"

W2K_MemoryCommitLimit= "\Memory\Commit Limit"

W2K_MemoryCommitByte= "\Memory\Committed Bytes"

wKioL1U7virwxtVvAAWIpiy2zv8510.jpg

但是最後還有個Warning,是關於W3SVC的,原因是Windows客戶端沒有安裝IIS

開始---控制面板---程式---開啟或關閉Windows功能,新增IIS,重啟NSClient服務即可

如下圖:

wKiom1U7vMqiTeTAAAYMC0pNFj4788.jpg

有兩個服務是出於flapping狀態

[[email protected]_Server~]#vim/usr/local/nagios/etc/nagios.cfg

雖然文件裡說預設是0,但實際為1.改為0之後就解決了flapping state

enable_flap_detection=0

wKiom1U7ydHRTSPiAAHmWdEl3PM730.jpg

重啟Nagios服務即可。

wKioL1U7yzLA8YA6AAXZWj3M_Ic267.jpg

Perfect?

分組?郵件、簡訊報警?監控HTTP關鍵字?監控Mysql主從?

下篇見……..

轉載於:https://blog.51cto.com/linuxnote/1638423