1. 程式人生 > 實用技巧 >ubuntu實現nagios對linux和windows監控

ubuntu實現nagios對linux和windows監控

與在redhat安裝nagios相比,在ubuntu安裝nagios監控非常簡單,直接通過

apt-get即可從ubuntu的伺服器上下載元件自動安裝。

sudoapt-getinstallnagios3nagios-nrpe-plugin

給nagiosadmin新增一個密碼:

sudohtpasswd/etc/nagios3/htpasswd.usersnagiosadmin

新增一個使用者:

sudohtpasswd/etc/nagios3/htpasswd.usersdragon

在被監控主機上安裝nrpe,

sudoapt-getinstallnagios-nrpe-server


sudo vi /etc/nagios/nrpe.cfg

找到allowed_host新增監控主機的ip地址:

allowed_hosts=127.0.0.1,192.168.1.112

Service nrpe restart

在server端測試

/usr/lib/nagios/plugins/check_nrpe -H 192.168.1.124,測試成功的話會輸出客戶機的NRPE版本號。

NRPE_2.1.4


在server新建監控主機定義檔案server02.cfg

sudocp/etc/nagios3/conf.d/localhost_nagios2.cfg\/etc/nagios3/conf.d/server02.cfg

編輯/etc/nagios3/conf.d/server02.cfg

:注意修改address為被監控主機的地址,並新增DNShttpssh的服務監控。

define host{

use generic-host
host_name server02
alias server-02
address 192.168.1.124
}

define service{
use generic-service
host_name server02
service_description Disk Space

check_command check_all_disks!20%!10%
}

define service{
use generic-service
host_name server02
service_description Current Users
check_command check_users!20!50
}

define service{
use generic-service
host_name server02
service_description Total Processes
check_command check_procs!250!400
}

define service{
use generic-service
host_name server02
service_description Current Load
check_command check_load!5.0!4.0!3.0!10.0!6.0!4.0
}
define service{
use generic-service
host_name server02
service_description DNS
check_command check_dns!192.168.1.124
}

define service {
host_name server02
service_description HTTP
check_command check_http
use generic-service
notification_interval 0
}

# check that ssh services are running
define service {
host_name server02
service_description SSH
check_command check_ssh
use generic-service

notification_interval 0

}

測試nagios配置是否成功

nagios3 -v /etc/nagios3/nagios.cfg

Error in configuration file '/etc/nagios3/nagios.cfg' - Line 470 (Check result path is not a valid directory)

這個檔案是nagios用於儲存監測主機的結果和未能監測到的服務資訊

check_result_path=/var/lib/nagios3/spool/checkresults

我發現本機上並沒有這個檔案目錄的存在,所以我新建了這個檔案,可能會出現啟動nagios沒有報錯,但無法看到監控資訊的情況,檢視日誌提示Jul 16 20:00:59 fileserver nagios: Error: Could not open check result queue directory '/var/nagios/spool/checkresults' for reading.”.

Sudomkdir/var/lib/nagios3/spool/checkresults

Sudochmodnagios:nagios/var/lib/nagios3/spool/checkresults


啟動nagios

Servicenagios3start

開啟在瀏覽器位址列輸入:“ip\nagios3”

wKiom1P4sFrRBhtYAACJiO8GdXY507.jpg

利用NSClient++監控遠端Windows上的“本地資訊”

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

NSClient++的原理如下圖

wKioL1P4sYSgPuWeAACKs3sDY-0575.jpg

可以看到NSClient與nrpe最大的區別就是:

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

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

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

安裝NSClient++

wKioL1P4shXxzDhaAAFTiZ2k0bQ029.jpg

使用check_nt可以看到winserver上nsclient++的監控情況(注意需要指定埠為:12489)

要注意兩臺主機之間網路是否聯通,使用ping測試網路聯通,winserver的防火牆有可能阻斷兩臺主機之間的網路通訊,可以選擇關掉。

wKioL1P4sjuTdA1mAADGAGQvJlA919.jpg

編輯nagios server端的nt.cfg裡面的命令check_nt增加一些引數。

sudo vi /etc/nagios-plugins/config/nt.cfg

wKiom1P4sTuQlGJ3AAA6wcXfc6U030.jpg

Sudo vi /etc/nagios3/objects/windows.cfg

define host{

use generic-host ;Inherit default values from a template

host_name Nagios-Windows ;The name we're giving to this host

alias MyWindows Server ; A longer name associated with the host

address 192.168.1.139 ;IP address of the host

}

define hostgroup{

hostgroup_name windows-servers; The name of the hostgroup

alias WindowsServers ; Long name of the group

}

define service{

use generic-service

host_name Nagios-Windows

service_description NSClient++Version

check_command check_nt!CLIENTVERSION

}

define service{

use generic-service

host_name Nagios-Windows

service_description Uptime

check_command check_nt!UPTIME

}

define service{

use generic-service

host_name Nagios-Windows

service_description CPULoad

check_command check_nt!CPULOAD!-l5,80,90

}

define service{

use generic-service

host_name Nagios-Windows

service_description MemoryUsage

check_command check_nt!MEMUSE!-w80 -c 90

}

define service{

use generic-service

host_name Nagios-Windows

service_description C:\Drive Space

check_command check_nt!USEDDISKSPACE!-lc -w 80 -c 90

}

define service{

use generic-service

host_name Nagios-Windows

service_description W3SVC

check_command check_nt!SERVICESTATE!-dSHOWALL -l W3SVC

}

define service{

use generic-service

host_name Nagios-Windows

service_description Explorer

check_command check_nt!PROCSTATE!-dSHOWALL -l Explorer.exe

}


測試nagios配置是否成功

nagios3 -v /etc/nagios3/nagios.cfg

service nagios3 restart

Sudo vi /etc/nagios3/nagios.cfg把#cfg_file=/etc/nagios3/objects/windows.cfg前面的#給去掉。使用“nagios3 -v /etc/nagios3/nagios.cfg”測試是否有錯。沒有報錯的話,開啟nagios3.

用瀏覽器開啟nagios的控制檯等待一段時間之後就可以看到實驗效果了。

wKioL1P4sm2iLasjAADxLc28YFk262.jpg

本文允許轉載但務必保留出處:(http://dragon123.blog.51cto.com/9152073/1543915

轉載於:https://blog.51cto.com/dragon123/1543915