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. Android7.0 Phone应用源码分析(三) phone拒接流程分析

    本文主要分析Android拒接电话的流程,下面先来看一下拒接电话流程时序图 步骤1:滑动按钮到拒接图标,会调用到AnswerFragment的onDecline方法 com.android.incal ...

  2. Nginx工作原理

    Nginx的模块 Nginx由内核和模块组成. Nginx的模块从结构上分为核心模块.基础模块和第三方模块: 核心模块:HTTP模块.EVENT模块和MAIL模块 基础模块:HTTP Access模块 ...

  3. intellij IDEA mybatis插件破解方法

    1>安装mybatis插件,找到mybatis_plus.jar包的位置,在C:\Users\LZHL\.IntelliJIdea2016.3\config\plugins\mybatis_pl ...

  4. JS作用域理解

    1.JS解析步骤: a.预解析 将变量声明提升: 将函数声明及函数内容提升,可以理解成原来位置的函数在解析代码时已经提到代码初始位置: 遇到重名,只留下一个: 如有重名变量和函数,留下函数: 如有两个 ...

  5. Myeclipse 搭建Java Web 项目:Servlet 《二》

    上一节,我们使用myeclipse部署了web项目,但那部署的为静态的web项目,下面我们来学习编写动态的web项目,编写动态项目必须要用到的为:servlet. Servlet是由sun公司命名的, ...

  6. Ant学习总结1

    一.Ant简介 Ant是用来编译/运行/测试java程序,构建.包装和发布过程中几乎每一件事都可以由Ant的任务来处理. 二.Ant管理项目    当开始一个新的项目时,首先应该编写Ant的构建文件, ...

  7. 一期结业KTV项目难点

    查询完成后给歌曲便利到一个数组当中将选中的歌曲对象加入到playlist类中的数组songs. 创建类名称: class Playlist       {   //定义一个长度为50的数组       ...

  8. x86_64的内存映射

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

  9. 【整理】图解隐马尔可夫模型(HMM)

    写在前面 最近在写论文过程中,研究了一些关于概率统计的算法,也从网上收集了不少资料,在此整理一下与各位朋友分享. 隐马尔可夫模型,简称HMM(Hidden Markov Model), 是一种基于概率 ...

  10. 关于hive ,eclipse老是提示加载不到驱动

    忙活了好长时间,很纳闷为什么加载不上驱动,驱动包.hive的依赖包.hadoop的依赖包也引入了,各种百度最后: hadoop-2.2.0/share/hadoop/common/hadoop-com ...