Zabbix监控mysql(bash版)-阿里云开发者社区

开发者社区> 开发与运维> 正文

Zabbix监控mysql(bash版)

简介:

 大家都知道,zabbix自定义key的功能十分方便,监控任意值都是特别的方便,安装好了之后,如果你需要监控mysql,用默认的模板是无法工作的,因为没有key的存在,所以要自己写一个脚本去实现key。当然也可以用https://www.zabbix.com/wiki/howto/monitor/db/mysql/extensive_mysql_monitoring_including_replication这里的php脚本,如果想监控主从同步状态,原理相同,此处不写了。

   脚本可以用任意语言写,但是在linux下,还是shell最方便,用php,需要安装php环境,用python,需要安装python-MySQL库,用perl也是如此,所以选择了bash。bash脚本提供了用户名密码主机在web界面配置的功能,这里不写了,有问题的可以留言。

   脚本位置zabbix-agent,脚本,配置文件ok后重启服务,web上面添加对应主机mysql模板(自带)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
shell#cat /etc/zabbix/scripts/monitor_mysql
#!/bin/bash
#author:itnihao
#mail:itnihao@qq.com
#date 2013-12-18
#version v1.0
#function:use zabbix monitor mysql status
mysql=$(which mysql)
#注意,如果你的mysql是非标准安装,请写mysql的绝对路径
#mysql=/usr/bin/mysql
var=$1
MYSQL_USER=$2
MYSQL_PASSWORD=$3
MYSQL_Host=$4
"${MYSQL_USER}"     '' ] &&  MYSQL_USER=zabbix
"${MYSQL_PASSWORD}" '' ] &&  MYSQL_PASSWORD=zabbix
"${MYSQL_Host}"     '' ] &&  MYSQL_Host=localhost
"${var}" '' ] && echo ""||${mysql} -u${MYSQL_USER} -p${MYSQL_PASSWORD} -h${MYSQL_Host} -e 'show status'|grep -v Variable_name|grep "\b${var}\b"|awk '{print $2}'
1
2
3
4
shell#egrep -v "(^#|^$)" /etc/zabbix/zabbix_agentd.conf
#Server=这个参数,这里不详细的写了,主要改以下的参数
Include=/etc/zabbix/zabbix_agentd.conf.d/   #配置文件路径
UnsafeUserParameters=1                      #允许特殊字符
1
2
3
4
shell#cat /etc/zabbix/zabbix_agentd.conf.d/mysql_status.conf
UserParameter=mysql.status[*],/etc/zabbix/scripts/monitor_mysql $1
UserParameter=mysql.ping,/usr/bin/mysqladmin -uzabbix -pzabbix ping|grep alive|wc -l
UserParameter=mysql.version,mysql -V | cut -f6 -d" " sed 's/,//'

上面步骤好了之后用zabbix_get测试

1
shell#zabbix_get -s 127.0.0.1 -k mysql.status[Uptime]

有数据即成功创建了可用key



本文转自it你好 51CTO博客,原文链接:http://blog.51cto.com/itnihao/1341643,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章