zabbix监控的方式有四个大方向:
1,zabbix agent类型
2,snmp类型
3,jmx类型
4,impi类型
用的多的基本上就两种,agent类型 和 snmp类型。
agent类型的item是使用部署在服务端的agent来获取数据,,可以分为主动和被动模式。
snmp是监控服务器以外设备的非常好的方式,比如可以监控网络设备,打印机等,只要是有snmp功能的,zabbix都可以监控。
今天我们要说的mysql监控是基于agent类型的监控。
我们来看看服务端的默认模板:
item 有14个,根据这14个item生成有2个图形类型。
第一个item的信息如图,监控类型为zabbix agent,key为mysql.version ,输出类型为字符串,更新周期默认为 3600秒。值的保存日期为7天。。。。
被监控端安装好zabbix agent后,添加好mysql监控模板,然后在zabbix_server端查看日志的后你会发现
提示监控可以值在被监控端不受支持。
所以我们还需要修改被监控端的 zabbix_agentd.conf 手动添加对应key所执行的数据采集语句(多用shell语句编写)。
客户端添加自定义监控项的方法为:在配置文件后面添加语句为 userparameter=app.key,/some/shell/output
比如:监控mysql.version的话 语句为
mysql.version,mysqladmin -u -p version | grep 'server version' | awk '{printf mysql server version: $3}'
输出的值为 mysql server version: 5.1.73
所以添加到配置文件最后就添加好一条监控项了。
根据上图所示,mysql的值有许多,这些值一般都在 mysqladmin status | mysqladmin extended-status 里面。所以只需要写一个shell脚本就可以吧剩下的全部监控起来。
我这里提供一个shell脚本示例
#!/bin/bash
case $1 in
uptime)
mysqladmin -u -p status | awk '{print$2}'
;;
com_update)
mysqladmin -u -p extended-status | grep 'com_update ' | awk 'begin{fs=|}{print $3}'
;;
slow_queries)
mysqladmin -u -p extended-status | grep 'slow_queries' | awk 'begin{fs=|}{print $3}'
;;
com_select)
mysqladmin -u -p extended-status | grep 'com_select' | awk 'begin{fs=|}{print $3}'
;;
com_rollback)
mysqladmin -u -p extended-status | grep 'com_rollback ' | awk 'begin{fs=|}{print $3}'
;;
questions)
mysqladmin -u -p extended-status | grep 'questions' | awk 'begin{fs=|}{print $3}'
;;
com_insert)
mysqladmin -u -p extended-status | grep 'com_insert ' | awk 'begin{fs=|}{print $3}'
;;
com_delete)
mysqladmin -u -p extended-status | grep 'com_delete ' | awk 'begin{fs=|}{print $3}'
;;
com_commit)
mysqladmin -u -p extended-status | grep 'com_commit' | awk 'begin{fs=|}{print $3}'
;;
bytes_sent)
mysqladmin -u -p extended-status | grep 'bytes_sent' | awk 'begin{fs=|}{print $3}'
;;
bytes_received)
mysqladmin -u -p extended-status | grep 'bytes_received' | awk 'begin{fs=|}{print $3}'
;;
com_begin)
mysqladmin -u -p extended-status | grep 'com_begin' | awk 'begin{fs=|}{print $3}'
;;
*)
echo please choise one optinon ( uptime|com_update|slow_queries|com_select|com_rollback|questions|com_insert|com_delete|com_co
mmit|bytes_sent|bytes_received|com_begin )
;;
esac
zabbix_agentd.conf里面的监控项为↓
userparameter=mysql.version,mysqladmin -u -p version | grep 'server version' | awk '{printf mysql server version: $3}'
userparameter=mysql.status[*],bash /usr/local/zabbix/etc/check_mysql_status_per.sh $1
userparameter=mysql.ping,mysqladmin -u -p status > /dev/null 2>&1 && echo 1 || echo 0
添加好后我们可以到zabbix上点开 monitoring→latest data 选择主机
已经陆续获取到响应的值了。
稍等就可以完整监控了。
相关文件下载:
------------------------------------------分割线------------------------------------------
免费下载地址在
用户名与密码都是
具体下载目录在 /2015年资料/8月/17日/zabbix 的 mysql 监控客户端配置/
下载方法见
------------------------------------------分割线------------------------------------------
一些zabbix相关教程集合:
ubuntu 14.04下zabbix2.4.5 源码编译安装
安装部署分布式监控系统zabbix 2.06
《安装部署分布式监控系统zabbix 2.06》
centos 6.3下zabbix安装部署
zabbix分布式监控系统实践
centos 6.3下zabbix监控apache server-status
centos 6.3下zabbix监控mysql数据库参数
64位centos 6.2下安装zabbix 2.0.6
zabbix 的详细介绍:请点这里
zabbix 的下载地址:请点这里
本文永久更新链接地址:
