千家信息网

使用zabbix怎么对mysql进行监控

发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,今天就跟大家聊聊有关使用zabbix怎么对mysql进行监控,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。zabbix 监控 mysql1、监
千家信息网最后更新 2025年02月05日使用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安全错误 数据库的锁怎样保障安全 小米贷款一次性结清服务器异常 环保局网络安全工作汇报 波士堂网络技术有限公司 中心数据管理平台服务器 IBM服务器管理口默认IP 网络安全和网络维护是一个工作吗 北京上市网络安全公司排名 域名服务器是干啥的 基岩版和java版联机服务器 电视机属于服务器吗 xp配置网站服务器服务器 dns服务器ip地址填写 服务器能改家庭用机吗 软件开发人员是做什么的呢 c 获取数据库连接 k3c无法连接到远程服务器 株洲网络安全审计招聘 微数据库和文件管理器 如何调整服务器系统的顺序 北大网络安全与信息专业 江苏加工软件开发公司 web服务器工作过程 中国网络安全生态大会 临京服务器核酸检测 上海可视化智慧园区软件开发 浙江软件开发网站推荐 数据库插入语句如何通用化 大连威思网络技术有限公司 dns服务器的防护 星网锐捷网络技术公司怎么样
0