设为首页 收藏本站
查看: 1410|回复: 0

监控利器Nagios之一:监控本地NFS和外部HTTP、MySQL服务

[复制链接]

尚未签到

发表于 2019-1-12 12:46:47 | 显示全部楼层 |阅读模式
监控利器Nagios之一:监控本地NFS和外部HTTPMySQL服务

  
Nagios是一款开源的免费网络监视工具,能有效监控WindowsLinuxUnix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。
  Nagios的特点:
1、监控服务httpMySQLnfstcpping
2、监控主机资源cpu、负载、I/O、虚拟及内存磁盘利用率等
3、支持邮件微信等报警通信。
4、可选web见面用于查看当前的网络状态等
  Nagios的组成:
Nagios监控软件是一个监控平台。Nagios监控一般由一个主程序(nagios)、一个插件程序(nagios-plugins)和一些可选的插件组成。
1、NRPE组件
Nrpe组件一般工作在备监控端,朱勇用于监控本地资源,包括负载(uptime)、CPUtopSar)、磁盘(df -hi)、内存(free)、I/Oiostat)等
2、NSClient++
3、NDOUtils
  Nagios的监控完整图:

  原理如下:
通常由nagios服务端发起获取数据请求,由check_nrpe插件携带要获取的命令,传给给监控端nrpe守护进程,默认是5666端口,nrpe进程读取nrpe.Cfg里对应服务器端发送的命令信息,通过调用本地插件获取数据,然后返回给nagios服务器端的check_nrpe,进而传给nagios战术的web页面中。
  
  一:实验目标
  1、监控外部服务器NFS,服务端当做客户端
  2、监控外部服务器的MySQL服务
  3、监控外部服务器httpd
  4、监控外部服务器的私有信息
  二:实验环境
  VMare
  作用
  主机名
  Ip地址
  安装的软件
  RHEL-6.5
  服务端
  yu61
  192.168.1.61
  Nagios软件,nagios插件,nrpeLAMP环境、NFS
  RHEL-6.5
  客户端
  yu62
  192.168.1.62
  nagios插件,nrpemysql-serverIO
  RHEL-6.5
  客户端
  yu63
  192.168.1.63
  nagios插件,nrpeNFSHttp
   #所有服务器都需要关闭防火墙
  
  三:实验步骤
安装服务端环境

  1、安装LAMP环境
Nagios服务端需要有web界面用来展示监控效果,而监控的内容是属于动态的,因此使用LAMP环境,Apache用作于web展示监控效果,PHP用于展示监控动态信息。
[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
  

  2、添加用户
Apache用户默认是存在的,属组默认的是daemon,需要把它改成nagios。这样它才能有权限访问安装的nagios目录,执行相关的cgi命令,如通过浏览器界面关闭nagios、停止某个故障对象发送报警信息等。
添加nagios帐户,以用来运行Nagios。当然也可以用root运行,但出于安全考虑而使用普通帐号来运行,并且不给这个账号分配shell登录权限
[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  

  
用于检测文件的完整性的方法有两种。一种是绝对路径,一种是启动检测
  第一种:
[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  

  #删掉启动项中178行中的“  > /dev/null 2>&1;”内容。

[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的插件包就是实现获取数据信息的命令或者程序,用过这些命令或程序,nagios可以获取到需要的数据,然后进行报警和展示。
[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是通常用于安装被监控端的,这里在服务端也安装的了nrpe软件,是因为nagios服务器端需要check_nrpe插件做被动检查,如果服务端不安装nrpe插件,那么也就没有这个插件了,其次nagios服务器端本地的资源也需要被监控,因此nagios服务器端也会被认作客户端。
[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、服务端附件
  (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)设置nagios开机自启动
[root@yu61 nagios-cn-3.2.3]# chkconfig postfix on
[root@yu61 nagios-cn-3.2.3]# chkconfig postfix --list
postfix        0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭  

  (3)邮件报警
[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;  grant select on nagdb.* to yu@'192.168.1.61';  

  4、重启mysqld、nagios服务
[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  

  #上述命令执行后,出现以下信息,表示正常,连接192.168.1.64mysql里面的用户是正常的
  5)测试查看主机和服务:
  http://192.168.1.63/nagios/

  
  实战:监控外部服务器NFS服务
  1、安装配置NFS服务器
[root@yu61 objects]# service rpcbind status
rpcbind (pid  1614) 正在运行...
[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  

  注释:为了安全起见修改权限,不修改默认为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服务
        address                 192.168.1.61
        icon_image              switch.gif
        statusmap_image         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服务组
                service_description     nfs服务
                check_command           check_nrpe!check_nfs
                }
##########################check_server_mysql_groups######################
define servicegroup{
                servicegroup_name       nfs服务组
                alias                   nfs服务器
                members                 yu61,nfs服务
}  

[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、检测服务配置及启动服务
[root@yu61 objects]# /etc/init.d/nagios checkconfig
Total Warnings: 0
Total Errors:   0
[root@yu61 objects]# /etc/init.d/nagios reload  

  5、测试查看主机和服务
  http://192.168.1.63/nagios/

  
  实战:监控外部服务器httpd服务
  1、修改配置文件
[root@yu61 objects]# cat hosts.cfg   ##最后编辑
define host{
        use                     linux-server            
        host_name               yu63
        alias                   http服务
        address                 192.168.1.63
        icon_image              switch.gif
        statusmap_image         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服务组
                service_description         http服务
                check_command           check_http
                }
##########################check_server_http-63_groups######################
define servicegroup{
                servicegroup_name         http服务组
                alias                     http服务器
                members                 yu63,http服务
}  

  
  #Check_http的命令默认就有的
  
  2、检测配置文件和重启服务
[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、测试查看主机和服务

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-662374-1-1.html 上篇帖子: 用于Nagios中监控服务器连接数脚本 下篇帖子: 监控利器Nagios之二:Nagios的细致介绍和监控外部服务器的私有信息
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表