溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

監(jiān)控利器Nagios之一:監(jiān)控本地NFS和外部HTTP、MySQL服務(wù)

發(fā)布時(shí)間:2020-07-22 06:13:22 來源:網(wǎng)絡(luò) 閱讀:1947 作者:末班車New 欄目:建站服務(wù)器

監(jiān)控利器Nagios之一:監(jiān)控本地NFS和外部HTTP、MySQL服務(wù)

 

Nagios是一款開源的免費(fèi)網(wǎng)絡(luò)監(jiān)視工具,能有效監(jiān)控WindowsLinuxUnix的主機(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、MySQLnfs、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)和一些可選的插件組成。

1NRPE組件

Nrpe組件一般工作在備監(jiān)控端,朱勇用于監(jiān)控本地資源,包括負(fù)載(uptime)、CPUtop、Sar)、磁盤(df -hi)、內(nèi)存(free)、I/Oiostat)等

2、NSClient++

3、NDOUtils

Nagios的監(jiān)控完整圖:

監(jiān)控利器Nagios之一:監(jiān)控本地NFS和外部HTTP、MySQL服務(wù) 

原理如下:

通常由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.php
<?php
phpinfo();
?>


2、添加用戶

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 apache


3、安裝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)容。

監(jiān)控利器Nagios之一:監(jiān)控本地NFS和外部HTTP、MySQL服務(wù) 

[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:   0


 

4、安裝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 install


5、安裝nrpe軟件包

Nrpe是通常用于安裝被監(jiān)控端的,這里在服務(wù)端也安裝的了nrpe軟件,是因?yàn)?/span>nagios服務(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 instll


6、服務(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 nagios


2、安裝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 install


3、安裝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.cfg


2、修改配置文件、生成要檢測(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 checkconfig


3、客戶端上安裝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.64mysql里面的用戶是正常的

5)測(cè)試查看主機(jī)和服務(wù):

http://192.168.1.63/nagios/

監(jiān)控利器Nagios之一:監(jiān)控本地NFS和外部HTTP、MySQL服務(wù) 

 

實(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_nfs


3、修改配置文件

[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 reload


5、測(cè)試查看主機(jī)和服務(wù)

http://192.168.1.63/nagios/

監(jiān)控利器Nagios之一:監(jiān)控本地NFS和外部HTTP、MySQL服務(wù) 

 

實(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 restart


3、測(cè)試查看主機(jī)和服務(wù)

監(jiān)控利器Nagios之一:監(jiān)控本地NFS和外部HTTP、MySQL服務(wù) 


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI