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

2024-02-28 23:40

本文主要是介绍监控利器Nagios之一:监控本地NFS和外部HTTP、MySQL服务,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

 

Nagios是一款开源的免费网络监视工具,能有效监控WindowsLinuxUnix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。

Nagios的特点:

1、监控服务httpMySQLnfstcpping

2、监控主机资源cpu、负载、I/O、虚拟及内存磁盘利用率等

3、支持邮件微信等报警通信。

4、可选web见面用于查看当前的网络状态等

Nagios的组成:

Nagios监控软件是一个监控平台。Nagios监控一般由一个主程序(nagios)、一个插件程序(nagios-plugins)和一些可选的插件组成。

1NRPE组件

Nrpe组件一般工作在备监控端,朱勇用于监控本地资源,包括负载(uptime)、CPUtopSar)、磁盘(df -hi)、内存(free)、I/Oiostat)等

2NSClient++

3NDOUtils

Nagios的监控完整图:

wKioL1lJI1uxed3OAABBR53LMgA875.png 

原理如下:

通常由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用于展示监控动态信息。

1
2
3
4
5
6
7
8
[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用户默认是存在的,属组默认daemon,需要把它改成nagios。这样它才能有权限访问安装的nagios目录,执行相关的cgi命令,如通过浏览器界面关闭nagios、停止某个故障对象发送报警信息等。

添加nagios帐户,以用来运行Nagios。当然也可以用root运行,但出于安全考虑而使用普通帐号来运行,并且不给这个账号分配shell登录权限

1
2
3
4
[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主程序

1
2
3
4
5
6
7
8
9
10
[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


 

用于检测文件的完整性的方法有两种。一种是绝对路径,一种是启动检测

第一种:

1
[root@yu61 nagios] # /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg


第二种:

1
[root@yu61 nrpe-2.12] # vim /etc/init.d/nagios


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

wKiom1lJI3HhCVOCAAAfRnEMNFQ560.png 

1
2
3
4
5
6
[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可以获取到需要的数据,然后进行报警和展示。

1
2
3
4
5
6
[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服务器端也会被认作客户端。

1
2
3
4
[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的管理账户信息

1
2
3
4
[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开机自启动

1
2
3
[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)邮件报警

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[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


 

安装客户端端环境

注释:三台客户端同时安装,安装的内容一样。

1、添加用户

1
2
3
4
5
6
[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


1
2
3
4
5
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软件包

1
2
3
[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


 

实战:监控外部服务器MySQL服务

1、服务端修改配置文件

1
2
3
4
5
6
7
root@yu61 ~] # cd /usr/local/nagios/etc
[root@yu61 etc] # vim nagios.cfg
改:cfg_file= /usr/local/nagios/etc/objects/localhost .cfg
为:注释localhost这一项,添加以下两行:
#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、修改配置文件、生成要检测的主机配置文件和服务配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@yu61 etc] # cd objects/
[root@yu61 objects] # vim hosts.cfg  # 添加以下内容
####################chreck_host###########################
define host{
         use                     linux-server            
         host_name               yu62
         alias                    mysql服务
         address                 192.168.1.64
         icon_image              switch.gif
         statusmap_image         switch.gd2
         2d_coords               100,200
         3d_coords               100,200,100
         }


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@yu61 objects] # vim service.cfg # 添加以下内容
###################check_server_mysql#############################
define service{
                 use                      local -service
                 host_name               yu62
                 service_groups          mysql服务组
                 service_description     mysql服务
                 check_command           check_mysql
                 }
  
##########################check_server_mysql_groups#########################define servicegroup{
                 servicegroup_name       mysql服务组
                 alias                    mysql服务器
                 members                 yu62,mysql服务
}
1
2
3
4
5
6
[root@yu61 objects] # vim commands.cfg #在此文件最后添加以下内容:
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服务

1
2
3
4
5
[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服务

1
2
3
4
5
[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/

wKioL1lJI36ALgDCAAAXHQQFZMY410.png 

 

实战:监控外部服务器NFS服务

1、安装配置NFS服务器

1
2
3
4
5
6
7
8
[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命令脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
[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

1
2
3
4
[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、修改配置文件

1
2
3
4
5
6
7
8
9
10
11
12
[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
         }


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[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服务
}


1
2
3
4
5
6
7
8
9
10
11
[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、检测服务配置及启动服务

1
2
3
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/

wKiom1lJI4zT_xI4AAAu27nGztU009.png 

 

实战:监控外部服务器httpd服务

1、修改配置文件

1
2
3
4
5
6
7
8
9
10
11
[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
         }


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[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、检测配置文件和重启服务

1
2
3
4
5
6
7
[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、测试查看主机和服务

wKiom1lJI5jQI8XfAAAxqs9nmR8822.png 










本文转自 于学康 51CTO博客,原文链接:http://blog.51cto.com/blxueyuan/1940319,如需转载请自行联系原作者

这篇关于监控利器Nagios之一:监控本地NFS和外部HTTP、MySQL服务的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/756984

相关文章

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

SQL中的外键约束

外键约束用于表示两张表中的指标连接关系。外键约束的作用主要有以下三点: 1.确保子表中的某个字段(外键)只能引用父表中的有效记录2.主表中的列被删除时,子表中的关联列也会被删除3.主表中的列更新时,子表中的关联元素也会被更新 子表中的元素指向主表 以下是一个外键约束的实例展示

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

如何去写一手好SQL

MySQL性能 最大数据量 抛开数据量和并发数,谈性能都是耍流氓。MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。 《阿里巴巴Java开发手册》提出单表行数超过500万行或者单表容量超过2GB,才推荐分库分表。性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL配置、数据表设计、索引优化。500万这个值仅供参考,并非铁律。 博主曾经操作过超过4亿行数据

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

MySQL高性能优化规范

前言:      笔者最近上班途中突然想丰富下自己的数据库优化技能。于是在查阅了多篇文章后,总结出了这篇! 数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必须以tmp_为前缀并以日期为后缀,备份

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

[MySQL表的增删改查-进阶]

🌈个人主页:努力学编程’ ⛅个人推荐: c语言从初阶到进阶 JavaEE详解 数据结构 ⚡学好数据结构,刷题刻不容缓:点击一起刷题 🌙心灵鸡汤:总有人要赢,为什么不能是我呢 💻💻💻数据库约束 🔭🔭🔭约束类型 not null: 指示某列不能存储 NULL 值unique: 保证某列的每行必须有唯一的值default: 规定没有给列赋值时的默认值.primary key: