开发检测MySQL主从同步插件
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主从同步插件的更多相关文章
- mysql主从同步+mycat读写分离+.NET程序连接mycat代理
背景 最近新项目需要用到mysql数据库,并且由于数据量大的原因,故打算采用1主1从(主数据库负责增.删.改操作:从数据库负责查操作)的数据库架构,在实现主从之后还要实现读写分离的代理,在网上搜寻了很 ...
- mysql主从同步(3)-percona-toolkit工具(数据一致性监测、延迟监控)使用梳理
转自:http://www.cnblogs.com/kevingrace/p/6261091.html 在mysql工作中接触最多的就是mysql replication mysql在复制方面还是会有 ...
- 监控mysql主从同步状态
在高并发网站架构中,MySQL数据库主从同步是不可或缺的,不过经常会发生由于网络原因或者操作错误,MySQL主从经常会出现不同步的情况,那么如何监控MySQL主从同步,也变成网站正常运行的重要环节. ...
- 监控mysql主从同步
1,昨天看到shell一道面试题,需求如下: 监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读取来模拟:阶段1:开发一个守护进 ...
- shell脚本监控MySQL主从同步
企业面试题1:监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员. 阶段1:开发一个守护进程脚本每30秒实现检测一次. 阶段2:如果同步出现如下错误号(1158,1159,1008, ...
- mysql系列之6.mysql主从同步
普通文件的数据同步 nfs: 网络文件共享 samba: 共享数据 定时任务或守护进程结合 rsync.scp inotify(sersync)+rsync 触发式实时数据同步 ftp数据同步 ssh ...
- 监控mysql主从同步状态是否异常
监控mysql主从同步状态是否异常,如果异常,则发生短信或邮寄给管理员 标签:监控mysql主从同步状态是否异常 阶段1:开发一个守护进程脚本每30秒实现检测一次. 阶段2:如果同步出现如下错误号(1 ...
- 用shell脚本监控MySQL主从同步
企业面试题1:(生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读取来模拟:阶段1:开发一个守护进程脚本每30秒 ...
- 运维派 企业面试题1 监控MySQL主从同步是否异常
Linux运维必会的实战编程笔试题(19题) 企业面试题1:(生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读 ...
随机推荐
- 使用python制作ArcGIS插件(2)代码编写
使用python制作ArcGIS插件(2)代码编写 by 李远祥 上一章节已经介绍了如何去搭建AddIn的界面,接下来要实现具体的功能,则到了具体的编程环节.由于使用的是python语言进行编程,则开 ...
- QML Object Attributes QML对象属性
QML Object Attributes Every QML object type has a defined set of attributes. Each instance of an obj ...
- rabbitmq.config配置文件
%% -*- mode: erlang -*-%% -------------------------------------------------------------------------- ...
- C# 获取文件MD5与SHA1
之前刚开始学习编程的时候,总想着自己写一些小软件小工具. 而这个就是经典的文件MD5校验,顺便加上了一个SHA1. 在网络上下载一些东西时,会有作者提供MD5值. 它的作用就在于我们可以在下载该软件后 ...
- devexpress表格控件gridcontrol特殊应用(一)——实现禁用特定行(附源代码)
一些特殊的项目中会存在一些特殊需求,如需要禁用特定行.这时候gridcontrol的一般属性是实现不了的,就需要做一些更改.这时候你就需要去devexpress官网中找寻些资料(官网https://w ...
- 新学到的xss姿势,分享一下
在js中有一种神奇的对象叫做window 当页面中包含如类似的 <script>var c = urlQuery("callback"); var r = JSON.p ...
- JavaScript内置对象-Array
▓▓▓▓▓▓ 大致介绍 除了Object之外,Array类型恐怕就是JavaScript种最常用的类型了,JavaScript中的数组与其他语言中的数组有很大的区别,例如,数组的每一项可以存放任何值, ...
- php分页查询
1.先把数据库里所有的数据分页显示在页面,并在显示数据的表格上方加上查询表单. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit ...
- 学习接水系统(java+thread线程)
(一)项目框架分析 对于学生并发接水项目,根据面向对象的思想,需要创建两个对象,即学生和水龙头. 接下来主要讲解不排队接水和排队接水两张情况. 项目的目录文件如下: (二)不排队接水 假设有四个学生小 ...
- Omi应用md2site发布-markdown转网站利器
写在前面 Md2site是基于Omi的一款Markdown转网站工具,使用简单,生成的文件轻巧,功能强大. 当我们想把一堆markdown文档转成网站时,你可能有许多选择,倘若选择 md2site , ...