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. css浮动(float,clear)

    1. 以div元素布局为例,div是块级元素,在页面中独占一行,自上而下排列,也就是传说中的流,是指标准流中的div. 无论多么复杂的布局,其基本出发点均是:“如何在一行显示多个div元素”,显然标准 ...

  2. 《Effective Objective-C 2.0》 读后总结

    感觉自己最近提升很慢了.然后去找了一些面试题看看.发现自己自大了.在实际开发中,让我解决bug.编写功能,我有自信可以完成.但是对项目更深层的思考,我却没有.为了能进到自己的目标BAT.也为了让自己更 ...

  3. esri-leaflet入门教程(4)-加载各类图层

    esri-leaflet入门教程(4)-加载各类图层 by 李远祥 在leaflet中图层一般分为底图(Basemap)和叠加图层(Overlay).前面章节已经介绍过底图其实也是实现了TileLay ...

  4. warshall、

    #include<iostream> int mian() { ][],b[][],c[][]; int i,j,k; cout<<"input the Boolea ...

  5. 深度神经网络(DNN)损失函数和激活函数的选择

    在深度神经网络(DNN)反向传播算法(BP)中,我们对DNN的前向反向传播算法的使用做了总结.里面使用的损失函数是均方差,而激活函数是Sigmoid.实际上DNN可以使用的损失函数和激活函数不少.这些 ...

  6. Mysql动态sql语句,用当前时间做表名

    在mysql备份操作中, 我们可能要使用表名和当前时间来做为备份表的名称,但是MySQL在存储过程中不支持使用变量名来做表名或者列名. 例如:有一个表"user",我需要备份一份, ...

  7. 用phpcms如何将静态页面制作成企业网站(下)

    上篇讲到了子页部分 这样的 有分页选择 列表项的代码部分 最后输出变量pages就可以了 看一下运行的效果 点击下一页 再来改一下子页显示的样式 点击人才将会出来的一个子页面 路径要统一 再来更改后台 ...

  8. Vue学习之路---No.2(分享心得,欢迎批评指正)

    昨天我们大致了解了有关Vue的基础知识和语法:今天我们继续在大V这条路上前进. 首先,我们回忆一下昨天提到的相关知识点: 1.了解Vue的核心理念------"数据驱动视图" 2. ...

  9. Redis 11种Web应用场景举例

    在"怎样让redis在你的系统中发挥作用"一文中,salvatore 'antirez' sanfilippo告诉我们如何利用redis独有的数据结构处理能力来解决一些常见问题.一 ...

  10. UI设计学习路线图

    文章转载自「开发者圆桌」一个关于开发者入门.进阶.踩坑的微信公众号 这里整理的UI设计学习路线图包含初中高三个部分,你可以通过百度云盘下载观看对应的视频 链接: http://pan.baidu.co ...