監(jiān)控利器Nagios之一:監(jiān)控本地NFS和外部HTTP、MySQL服務(wù)
站在用戶的角度思考問題,與客戶深入溝通,找到普定網(wǎng)站設(shè)計(jì)與普定網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站建設(shè)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國(guó)際域名空間、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋普定地區(qū)。Nagios是一款開源的免費(fèi)網(wǎng)絡(luò)監(jiān)視工具,能有效監(jiān)控Windows、Linux和Unix的主機(jī)狀態(tài),交換機(jī)路由器等網(wǎng)絡(luò)設(shè)置,打印機(jī)等。在系統(tǒng)或服務(wù)狀態(tài)異常時(shí)發(fā)出郵件或短信報(bào)警第一時(shí)間通知網(wǎng)站運(yùn)維人員,在狀態(tài)恢復(fù)后發(fā)出正常的郵件或短信通知。
Nagios的特點(diǎn):
1、監(jiān)控服務(wù)http、MySQL、nfs、tcp、ping等
2、監(jiān)控主機(jī)資源cpu、負(fù)載、I/O、虛擬及內(nèi)存磁盤利用率等
3、支持郵件微信等報(bào)警通信。
4、可選web見面用于查看當(dāng)前的網(wǎng)絡(luò)狀態(tài)等
Nagios的組成:
Nagios監(jiān)控軟件是一個(gè)監(jiān)控平臺(tái)。Nagios監(jiān)控一般由一個(gè)主程序(nagios)、一個(gè)插件程序(nagios-plugins)和一些可選的插件組成。
1、NRPE組件
Nrpe組件一般工作在備監(jiān)控端,朱勇用于監(jiān)控本地資源,包括負(fù)載(uptime)、CPU(top、Sar)、磁盤(df -hi)、內(nèi)存(free)、I/O(iostat)等
2、NSClient++
3、NDOUtils
Nagios的監(jiān)控完整圖:
原理如下:
通常由nagios服務(wù)端發(fā)起獲取數(shù)據(jù)請(qǐng)求,由check_nrpe插件攜帶要獲取的命令,傳給給監(jiān)控端nrpe守護(hù)進(jìn)程,默認(rèn)是5666端口,nrpe進(jìn)程讀取nrpe.Cfg里對(duì)應(yīng)服務(wù)器端發(fā)送的命令信息,通過調(diào)用本地插件獲取數(shù)據(jù),然后返回給nagios服務(wù)器端的check_nrpe,進(jìn)而傳給nagios戰(zhàn)術(shù)的web頁(yè)面中。
一:實(shí)驗(yàn)?zāi)繕?biāo)
1、監(jiān)控外部服務(wù)器NFS,服務(wù)端當(dāng)做客戶端
2、監(jiān)控外部服務(wù)器的MySQL服務(wù)
3、監(jiān)控外部服務(wù)器httpd
4、監(jiān)控外部服務(wù)器的私有信息
二:實(shí)驗(yàn)環(huán)境
VMare | 作用 | 主機(jī)名 | Ip地址 | 安裝的軟件 |
RHEL-6.5 | 服務(wù)端 | yu61 | 192.168.1.61 | Nagios軟件,nagios插件,nrpe,LAMP環(huán)境、NFS |
RHEL-6.5 | 客戶端 | yu62 | 192.168.1.62 | nagios插件,nrpe、mysql-server、IO |
RHEL-6.5 | 客戶端 | yu63 | 192.168.1.63 | nagios插件,nrpe、NFS、Http、 |
#所有服務(wù)器都需要關(guān)閉防火墻
三:實(shí)驗(yàn)步驟
安裝服務(wù)端環(huán)境
1、安裝LAMP環(huán)境
Nagios服務(wù)端需要有web界面用來展示監(jiān)控效果,而監(jiān)控的內(nèi)容是屬于動(dòng)態(tài)的,因此使用LAMP環(huán)境,Apache用作于web展示監(jiān)控效果,PHP用于展示監(jiān)控動(dòng)態(tài)信息。
[root@yu61 ~]# mkdir -p /home/yu/tools [root@yu61 ~]# yum install -y httpd gccglibc glibc-common php gd gd-devel libpng libmng libjpeg zlib mysql-server [root@yu61 ~]# service iptables stop [root@yu61 ~]# service httpd restart [root@yu61 ~]# vim /var/www/html/index.php2、添加用戶
Apache用戶默認(rèn)是存在的,屬組默認(rèn)的是daemon,需要把它改成nagios。這樣它才能有權(quán)限訪問安裝的nagios目錄,執(zhí)行相關(guān)的cgi命令,如通過瀏覽器界面關(guān)閉nagios、停止某個(gè)故障對(duì)象發(fā)送報(bào)警信息等。
添加nagios帳戶,以用來運(yùn)行Nagios。當(dāng)然也可以用root運(yùn)行,但出于安全考慮而使用普通帳號(hào)來運(yùn)行,并且不給這個(gè)賬號(hào)分配shell登錄權(quán)限
[root@yu61 tools]# useradd -s /sbin/nollogin nagios [root@yu61 tools]# groupadd nagcmd [root@yu61 tools]# usermod -a -G nagcmd nagios [root@yu61 tools]# usermod -a -G nagcmd apache3、安裝nagios主程序
[root@yu61 tools]# tar jxvf nagios-cn-3.2.3.tar.bz2 [root@yu61 tools]# cd nagios-cn-3.2.3 [root@yu61 nagios-cn-3.2.3]# ./configure --with-command-group=nagcmd [root@yu61 nagios-cn-3.2.3]#make all [root@yu61 nagios-cn-3.2.3]# make install [root@yu61 nagios-cn-3.2.3]# make install-init [root@yu61 nagios-cn-3.2.3]#make install-commandmode [root@yu61 nagios-cn-3.2.3]# make install-config [root@yu61 nagios-cn-3.2.3]# make install-webconf [root@yu61 nagios-cn-3.2.3]# htpasswd -c /usr/local/nagios/etc/htpasswd.users mobanche用于檢測(cè)文件的完整性的方法有兩種。一種是絕對(duì)路徑,一種是啟動(dòng)檢測(cè)
第一種:
[root@yu61 nagios]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg第二種:
[root@yu61 nrpe-2.12]# vim /etc/init.d/nagios#刪掉啟動(dòng)項(xiàng)中178行中的“ > /dev/null 2>&1;”內(nèi)容。
[root@yu61 objects]# vim /usr/local/nagios/etc/cgi.cfg use_authentication=0 #改為0 [root@yu61 nrpe-2.12]# /etc/init.d/nagios checkconfig Total Warnings: 0 Total Errors: 04、安裝nagios-plugins插件包
Nagios的插件包就是實(shí)現(xiàn)獲取數(shù)據(jù)信息的命令或者程序,用過這些命令或程序,nagios可以獲取到需要的數(shù)據(jù),然后進(jìn)行報(bào)警和展示。
[root@yu61 tools]# yum install perl-devel openssl-devel -y [root@yu61 tools]# tar zxvf nagios-plugins-1.4.16.tar.gz [root@yu61 tools]# cd nagios-plugins-1.4.16 [root@yu61 nagios-plugins-1.4.16]# ./configure --with-nagios-user=nagios --with-nagios-group=nagcmd --enable-perl-modules --with-mysql [root@yu61 nagios-plugins-1.4.16]# make -j 4 [root@yu61 nagios-plugins-1.4.16]# make install5、安裝nrpe軟件包
Nrpe是通常用于安裝被監(jiān)控端的,這里在服務(wù)端也安裝的了nrpe軟件,是因?yàn)閚agios服務(wù)器端需要check_nrpe插件做被動(dòng)檢查,如果服務(wù)端不安裝nrpe插件,那么也就沒有這個(gè)插件了,其次nagios服務(wù)器端本地的資源也需要被監(jiān)控,因此nagios服務(wù)器端也會(huì)被認(rèn)作客戶端。
[root@yu61 tools]# tar zxvf nrpe-2.12.tar.gz [root@yu61 tools]# cd nrpe-2.12 [root@yu61 nrpe-2.12]# ./configure [root@yu61 nrpe-2.12]# make all && make instll6、服務(wù)端附件
(1)檢查登錄nagios的管理賬戶信息
[root@yu61 nagios-cn-3.2.3]# grep AuthUserFile /etc/httpd/conf.d/nagios.conf AuthUserFile /usr/local/nagios/etc/htpasswd.users AuthUserFile /usr/local/nagios/etc/htpasswd.users AuthUserFile /usr/local/nagios/etc/htpasswd.users(2)設(shè)置nagios開機(jī)自啟動(dòng)
[root@yu61 nagios-cn-3.2.3]# chkconfig postfix on [root@yu61 nagios-cn-3.2.3]# chkconfig postfix --list postfix 0:關(guān)閉1:關(guān)閉2:啟用3:啟用4:啟用5:啟用6:關(guān)閉(3)郵件報(bào)警
[root@yu61 nagios-cn-3.2.3]# /etc/init.d/httpd reload [root@yu61 nagios-cn-3.2.3]# sed -n '35p ' /usr/local/nagios/etc/objects/contacts.cfg email 741215208@qq.com; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ****** [root@yu61 nagios-cn-3.2.3]# /etc/init.d/postfix start [root@yu61 nagios-cn-3.2.3]# lsof -i :25 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME master 2094 root 12u IPv4 12921 0t0 TCP localhost:smtp (LISTEN) master 2094 root 13u IPv6 12923 0t0 TCP localhost:smtp (LISTEN) [root@yu61 nagios-cn-3.2.3]# mail -s "test" 741215208@qq.com < /etc/hosts [root@yu61 nagios-cn-3.2.3]# mailq -Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient------- A1C723FFA6 599 Sun May 21 12:23:56 root@yu61.localdomain (lost connection with mx2.qq.com[14.17.41.170] while performing the HELO handshake) 741215208@qq.com安裝客戶端端環(huán)境
注釋:三臺(tái)客戶端同時(shí)安裝,安裝的內(nèi)容一樣。
1、添加用戶
[root@yu62 ~]# mkdir -p /home/yu/tools [root@yu62 ~]# cd /home/yu/tools/ [root@yu62 tools]# yum install perl-devel openssl-devel -y [root@yu62 tools]# useradd -s /sbin/nologin nagios [root@yu62 tools]# groupadd nagcmd [root@yu62 tools]# usermod -G nagcmd nagios2、安裝nagios-plugins插件包 [root@yu62 tools]# tar zxvf nagios-plugins-1.4.16.tar.gz [root@yu62 tools]# cd nagios-plugins-1.4.16 [root@yu62 nagios-plugins-1.4.16]# ./configure --with-nagios-user=nagios --with-nagios-group=nagcmd --enable-perl-modules --with-mysql [root@yu62 nagios-plugins-1.4.16]# make -j 4 && make install3、安裝nrpe軟件包
[root@yu62 tools]# tar zxvf nrpe-2.12.tar.gz [root@yu62 tools]# cd nrpe-2.12 [root@yu62 nrpe-2.12]# ./configure && make all && make install實(shí)戰(zhàn):監(jiān)控外部服務(wù)器MySQL服務(wù)
1、服務(wù)端修改配置文件
root@yu61 ~]# cd /usr/local/nagios/etc [root@yu61 etc]# vim nagios.cfg 改:cfg_file=/usr/local/nagios/etc/objects/localhost.cfg 為:注釋localhost這一項(xiàng),添加以下兩行: #cfg_file=/usr/local/nagios/etc/objects/localhost.cfg cfg_file=/usr/local/nagios/etc/objects/hosts.cfg cfg_file=/usr/local/nagios/etc/objects/service.cfg2、修改配置文件、生成要檢測(cè)的主機(jī)配置文件和服務(wù)配置文件:
[root@yu61 etc]# cd objects/ [root@yu61 objects]# vim hosts.cfg # 添加以下內(nèi)容 ####################chreck_host########################### define host{ use linux-server host_name yu62 alias mysql服務(wù) address 192.168.1.64 icon_p_w_picpath switch.gif statusmap_p_w_picpath switch.gd2 2d_coords 100,200 3d_coords 100,200,100 }[root@yu61 objects]# vim service.cfg # 添加以下內(nèi)容 ###################check_server_mysql############################# define service{ use local-service host_name yu62 service_groups mysql服務(wù)組 service_description mysql服務(wù) check_command check_mysql } ##########################check_server_mysql_groups#########################define servicegroup{ servicegroup_name mysql服務(wù)組 alias mysql服務(wù)器 members yu62,mysql服務(wù) } [root@yu61 objects]# vim commands.cfg #在此文件最后添加以下內(nèi)容: define command{ command_name check_mysql command_line $USER1$/check_mysql -H$HOSTADDRESS$ -u nagdb -d nagdb } [root@yu61 nrpe-2.12]# /etc/init.d/nagios checkconfig3、客戶端上安裝MySQL服務(wù)
[root@xuegod62 ~]# yum install mysql-server -y [root@xuegod62 ~]# service mysqld restart [root@xuegod62~]# mysql mysql>create database nagdb; mysql> grant select on nagdb.* to yu@'192.168.1.61';4、重啟mysqld、nagios服務(wù)
[root@yu62 ~]# /etc/init.d/httpd restart [root@yu62 ~]# /etc/init.d/mysqld restart [root@yu61 ~]# /etc/init.d/nagios restart [root@yu61 objects]#/usr/local/nagios/libexec/check_mysql -H 192.168.1.64 -u nagdb -d nagdb Uptime: 516 Threads: 1 Questions: 6 Slow queries: 0 Opens: 15 Flush tables: 1 Open tables:8 Queries per second avg: 0.11#上述命令執(zhí)行后,出現(xiàn)以下信息,表示正常,連接192.168.1.64的mysql里面的用戶是正常的
5)測(cè)試查看主機(jī)和服務(wù):
http://192.168.1.63/nagios/
實(shí)戰(zhàn):監(jiān)控外部服務(wù)器NFS服務(wù)
1、安裝配置NFS服務(wù)器
[root@yu61 objects]# service rpcbind status rpcbind (pid 1614) 正在運(yùn)行... [root@yu61 ~]# vim /etc/exports /tmp *(rw) [root@yu61 ~]# /etc/init.d/nfs restart [root@yu61 ~]# showmount -e 192.168.1.61 Export list for 192.168.1.61: /tmp *2、編輯check_nfs命令腳本
[root@yu61 libexec]# pwd /usr/local/nagios/libexec [root@yu61 libexec]# cat check_nfs check_nfs #!/bin/bash . /data1/server/nagios/libexec/utils.sh CHECKNAME="Mount NFS" RESULT="" EXIT_STATUS=$STATE_OK NFSFSTAB=`LC_ALL=C awk '!/^#/ && $3 ~ /^nfs/ && $3 != "nfsd" && $4 !~ /noauto/ { print $1 }' /etc/fstab` NFSMTAB=`LC_ALL=C awk '$3 ~ /^nfs/ && $3 != "nfsd" && $2 != "/" { print $1 }' /proc/mounts` theend() { echo $RESULT exit $EXIT_STATUS } CHECK_MOUNT(){ LIST="" for list in $NFSFSTAB do NFS_MOUNT=$(LC_ALL=C cat /proc/mounts |cut -d " " -f 1|grep "${list}$") if [ -z "${NFS_MOUNT}" ];then LIST="$LIST$list " fi done } if [ -n "${NFSMTAB}" ];then CHECK_MOUNT if [ -z "${LIST}" ];then RESULT="$CHECKNAME OK - NFS BE MOUNTED PROPERLY" EXIT_STATUS=$STATE_OK else RESULT="$CHECKNAME WARNING - ${LIST} NOT BE MOUNTED" EXIT_STATUS=$STATE_WARNING fi else RESULT="$CHECKNAME CRITICAL - ALL NFS NOT BE MOUNTED" EXIT_STATUS=$STATE_CRITICAL fi Theend注釋:為了安全起見修改權(quán)限,不修改默認(rèn)為644 root
[root@yu61 libexec]# chmod 755 check_nfs [root@yu61 libexec]# chown nagios:nagcmd check_nfs [root@yu61 libexec]# ll check_nfs -rwxr-xr-x 1 nagios nagcmd 973 5月 22 13:27 check_nfs3、修改配置文件
[root@yu61 objects]# cat hosts.cfg ##末尾添加 ####################chreck_host########################### define host{ use linux-server host_name yu61 alias nfs服務(wù) address 192.168.1.61 icon_p_w_picpath switch.gif statusmap_p_w_picpath switch.gd2 2d_coords 100,200 3d_coords 100,200,100 }[root@yu61 objects]# cat service.cfg ##末尾添加 ###################check_server_mysql############################# define service{ use local-service host_name yu61 service_groups nfs服務(wù)組 service_description nfs服務(wù) check_command check_nrpe!check_nfs } ##########################check_server_mysql_groups###################### define servicegroup{ servicegroup_name nfs服務(wù)組 alias nfs服務(wù)器 members yu61,nfs服務(wù) }[root@yu61 objects]# vim commands.cfg ##末尾添加 #'check_nrpe' command definition definecommand{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c$ARG1$ } define command{ command_name check_nfs command_line $USER1$/check_nfs }4、檢測(cè)服務(wù)配置及啟動(dòng)服務(wù)
[root@yu61 objects]# /etc/init.d/nagios checkconfig Total Warnings: 0 Total Errors: 0 [root@yu61 objects]# /etc/init.d/nagios reload5、測(cè)試查看主機(jī)和服務(wù)
http://192.168.1.63/nagios/
實(shí)戰(zhàn):監(jiān)控外部服務(wù)器httpd服務(wù)
1、修改配置文件
[root@yu61 objects]# cat hosts.cfg ##最后編輯 define host{ use linux-server host_name yu63 alias http服務(wù) address 192.168.1.63 icon_p_w_picpath switch.gif statusmap_p_w_picpath switch.gd2 2d_coords 100,200 3d_coords 100,200,100 }[root@yu61 objects]# cat service.cfg ##最后添加 ###################check_server_httpd-63############################# define service{ use local-service host_name yu63 service_groups http服務(wù)組 service_description http服務(wù) check_command check_http } ##########################check_server_http-63_groups###################### define servicegroup{ servicegroup_name http服務(wù)組 alias http服務(wù)器 members yu63,http服務(wù) }#Check_http的命令默認(rèn)就有的
2、檢測(cè)配置文件和重啟服務(wù)
[root@yu61 objects]# /etc/init.d/nagios checkconfig Total Warnings: 0 Total Errors: 0 [root@yu63 nrpe-2.12]# service iptables stop [root@yu63 nrpe-2.12]# setenforce 1 setenforce: SELinux is disabled [root@yu63 nrpe-2.12]# service httpd restart3、測(cè)試查看主機(jī)和服務(wù)
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。