Nagios的状态码

  OK            退出码0,表示正常工作

  WARNING         退出码1,表示处于警告阶段

  CRITICAL           退出码2,表示处于紧急状态,严重状态

  UNKOEN           退出码3,表示无法获取服务的信息

第一步:开发的脚本:

检测的是:Slave_IO_Runnin,Slave_SQL_Runnin,grep Last_SQL_Errno 三个字段

  开发好的插件都应该放在/usr/local/nagios/libexec目录下

#!/bin/sh

command=`mysql -uroot -p123456 -S /data//mysql.sock -e "show slave status\G;"|egrep "Slave_IO_Runnin|Slave_SQL_Runnin|Last_SQL_Errno"`
a=`echo "$command"|grep Slave_IO_Runnin|awk -F ":" '{print $2}'` b=`echo "$command"|grep Slave_SQL_Runnin|awk -F ":" '{print $2}'` c=`echo "$command"|grep Last_SQL_Errno|awk -F ":" '{print $2}'` if [ $a = ”Yes“ ]&&[ $b = “Yes” ]&&[ $c = “0” ]
then
echo "Slave is OK!"
exit
else
echo "Slave_IO_Runnin:$a"
echo "Slave_SQL_Runnin:$b"
echo "Last_SQL_Errno:$c"
exit 2
fi [root@mysql mysql]#

第二步:赋予执行权限

Nagios中所有的插件都是具有可执行的权限,如果没有可执行的权限就会报错

[root@Admin libexec]# chmod +x check_mysqlslave 
[root@Admin libexec]# ll check_mysqlslave
-rwxr-xr-x 1 root root 177 Dec 25 20:54 check_mysqlslave

第三步:编辑客户端的nrpe.cfg文件

[root@lamp etc]# vim nrpe.cfg
追加如下内容
command[check_passwd]=/usr/local/nagios/libexec/check_mysqlslave

第四步:配置nrpe.cfg文件

[root@mysql etc]# pwd
/usr/local/nagios/etc
[root@mysql etc]# vim nrpe.cfg
.....
allowed_hosts=127.0.0.1,192.168.220.129 //添加允许链接的主机
.....

第五步:在服务端添目标主机

[root@Admin objects]# vim hosts.cfg
define host{
use linux-server
host_name -MySQL
alias -MySQL
address 192.168.220.141
}

第六步:服务器端检查语法

   服务端只要修改了配置文件就应该检查语法,并重启服务

[root@Admin objects]# /etc/init.d/nagios checkconfig

第七部:在服务器端测

[root@Admin objects]# /usr/local/nagios/libexec/check_nrpe -H 192.168.220.141 -c check_mysqlslave

Slave_IO_Runnin: Yes

Slave_SQL_Runnin: Yes
Last_SQL_Errno: 0
[root@Admin objects]#

第八步:在服务器端定义一个服务

define service {
use generic-service
host_name 141-MySQL
service_description Check MySQLSlave
check_command check_nrpe!check_mysqlslave
}

第九步:重新载入配置文件

[root@Admin objects]# /etc/init.d/nagios reload
Running configuration check...done.
Reloading nagios configuration...done
[root@Admin objects]#

总结:被动模式和主动模式下自定义插件的配置步骤

  1.半被动模式

    将开发好的脚本放在libexec目录下

      注意:脚本中要指定返回的状态值,和echo 的内容

    给脚本加上X权限

    在nrpe.cfg中加上command

    重启nrpe

    在服务端使用check_nrpe插件以命令的形式测试该插件是否可以正常共工作

    在services定义相关的服务

    检查语法,并重启服务

  2.主动模式

     将开发好的脚本放在libexec目录下

       注意:脚本中要指定返回的状态值,和echo 的内容

     给脚本加上X权限

     在command.cfg中定义开发好的脚本

     在services里边加入定义的监控的项目

     检查语法,并重启服务

  

开发检测MySQL主从同步插件的更多相关文章

  1. mysql主从同步+mycat读写分离+.NET程序连接mycat代理

    背景 最近新项目需要用到mysql数据库,并且由于数据量大的原因,故打算采用1主1从(主数据库负责增.删.改操作:从数据库负责查操作)的数据库架构,在实现主从之后还要实现读写分离的代理,在网上搜寻了很 ...

  2. mysql主从同步(3)-percona-toolkit工具(数据一致性监测、延迟监控)使用梳理

    转自:http://www.cnblogs.com/kevingrace/p/6261091.html 在mysql工作中接触最多的就是mysql replication mysql在复制方面还是会有 ...

  3. 监控mysql主从同步状态

    在高并发网站架构中,MySQL数据库主从同步是不可或缺的,不过经常会发生由于网络原因或者操作错误,MySQL主从经常会出现不同步的情况,那么如何监控MySQL主从同步,也变成网站正常运行的重要环节. ...

  4. 监控mysql主从同步

    1,昨天看到shell一道面试题,需求如下: 监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读取来模拟:阶段1:开发一个守护进 ...

  5. shell脚本监控MySQL主从同步

    企业面试题1:监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员. 阶段1:开发一个守护进程脚本每30秒实现检测一次. 阶段2:如果同步出现如下错误号(1158,1159,1008, ...

  6. mysql系列之6.mysql主从同步

    普通文件的数据同步 nfs: 网络文件共享 samba: 共享数据 定时任务或守护进程结合 rsync.scp inotify(sersync)+rsync 触发式实时数据同步 ftp数据同步 ssh ...

  7. 监控mysql主从同步状态是否异常

    监控mysql主从同步状态是否异常,如果异常,则发生短信或邮寄给管理员 标签:监控mysql主从同步状态是否异常 阶段1:开发一个守护进程脚本每30秒实现检测一次. 阶段2:如果同步出现如下错误号(1 ...

  8. 用shell脚本监控MySQL主从同步

    企业面试题1:(生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读取来模拟:阶段1:开发一个守护进程脚本每30秒 ...

  9. 运维派 企业面试题1 监控MySQL主从同步是否异常

    Linux运维必会的实战编程笔试题(19题) 企业面试题1:(生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读 ...

随机推荐

  1. jQuery.sort对DOM元素进行排序

    实例: 每个tr的第三列显示的都是数字,我们就以这数字列作为排序依据,方法就是利用jquery的sort()方法. 首先,利用jquery选择器获取每个tr元素,获取回来是一个数据: var $trs ...

  2. js小功能合集:计算指定时间距今多久、评论树核心代码、字符串替换和去除。

    1.计算指定时间距今多久 var date1=new Date('2017/02/08 17:00'); //开始时间 var date2=new Date(); //当前时间 var date3=d ...

  3. spring入门--Spring框架底层原理

    上一篇的博客,我们可以看出来,spring可以维护各个bean (对象),并向其中注入属性值.那么,如果们要把一个对象的引用注入另外一个对象呢?应该怎么处理呢? 我们知道,对于对象中的属性来说,我们注 ...

  4. BZOJ 1050: [HAOI2006]旅行comf (并查集 或 单调队列)

    这是建空间后做的第一道题啊= =好水 排序,枚举最小边,然后并查集求出联通时的最大边 或者排次序,从小到大插边,如果插边时最小的边拿掉不会使s与t不联通,就删去。 code: #include< ...

  5. 存储可靠性技术之 --RAID

    云计算项目交付时,不可避免的需要考虑存储磁盘采用何种RAID.例如:我们的项目工程师可能会建议大家连接克隆虚拟机系统盘组RAID 10,完整复制虚拟机数据盘 使用RAID5或者RAID6等,那么RAI ...

  6. 一个简单的php站点配置

    一个简单的php站点配置   现在我们来看在一个典型的,简单的PHP站点中,nginx怎样为一个请求选择location来处理:   server {     listen      80;     ...

  7. VUE2.0实现购物车和地址选配功能学习第一节(来源--慕课网河畔一角)

    第一节  vue知识 vue-resource:和后台交互的一个插件,实现get.post和jsonp等功能.(替代jQuery) vue特点: 1.易用:通过创建vue实例,{{}}绑定数据十分方便 ...

  8. x86_64的内存映射

    对于x86_64来说,逻辑地址由16位选择子和64位偏移量组成(而32位时,逻辑地址由16位段选择符和32位偏移量组成),段寄存器仅仅存放选择子.CPU的分段单元(SU)执行以下操作:[1] 先检查选 ...

  9. 数据库:oracle,MySQL,SqlServer   安装资源分享

    1. oracle 11g: 链接:http://pan.baidu.com/s/1bppaqR1 密码:http 2. mysql   链接:http://pan.baidu.com/s/1jH8O ...

  10. Visual Studio 20周年软件趋势随想

    从2002年开始,.net让开发人员能快速构建和部署应用程序,便捷的开发windows和web服务器应用,同时著名的hacker Miguel de Icaza ,Miguel 为了GNOME项目启动 ...