本次實驗簡單實作用nagios監控linux主機和windows主機:
nagios包括2部分:nagios core和nagios-plugins;
nagios core:核心部分不做任何監控工作,僅是處理nagios-plugins資訊;
nagios-plugins:主要負責與各被監控端主機通信;
被監控端:通過nagos各種插件來監控資料,并傳回給主要端上的nagios-plugins;
nagios監控配置實作的簡單原理介紹:
nagios主要端,需要遠端主機的監控機制實作;通過各種插件監控:
在遠端主機運作sshd程序,能接受主要端插件發送來的指令并執行,把執行結果傳回給主要端插件,插件把獲得的結果進行分析,主要插件把分析結果傳回給nagios 核心,核心決定是否對分析結果報警;
nrpe專門用來監控linux或unix主機使用的服務(插件);用來在監控linux/unix主機上執行腳本插件以實作對這些主機資源的監控;需要在遠端主機安裝nrpe服務(inetd),且nrpe也需要安裝nagios的各種插件,這些插件在遠端主機運作監控,把監控結果通過nrpe傳回給主要端插件,後續過程同理;
nrpe依賴于nagios-plugins;
遠端主機上安裝snmpd服務,隻需在遠端主機上每隔一段時間運作snmp指令,主要插件聯系到遠端主機的snmpd服務程序161端口擷取監控資料,後續過程同理;
nsclient++:
用來監控windows主機時安裝在windows主機上的元件;是windows上wmi元件,擷取windows監控資料,傳回給主要插件;後續過程同理;

用來讓被監控的遠端linux/unix主機主動将監控資訊發送給nagios伺服器(在備援監控模式中特别要用到);在snmp中有一種trap機制,是被監控端主動通知主要端;那麼,nsca就是nagios的一種被動監控機制;主要端安裝nsca服務程序,遠端主機安裝ncsa用戶端,用戶端向主要端發送監控資料,後續過程同理;
所用裝置ip規劃說明:
nagios主要端伺服器(centos7系統):192.168.255.11
linux遠端主機(centos7系統):192.168.255.12
windows遠端主機(xp系統):192.168.255.107
在nagios主要端安裝:
1、安裝nagios基礎依賴軟體包:
]# yum install gcc glibc glibc-common gd gd-devel httpd php php-gd
2、建立nagios需要的使用者及組:
]# useradd -m nagios
]# usermod -a -G nagios apache
說明:使apache和nagios使用者都可通路nagios目錄;
3、下載下傳nagios軟體包并安裝:
]# tar xzf nagios-4.3.4.tar.gz
]# cd nagioscore-nagios-4.3.4/
]# ./configure --with-command-group=nagcmd
]# make all
]# make install
]# make install-init
安裝服務腳本;
email nagios@locaohost
4、建立nagios web監控界面登入時的使用者為nagiosadmin和密碼為nagiosadmin:
]# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
密碼為:nagiosadmin
5、啟動httpd服務;
]# systemctl start httpd
6、下載下傳并安裝nagios-plugins插件軟體包:
]# tar zxf nagios-plugins-2.2.1.tar.gz
]# cd nagios-plugins-2.2.1
]# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
]# make -j 4 && make install
7、檢視插件個數:
]# ls /usr/local/nagios/libexec/|wc -l
8、添加nagios服務到開機自啟動:
]# chkconfig --add nagios
]# chkconfig --level 3 nagios on
9、啟動nagios服務:
檢查其主配置檔案文法:
]# /usr/lcoal/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
10、關閉selinux和iptbalese:
]# sed 's/SELINUX=enforcing/SELINUX=disable/' /etc/selinux/config
]# systemctl disable firewalld
]# systemctl disable iptables
11、浏覽器登入nagios頁面:
<a href="http://192.168.255.11/nagios/">http://192.168.255.11/nagios/</a>
使用者名和密碼為:nagiosadmin
輸入此前設定的使用者名和密碼即可看見登入:
12、安裝nrpe:
安裝nrpe依賴:
]# yum install make net-snmp openssl-devel
安裝nrpe:
]# tar zxf nrpe-3.2.1.tar.gz
]# cd nrpe-3.2.1
]# ./configure
]# make install-plugin
]# make install-daemon
]# make install-config
生成nrpe的配置檔案/usr/local/nagios/etc/nrpe.cfg
以上步驟nagios伺服器端基本完成;下面對被監控端的各主機操作:
在windows上(xp系統):
通過nsclient++監控,nagios與nsclient++通信實作監控有多種方式,如通過nrpe實作監控、check_nt實作監控等;
1、下載下傳nslient++0.3.6并安裝:
滑鼠一路點下一步, 其中有一步要輸入nagios伺服器端的位址、全選上即可:
最後完成時,選擇立即啟動:
2、打開cmd指令行:
輸入:netstat -an
其中有本地端口12489(check_nt與nsclient++通信的端口)、5666(nrpe使用的端口)已經監聽;
3、在nagios主要端手動測試監控:
]# /usr/local/nagios/libexec/check_nt -H 192.168.255.107 -v UPTIME -p 12489
其它手動測試:
]# ./check_nt -H 192.168.255.107 -v CPULOAD -p 12489 -w 80 -c 90 -l 5,80,90
]# ./check_nt -H 192.168.255.107 -p 12489 -v USEDDISKSPACE -w 80 -c 90 -l C
使用配置檔案監控windows遠端主機:
在nagios主要端:
4、配置commands.conf檔案:
define command{
command_name check_nt
command_line $$USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$
}
5、配置windows.cfg檔案:
define host{
use windows-server host_name winhost alias My Windows host
address 192.168.255.107
define service{
use generic-service
host_name winhost
service_description NSClient++ Version
check_command check_nt!CLIENTVERSION
service_description Uptime
check_command check_nt!UPTIME
service_description CPU Load
check_command check_nt!CPULOAD!-l 5,80,90
service_description Memory Usage
check_command check_nt!MEMUSE!-w 80 -c 90
service_description C:\ Drive Space
check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90
service_description W3SVC
check_command check_nt!SERVICESTATE!-d SHOWALL -l W3SVC
service_description Explorer
check_command check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
6、編輯nagios.cfg配置檔案中啟用windows.cfg
cfg_file=/usr/local/nagios/etc/objects/windows.cfg
7、檢查文法:
]# bin/nagios -v etc/nagios.cfg
8、重新開機nagios服務:
]# systemctl restart nagios
9、打開浏覽器:
即可看到有winhost主機了;
以上步驟完成了簡單監控遠端windows主機;
下面示範基于nrpe監控遠端linux主機:
在遠端主機centos7上:
1、添加nagios使用者:
]# useradd -s /sbin/nologin nagios
2、nrpe依賴于nagios-plugins安裝:
]# tar zxf ngioas-plugins.1.4.15.tar.gz
]# cd nagios-plugins-1.4.15
]# ./confguire --with-nagios-user=nagios --with-nagios-group=nagios
3、安裝nrpe:
]# tar zxf nrpe-2.12.tar.gz
]# cd nrpe-2.12
]# ./configure --with-nrpe-user=nagios --with-nrpe-group=nagios --with-nagios-user=nagios --with-nagios-group=nagios --enable-command-agrs --enable-ssl
]# make instal-daemon-config
4、配置nrpe.cfg:
log_facility=daemon
debug=0
pid_file=/usr/local/nagios/var/nrpe.pid
server_port=5666
nrpe_user=nagios
nrpe_group=nagios
allowed_hosts=192.168.255.11
dont_blame_nrpe=0
allow_bash_command_substitution=0
command_timeout=60
connection_timeout=300
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5, -c 30,25,20
command[check_mem]=/usr/local/nagios/libexec/check_memory.pl -w 10% -c 3%
command[check_disk]=/usr/local/nagios/libexec/check_disk -w 15% -c 7% -p /
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%
command[check_iostat]=/usr/local/nagios/libexec/check_iostat -w 6 -c 10
5、啟動nrpe:
]# /usr/local/nagios/bin/nrpe -c /usr/local/nagos/etc/nrpe.cfg -d
配置允許主要端監控的對象:
6、在nagios主要端安裝nrpe:
7、手動測試監控l遠端inux主機:
]# libexec/check_nrpe -H 192.168.255.12
8、定義如何監控遠端主機及服務:
建立/usr/local/nagios/etc/objects/linhost.cfg檔案:
use linux-server
host_name node2
alias My linux host
address 192.168.255.12
service_description check_load
check_command check_nrpe!check_load
service_description check_mem
check_command check_nrpe!check_mem
service_description check_disk
check_command check_nrpe!check_disk
service_description check_swap
check_command check_nrpe!check_swap
service_description check_iostat
check_command check_nrpe!check_iostat
9、檢查文法:
10、重新開機nagios服務
即可看到新增加的一台linux主機了;
此時完成簡單配置nagios監控遠端linux主機和遠端windows主機的功能,具體更多配置實作,後期再見。
本文轉自 crystaleone 51CTO部落格,原文連結:http://blog.51cto.com/linsj/2068786,如需轉載請自行聯系原作者