开发检测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主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读 ...
随机推荐
- css浮动(float,clear)
1. 以div元素布局为例,div是块级元素,在页面中独占一行,自上而下排列,也就是传说中的流,是指标准流中的div. 无论多么复杂的布局,其基本出发点均是:“如何在一行显示多个div元素”,显然标准 ...
- 《Effective Objective-C 2.0》 读后总结
感觉自己最近提升很慢了.然后去找了一些面试题看看.发现自己自大了.在实际开发中,让我解决bug.编写功能,我有自信可以完成.但是对项目更深层的思考,我却没有.为了能进到自己的目标BAT.也为了让自己更 ...
- esri-leaflet入门教程(4)-加载各类图层
esri-leaflet入门教程(4)-加载各类图层 by 李远祥 在leaflet中图层一般分为底图(Basemap)和叠加图层(Overlay).前面章节已经介绍过底图其实也是实现了TileLay ...
- warshall、
#include<iostream> int mian() { ][],b[][],c[][]; int i,j,k; cout<<"input the Boolea ...
- 深度神经网络(DNN)损失函数和激活函数的选择
在深度神经网络(DNN)反向传播算法(BP)中,我们对DNN的前向反向传播算法的使用做了总结.里面使用的损失函数是均方差,而激活函数是Sigmoid.实际上DNN可以使用的损失函数和激活函数不少.这些 ...
- Mysql动态sql语句,用当前时间做表名
在mysql备份操作中, 我们可能要使用表名和当前时间来做为备份表的名称,但是MySQL在存储过程中不支持使用变量名来做表名或者列名. 例如:有一个表"user",我需要备份一份, ...
- 用phpcms如何将静态页面制作成企业网站(下)
上篇讲到了子页部分 这样的 有分页选择 列表项的代码部分 最后输出变量pages就可以了 看一下运行的效果 点击下一页 再来改一下子页显示的样式 点击人才将会出来的一个子页面 路径要统一 再来更改后台 ...
- Vue学习之路---No.2(分享心得,欢迎批评指正)
昨天我们大致了解了有关Vue的基础知识和语法:今天我们继续在大V这条路上前进. 首先,我们回忆一下昨天提到的相关知识点: 1.了解Vue的核心理念------"数据驱动视图" 2. ...
- Redis 11种Web应用场景举例
在"怎样让redis在你的系统中发挥作用"一文中,salvatore 'antirez' sanfilippo告诉我们如何利用redis独有的数据结构处理能力来解决一些常见问题.一 ...
- UI设计学习路线图
文章转载自「开发者圆桌」一个关于开发者入门.进阶.踩坑的微信公众号 这里整理的UI设计学习路线图包含初中高三个部分,你可以通过百度云盘下载观看对应的视频 链接: http://pan.baidu.co ...