zabbix监控mysql
来源:互联网 发布:程序员技术移民日本 编辑:程序博客网 时间:2024/06/09 23:47
今天来看看zabbix如何监控mysql性能,这边使用mysql自带的模板,可以监控如下内容:OPS(增删改查)、mysql请求流量带宽,mysql响应流量带宽,如果没有则要去zabbix官方下载 url:https://zabbix.org/mw/images/d/d4/Template_App_MySQL-2.2.0.xml最后会附上相应的监控图!
准备工作
在iptables中添加10050和10051端口,并重启防火墙
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10050 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10051 -j ACCEPT
如果是编译安装的mysql,在连接mysql的时候可能会跟mysql.sock的路径,因为mysql在启动的时候默认会在/var/lib/mysql/处寻找,所以我们要将mysql.sock文件连接到此处
ln -s /data/mysql_db/mysql.sock /var/lib/mysql/ #/data/mysql_db/mysql.sock为我自定义的路径
在安装zabbix_agentd的时候,我们需要将zabbix_agentd.conf连接到/usr/local/etc/目录,这一步特别重要,这决定了你是否能获取mysql key
ln -s /usr/local/zabbix/conf/zabbix_agentd.conf /usr/local/etc/
用于获取mysql性能指标数据,你需要修改相应的数据库信息
mkdir /usr/local/zabbix/etc/
# vim /usr/local/zabbix/etc/chk_mysql.sh#!/bin/bash# 用户名MYSQL_USER='zabbix'# 密码MYSQL_PWD='123456'# 主机地址/IPMYSQL_HOST='127.0.0.1'# 端口MYSQL_PORT='3306'# 数据连接MYSQL_CONN="/usr/bin/mysqladmin -u${MYSQL_USER} -p${MYSQL_PWD} -h${MYSQL_HOST} -P${MYSQL_PORT}"# 参数是否正确if [ $# -ne "1" ];thenecho "arg error!"fi# 获取数据case $1 inUptime)result=`${MYSQL_CONN} status|cut -f2 -d":"|cut -f1 -d"T"`echo $result;;Com_update)result=`${MYSQL_CONN} extended-status |grep -w "Com_update"|cut -d"|" -f3`echo $result;;Slow_queries)result=`${MYSQL_CONN} status |cut -f5 -d":"|cut -f1 -d"O"`echo $result;;Com_select)result=`${MYSQL_CONN} extended-status |grep -w "Com_select"|cut -d"|" -f3`echo $result;;Com_rollback)result=`${MYSQL_CONN} extended-status |grep -w "Com_rollback"|cut -d"|" -f3`echo $result;;Questions)result=`${MYSQL_CONN} status|cut -f4 -d":"|cut -f1 -d"S"`echo $result;;Com_insert)result=`${MYSQL_CONN} extended-status |grep -w "Com_insert"|cut -d"|" -f3`echo $result;;Com_delete)result=`${MYSQL_CONN} extended-status |grep -w "Com_delete"|cut -d"|" -f3`echo $result;;Com_commit)result=`${MYSQL_CONN} extended-status |grep -w "Com_commit"|cut -d"|" -f3`echo $result;;Bytes_sent)result=`${MYSQL_CONN} extended-status |grep -w "Bytes_sent" |cut -d"|" -f3`echo $result;;Bytes_received)result=`${MYSQL_CONN} extended-status |grep -w "Bytes_received" |cut -d"|" -f3`echo $result;;Com_begin)result=`${MYSQL_CONN} extended-status |grep -w "Com_begin"|cut -d"|" -f3`echo $result;;*)echo "Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)";;esac
赋予执行权限
chmod +x /usr/local/zabbix/etc/chk_mysql.sh
2、修改zabbix_agentd.conf
增加自定义key,在最后一行增加如下:
# 获取mysql版本
UserParameter=mysql.version,mysql -h"127.0.0.1" -uzabbix -p123456 -e "select version();"|awk 'END {print}'
# 获取mysql性能指标,这个是上面定义好的脚本
UserParameter=mysql.status[*],/usr/local/zabbix/etc/chk_mysql.sh $1
# 获取mysql运行状态
UserParameter=mysql.ping,mysqladmin -uzabbix -p123456 -P3306 -h127.0.0.1 ping | grep -c alive
备注:请注意修改你的数据库信息,以及zabbix路径信息
3、重启zabbix
# killall zabbix-agentd
# /usr/local/zabbix/sbin/zabbix_agentd
或者
# service zabbix_agentd restart
4、测试
在zabbix server中执行以下命令,看能否获取到值
cd /usr/local/zabbix/bin
./zabbix_get -s "zabbix_agentd IP" -p 10050 -k mysql.version
5.5.45-log
./zabbix_get -s "zabbix_agentd IP" -p 10050 -k mysql.ping
1
./zabbix_get -s "zabbix_agentd IP" -p 10050 -k mysql.status[Uptime]
169725
./zabbix_get -s "zabbix_agentd IP" -p 10050 -k mysql.status[Com_update]
994470
5、Link MySQL模板
模板是zabbix系统提供的,进入zabbix web后台,configuration-->hosts-->点击你的主机name-->选择template选项卡,选择模板“Template App MySQL”,最后点击update即可
6、数据查看
如果配置没有异常,那么可以在graph中查看到2张监控图,分别为请求流量带宽、响应流量带宽、ops,点击monitoring-->graphs-->选择你的主机,分别选择Graph“MySQL bandwidth”、“MySQL operations”,监控图分别如下:
mysql
如果发现监控没有数据,请排查如下问题
1. zabbix客户端是否重启
2. 脚本是否有执行权限
3. 数据库是否有权限
4. 环境变量是否有问题
5. 请看zabbix item列,鼠标移至红色叉上,有错误提示。
- zabbix全面监控mysql
- MySQL监控软件zabbix
- Zabbix 2.4 监控 MySQL
- zabbix 监控 mysql
- ZABBIX监控MYSQL
- zabbix监控mysql客户端
- zabbix监控mysql
- 用zabbix监控mysql
- zabbix 监控 mysql
- zabbix监控mysql
- zabbix 配置mysql监控
- [Zabbix] MySQL 监控
- Zabbix配置mysql监控
- MySQL监控之Zabbix
- Zabbix 监控 Mysql
- zabbix监控mysql和apache
- CentOS下Zabbix监控MySQL
- zabbix自带监控mysql
- Android:控件WebView显示网页
- 博客搬迁啦,
- Docker - Section II
- Script 脚本所有编译器属性详解
- iOS去除网络请求到的数据的null值
- zabbix监控mysql
- Android-->Retrofit 2.0 beta2 使用方法
- source insight正则表达式批量替换字符串
- 进击的Android之manifests
- Linux指令--ifconfig
- unity3d用鼠标拖动物体的一段代码
- 专访 YYKit 作者 Ibireme: 开源大牛是怎样炼成的
- 使用Unity开发项目的一点经验
- python 控制台cmd运行出现乱码(原因之一)