ZABBIX监控容器内的MySQL数据

简介: ZABBIX监控容器内的MySQL数据

监控MYSQL主要指标:

实例状态

流量

连接数

增删改查

缓冲池大小与利用率


主要步骤:

编写监控数据采集脚本

创建模板

将运行MySQL的主机关联模板


我的环境:

系统:centos7

zabbix-server版本:4.0

zabbix-agent版本:4.0

mysql版本:5.7

docker版本:18.09


公司需求:使用zabbix监控容器内部的mysql数据

首选考虑到公司产品不仅仅只有mysql,所以不能在容器内部搭建zabbix-agent服务

1.在宿主机直接搭建zabbix-agent服务

略

2.创建一个mysql容器

略

3.进入容器,配置mysql服务


[root@vrgv zabbix_agentd.d]# docker exec -it mysql20210111 bash
在mysql配置文件加入以下参数
[root@vrgv-mysql zabbix-mysql-date]# vi /etc/my.cnf
[mysql]
host=127.0.0.1
user=root
password=root
[mysqladmin]
host=127.0.0.1
user=root
password=root
重新重启mysql服务
[root@vrgv-mysql zabbix-mysql-date]# systemctl restart mysqld

4.退出容器,编写zabbix-agentd.conf配置文件(已存在可不操作)

vim zabbix_agentd.conf

1675176771792.jpg

编写配置文件:(可把默认的MySQL配置文件删除)

[root@vrgv zabbix]# vim /etc/zabbix/zabbix_agentd.d/vrgv-mysql.conf
# 连接数
UserParameter=mysql.max_connections,echo "show variables where Variable_name='max_connections';" | docker exec -i mysql20210111 bash -c "mysql -N" | awk '{print $2}'
UserParameter=mysql.current_connections,echo "show global status where Variable_name='Threads_connected';" | docker exec -i mysql20210111 bash -c "mysql -N" | awk '{print $2}'
# 缓冲池
UserParameter=mysql.buffer_pool_size,echo "show variables where Variable_name='innodb_buffer_pool_size';" | docker exec -i mysql20210111 bash -c "mysql -N" |awk '{printf "%.2f",$2/1024/1024/1024}'
UserParameter=mysql.buffer_pool_usage_percent,echo "show global status where Variable_name='Innodb_buffer_pool_pages_free' or Variable_name='Innodb_buffer_pool_pages_total';" | docker exec -i mysql20210111 bash -c "mysql -N" | awk '{a[NR]=$2}END{printf "%.1f",100-((a[1]/a[2])*100)}'
# 增删改查
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" |docker exec -i mysql20210111 bash -c "mysql -N" | awk '{print $$2}'
# 实例状态
UserParameter=mysql.ping,HOME=/usr/local/zabbix_agent docker exec -i mysql20210111 bash -c "mysqladmin ping" | grep -c alive
UserParameter=mysql.version,docker exec -i mysql20210111 bash -c "mysql -V"

注:需要改动的位置

mysql20210111 是容器名称,根据自己实际情况修改,非容器安装mysql,把没行的docker exec -i mysql20210111 bash -c去掉即可,重新启动zabbix-agent服务

[root@vrgv zabbix_agentd.d]# systemctl restart zabbix-agent

5.zabbix-server端验证,可不可以获取到数据

[root@zabbix ~]# /data/findsec/zabbix/bin/zabbix_get -s 192.168.1.228 -p 10050 -k 'mysql.max_connections'
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/mysql20210111/json: dial unix /var/run/docker.sock: connect: permission denied

报错大致意思就是,没有权限

解决方法:

给/var/run/docker.sock添加权限

[root@vrgv zabbix]# chmod 663 /var/run/docker.sock

这里需要注意下次重启docker,权限可能会发生变化

再次验证通过

[root@zabbix ~]# /data/findsec/zabbix/bin/zabbix_get -s 192.168.1.228 -p 10050 -k 'mysql.max_connections'

6.导入zabbix web 模板文件

文件链接: https://download.csdn.net/download/zhanremo3062/14110320.

1675176870253.jpg

7.MySQL主机关联此模板

1675176883551.jpg

8.验证

1675176895993.jpg已监控上数据,完成

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
12月前
|
监控 应用服务中间件 nginx
基于Zabbix的SLA监控体系构建与实践
本文由Zabbix社区专家褚凤彬分享,详解SLA在Zabbix中的应用。通过Trigger与Service联动,构建Web应用的多层级监控体系,并介绍SLA计算规则、维护期处理及升级注意事项,助力企业精准掌控服务可用性。
828 36
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
SQL 人工智能 关系型数据库
如何实现MySQL百万级数据的查询?
本文探讨了在MySQL中对百万级数据进行排序分页查询的优化策略。面对五百万条数据,传统的浅分页和深分页查询效率较低,尤其深分页因偏移量大导致性能显著下降。通过为排序字段添加索引、使用联合索引、手动回表等方法,有效提升了查询速度。最终建议根据业务需求选择合适方案:浅分页可加单列索引,深分页推荐联合索引或子查询优化,同时结合前端传递最后一条数据ID的方式实现高效翻页。
660 0
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
1090 6
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
1493 4
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
949 10
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
710 28
|
SQL 存储 缓存
MySQL 如何高效可靠处理持久化数据
本文详细解析了 MySQL 的 SQL 执行流程、crash-safe 机制及性能优化策略。内容涵盖连接器、分析器、优化器、执行器与存储引擎的工作原理,深入探讨 redolog 与 binlog 的两阶段提交机制,并分析日志策略、组提交、脏页刷盘等关键性能优化手段,帮助提升数据库稳定性与执行效率。
392 0
|
运维 监控 安全
【案例分享】中国通号卡斯柯公司:ZABBIX如何破解轨道交通监控难题
本文根据2023上海峰会上朱林贤的演讲整理,聚焦中国通号卡斯柯公司如何借助Zabbix实现轨道交通信号系统的智能化管理。作为中外合资企业,卡斯柯通过统一平台整合设备监控,大幅降低成本并提升灵活性,成功应用于国内外项目。文章探讨了传统监控系统的痛点、研发维护经验及国产化与开源技术挑战,为行业转型提供了宝贵启示。未来,开放协作将是推动轨道交通智能化发展的关键。
892 8
|
存储 SQL 缓存
mysql数据引擎有哪些
MySQL 提供了多种存储引擎,每种引擎都有其独特的特点和适用场景。以下是一些常见的 MySQL 存储引擎及其特点:
415 0

推荐镜像

更多