1、Nagios是一款遵循GPLv2的開源網絡監控軟件,可用來監控指定的多種系統的主機、服務,並可在它們的工作狀態發生變化時通知管理員。它的特性包括:
1)監控網絡服務(HTTP、POP3、SMTP、PING、MySQL等)
2)監控主機資源(磁盤空間利用率、內存利用率、CPU負載等)
3)簡潔的插件設計接口,使得用戶可以輕鬆開發所需的檢測腳本
4)並行服務模式
5)輕鬆描述網絡結構,並且能夠區辨“宕機”和“主機不可達”
6)通過郵件或用戶自定義的方式將主機或服務的工作狀態變化情況通知給管理員
7)自動日誌滾動
8)支持以冗餘方式進行主機監控
9)可以通過web方式直觀的查看當前網絡狀態、通知和問題歷史、日誌文件等等,此組件爲可選
2、Nagios 工作原理
Nagios通常由一個主程序(Nagios)、一個插件程序(Nagios-plugins)和四個可選的ADDON(NRPE、NSCA、NSClient++和NDOUtils)組成。Nagios的監控工作都是通過插件實現的,因此,Nagios和Nagios-plugins是服務器端工作所必須的組件。而四個ADDON中,NRPE用來在監控的遠程Linux/Unix主機上執行腳本插件以實現對這些主機資源的監控;NSCA用來讓被監控的遠程Linux/Unix主機主動將監控信息發送給Nagios服務器(這在冗餘監控模式中特別要用到);NSClient++是用來監控Windows主機時安裝在Windows主機上的組件;而NDOUtils則用來將Nagios的配置信息和各event產生的數據存入數據庫,以實現這些數據的快速檢索和處理。
3、監控的基本流程:
當Nagios需要監控某個遠程工作站linux主機的服務或者資源情況時:
1).nagios運行check_nrpe插件,我們要在nagios配置文件中告訴它要檢查什麼.
2).check_nrpe插件會通過SSL連接到遠程的NRPE daemon.
3).NRPE daemon會運行相應的nagios插件來執行檢查本地資源或服務.
4).NRPE daemon將檢查的結果返回給check_nrpe插件,插件將其遞交給nagios做處理.
注意:NRPE daemon需要nagios插件安裝在遠程被監控linux主機上,否則,daemon不能做任何的監控.別外因爲它們間的通信是加密的SSL,所以在編譯安裝時都要加上選項, ./configure --enable-ssl --with-ssl-lib=/lib/,否則也會出錯.
----------------------------------------------------------------------------------------------------------
實驗環境配置
1、 環境搭建
Server: nagios nagios-plugins nrpe
工作站:nagios-plugins nrpe
# rpm -q httpd gcc glibc glibc-common gd gd-devel
#yum -y httpd gcc glibc glibc-common gd gd-devel
在server 端配置
1、安裝nagios
#tar zxvf tar zxvf nagios-3.2.1.tar.gz
#cd nagios-3.2.1
#./configure --prefix=/usr/local/nagios --with-command-group=nagcmd --with-gd-lib=/usr/lib --with-gd-inc=/usr/include
#make all
#make install
#make install-init
#make install-config
#make install-commandmode
#make install-webconf //可以自動安裝在httpd.conf中的配置,生成nagios.conf;
#tar zxvf nagios-plugins-1.4.15.tar.gz
#cd nagios-plugins-1.4.15
#./configure --with-nagios-user=nagios --with-nagios-group=nagios
#make
#make install
#tar zxvf nagios-nrpe_2.8.1.orig.tar.gz
#cd nrpe-2.8.1
#./configure --enable-ssl --with-ssl-lib=/lib/
#rpm -qa | grep ssl 保證:能夠抓到 前兩個
openssl-0.9.8e-12.el5
openssl-devel-0.9.8e-12.el5
openssl-perl-0.9.8e-12.el5
#make all
#make install-plugin
4、vim 編輯commands.cfg文件定義nrpe對的使用
#vim /usr/local/nagios/etc/objects/commands.cfg
//添加如下幾行使支持check_nrep
#check_nrep
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
5、配置監控對象(工作站及其服務等)
#vim /usr/local/nagios/etc/nagios.cfg
//在losthost.cfg下添加
cfg_file=/usr/local/nagios/etc/objects/linux.cfg
6、新建linux.cfg設置要監控的內容
#vim /usr/local/nagios/etc/object/linux.cfg
use linux-server
host_name mylinux //需要修改工作站的主機名
alias mylinux
address 192.168.0.44 //工作站主機IP
}
define service{
use generic-service
host_name mylinux
service_description check-swap //對下面操作的描述
check_command check_nrpe!check_swap //執行檢測交換分區命令,監控swap
}
define service{
use generic-service
host_name mylinux
service_description check-load
check_command check_nrpe!check_load //監控負載
}
define service{
use generic-service
host_name mylinux
service_description check-disk
check_command check_nrpe!check_had1 //監控硬盤
}
define service{
use generic-service
host_name mylinux
service_description check-users
check_command check_nrpe!check_users //監控用戶(使用)情況
}
define service{
use generic-service
host_name mylinux
service_description otal_procs
check_command check_nrpe!check_total_procs //監控進程
}
//對以上的linux.cfg文件編輯如果有錯,將會導致nagios無法啓動;
//修改工作站主機的主機名爲mylinux,保證能夠#ping mylinux 通信正常,可以選擇
#echo "192.168.0.44 mylinux " >> /etc/hosts
#echo"192.168.0.15 nagios " >> /etc/hosts
//在服務器端
#echo"192.168.0.15 nagios " >> /etc/hosts
#echo "192.168.0.44 mylinux " >> /etc/hosts
7、準備啓動nagios服務
#setenforce 0 保證selinux處於關閉狀態
#service iptables stop 或者開放80,5666端口(http/nrep)
#chkconfig --add nagios //添加nagios服務到系統服務隊列
#chkconfig nagios on //開機自動啓動服務
#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
//檢查nagios的配置文件的正確性
//如果上面有錯誤,請檢查系統服務時間是否同步,新建的linux.cfg是否有語法錯誤!
//在commands.cfg是否添加對nrep使用等
//保證上述命令爭取執行
// 參考:
//Total Warnings: 0
//Total Errors: 0
#service nagios start
3、配置工作站上的nagios-plugin/nrpe等
1、安裝nagios-plugin
#useradd nagios
#passwd nagios
#tar -zxvf nagios-plugins-1.4.15.tar.gz
#cd nagios-plugins-1.4.15
#./configure --with-nagios-user=nagios --with-nagios-group=nagios
#make
#make install
#chown –R nagios.nagios /usr/local/nagios
3、安裝nrpe服務使之能夠通信
#tar zxvf nagios-nrpe_2.8.1.orig.tar.gz
#cd nagios-nrpe_2.8.1
#./configure --enable-ssl --with-ssl-lib=/usr/lib/
#make all
#make install-plugin
#make install-daemon
#make install-daemon-config
4、配置nrpe信息
#vim /usr/local/nagios/etc/nrpe.cfg
allowed_host=192.168.0.15,127.0.0.1 //允許192.168.0.15服務器端對其監控
#/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d
//檢測nrep配置文件的正確性
#netstat -an | grep 5666 //是否監聽5666用於nrpe通信的端口
//在服務端執行檢測工作站nrpe信息
#/usr/local/nagios/libexec/check_nrpe -H 192.168.0.44
NRPE v2.8.1
//在工作站執行檢測自己的nrpe信息
#/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1
NRPE v2.8.1
5、配置工作站上的被檢測上網信息
#vim/usr/local/nagios/etc/nrpe.cfg
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p /dev/hda1
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%
6、總結如果沒有什麼錯誤則可以監控linux客戶機的Disk,swap,users,memory
圖片參考: