千家信息网

使用zabbix怎么对mysql进行监控

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,今天就跟大家聊聊有关使用zabbix怎么对mysql进行监控,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。zabbix 监控 mysql1、监
千家信息网最后更新 2026年10月31日使用zabbix怎么对mysql进行监控

今天就跟大家聊聊有关使用zabbix怎么对mysql进行监控,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

zabbix 监控 mysql

1、监控规划

在创建监控项之前要尽量考虑清楚要监控什么,怎么监控,监控数据如何存储,监控数据如何展现,如何处理报警等。要进行监控的系统规划需要对Zabbix很了解,这里只是提出监控的需求。

需求一:监控MySQL的状态,当状态发生异常,发出报警;

需求二:监控MySQL的操作,并用图表展现;

2、自定义脚本监控扩展Agent

Zabbix Server与Agent之间监控数据的采集主要是通过Zabbix Server主动向Agent询问某个Key的值,Agent会根据Key去调用相应的函数去获取这个值并返回给Server端。Zabbix 2.4.7的Agent本并没有内置MySQL的监控功能(但是Server端提供了相应的Template配置),所以我们需要使用Zabbix的User Parameters功能,为MySQL添加监控脚本。

3、授权mysql登录用户(agent端)

mysql> grant usage on *.* to zabbix@127.0.0.1 identified by '123456';mysql> flush privileges;

4、agent端配置

存活检测

利用UserParameter参数自定义Agent Key。
对于需求一 ,我们采用mysqladmin这个工具来实现,命令如下:

# mysqladmin -h 127.0.0.1 -u zabbix -p123456 ping mysqld is alive

如果MySQL状态正常,会显示mysqld is alive,否则会提示连接不上。对于服务器端,mysqld is alive这样的句子不好理解,服务器端最好只接收1和0,1表示服务可用,0表示服务不可用。那么再改进一下这个命令,如下:

# mysqladmin -h 127.0.0.1 -u zabbix -p123456 ping |grep -c alive1

用户名和密码放在命令中对于以后的维护不好,所以我们在/var/lib/zabbix/下创建一个包含MySQL用户名和密码的配置文件".my.cnf",如下:

user=zabbixhost=127.0.0.1password='123456'

有了这个文件后的命令变更为

HOME=/var/lib/zabbix/ mysqladmin ping |grep -c alive1

做完这一步后需要做的就是,将这个监控命令添加到Zabbix Agent中,并与一个Key对应,这样Zabbox Server就能通过这个Key获取MySQL的状态了。我们使用mysql.ping作为MySQL状态的Key。

首先在去除/etc/zabbix/zabbix_agentd.conf中

"Include=/etc/zabbix_agentd.d/" 这一行的注释符。

其次,在/etc/zabbix/zabbix_agentd.d/目录下创建userparameter_mysql.conf文件。在文件中添加如下命令:

UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive

使用下面的命令测试是否正常工作。

# /usr/sbin/zabbix_agentd -t mysql.pingmysql.ping                                    [t|1]
其他性能指标
1.添加userparameter_mysql
vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf####监控mysql性能的脚本UserParameter=mysql.status[*],/etc/zabbix/zabbix_agentd.d/check_mysql.sh $1#####mysql版本UserParameter=mysql.version,mysql -V
2.check_mysql.sh
#!/bin/bash# -------------------------------------------------------------------------------# FileName: check_mysql.sh# Revision: 1.0# -------------------------------------------------------------------------------# Copyright:# License: GPL# 用户名MYSQL_USER='zabbix'# 密码MYSQL_PWD='zabbix@123'# 主机地址/IPMYSQL_HOST='ip'# 端口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 2>/dev/null |cut -f2 -d":"|cut -f1 -d"T"`echo $result;;Com_update)result=`${MYSQL_CONN} extended-status   2>/dev/null  |grep -w "Com_update"|cut -d"|" -f3`echo $result;;Slow_queries)result=`${MYSQL_CONN} status  2>/dev/null  |cut -f5 -d":"|cut -f1 -d"O"`echo $result;;Com_select)result=`${MYSQL_CONN} extended-status  2>/dev/null  |grep -w "Com_select"|cut -d"|" -f3`echo $result;;Com_rollback)result=`${MYSQL_CONN} extended-status  2>/dev/null   |grep -w "Com_rollback"|cut -d"|" -f3`echo $result;;Questions)result=`${MYSQL_CONN} status   2>/dev/null |cut -f4 -d":"|cut -f1 -d"S"`echo $result;;Com_insert)result=`${MYSQL_CONN} extended-status   2>/dev/null  |grep -w "Com_insert"|cut -d"|" -f3`echo $result;;Com_delete)result=`${MYSQL_CONN} extended-status   2>/dev/null  |grep -w "Com_delete"|cut -d"|" -f3`echo $result;;Com_commit)result=`${MYSQL_CONN} extended-status   2>/dev/null  |grep -w "Com_commit"|cut -d"|" -f3`echo $result;;Bytes_sent)result=`${MYSQL_CONN} extended-status  2>/dev/null  |grep -w "Bytes_sent" |cut -d"|" -f3`echo $result;;Bytes_received)result=`${MYSQL_CONN} extended-status  2>/dev/null  |grep -w "Bytes_received" |cut -d"|" -f3`echo $result;;Com_begin)result=`${MYSQL_CONN} extended-status  2>/dev/null  |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
3.授权:
chmod +x  /etc/zabbix/zabbix_agentd.d/check_mysql.shChown zabbix.zabbix  /etc/zabbix/zabbix_agentd.d/check_mysql.sh
4. zabbix_agent上测试:

zabbix_agentd -t mysql.ping

5.Zabbix_server测试

zabbix_get -s ip -P 端口 -k mysql.ping

5、在web端进行配置

**创建主机 **



关联模板

创建监控项

创建图形


查看监控图像

其他监控项以此配置完成

6、zabbix自带mysql监控项

version:数据库版本key_buffer_size:myisam的索引buffer大小sort_buffer_size:会话的排序空间(每个线程会申请一个)join_buffer_size:这是为链接操作分配的最小缓存大小,这些连接使用普通索引扫描、范围扫描、或者连接不适用索引max_connections:最大允许同时连接的数量max_connect_errors:允许一个主机最多的错误链接次数,如果超过了就会拒绝之后链接(默认100)。可以使用flush hosts命令去解除拒绝open_files_limits:操作系统允许mysql打开的文件数量,可以通过opened_tables状态确定是否需要增大table_open_cache,如果opened_tables比较大且一直还在增大说明需要增大table_open_cachemax-heap_tables_size:建立的内存表的最大大小(默认16M)这个参数和tmp_table_size一起限制内部临时表的最大值(取这两个参数的小的一个),如果超过限制,则表会变为innodb或myisam引擎,(5.7.5之前是默认是myisam,5.7.6开始是innodb,可以通过internal_tmp_disk_storage_engine参数调整)。max_allowed_packet:一个包的最大大小##########GET INNODB INFO#INNODB variablesinnodb_version:innodb_buffer_pool_instances:将innodb缓冲池分为指定的多个(默认为1)innodb_buffer_pool_size:innodb缓冲池大小、5.7.5引入了innodb_buffer_pool_chunk_size,innodb_doublewrite:是否开启doublewrite(默认开启)innodb_read_io_threads:IO读线程的数量innodb_write_io_threads:IO写线程的数量########innodb statusinnodb_buffer_pool_pages_total:innodb缓冲池页的数量、大小等于innodb_buffer_pool_size/(16*1024)innodb_buffer_pool_pages_data:innodb缓冲池中包含数据的页的数量########## GET MYSQL HITRATE1、查询缓存命中率如果Qcache_hits+Com_select<>0则为 Qcache_hits/(Qcache_hits+Com_select),否则为02、线程缓存命中率如果Connections<>0,则为1-Threads_created/Connections,否则为03、myisam键缓存命中率如果Key_read_requests<>0,则为1-Key_reads/Key_read_requests,否则为04、myisam键缓存写命中率如果Key_write_requests<>0,则为1-Key_writes/Key_write_requests,否则为05、键块使用率如果Key_blocks_used+Key_blocks_unused<>0,则Key_blocks_used/(Key_blocks_used+Key_blocks_unused),否则为06、创建磁盘存储的临时表比率如果Created_tmp_disk_tables+Created_tmp_tables<>0,则Created_tmp_disk_tables/(Created_tmp_disk_tables+Created_tmp_tables),否则为07、连接使用率如果max_connections<>0,则threads_connected/max_connections,否则为08、打开文件比率如果open_files_limit<>0,则open_files/open_files_limit,否则为09、表缓存使用率如果table_open_cache<>0,则open_tables/table_open_cache,否则为0

看完上述内容,你们对使用zabbix怎么对mysql进行监控有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

监控 命令 数据 大小 数量 文件 状态 缓存 参数 配置 最大 命中率 用户 线程 需求 服务 缓冲 主机 使用率 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技 互联网公司 科技公司 易通互联网络科技有限公司 唐信互联网科技 大连 互联网科技logo 猫创互联网科技 青岛科技大学互联网大赛研究生 阿里互联网科技企业 伍佰万互联网科技怎么赚钱 电子商务与互联网科技的关系 云南省自由互联网科技有限公司 四川互联网展示科技馆设计 富国互联网金融科技混合基金 半导体是互联网高科技吗 扫呗互联网科技有限公司 互联网科技手机排行榜 美国五大互联网科技公司市值多少 互联网大会出现的黑科技 宁波允成互联网科技有限公司 互联网科技自媒体灵感 万易互联网科技有限公司 贷财互联网科技 互联网科技的未来发展 深圳卡尔迅互联网科技有限公司怎么样 深圳互联网科技怎么样 中国最先进互联网科技公司 汉立互联网科技有限公司联系电话 21世纪互联网科技成就 北京互联网科技类企业分布 玉溪新华互联网科技怎么选
0