Docker部署Zabbix监控MariaDB主从同步(Percona Monitoring Plugins for Zabbix)
一、安装Docker并部署Zabbix
建议先配置清华大学的docker-ce yum源,速度有保障:清华大学repo源
1.Zabbix Server节点配置
部署环境:
[root@server0 ~]# docker -v
Docker version 18.09., build 4c52b90
[root@server0 ~]# cat /proc/version
Linux version 3.10.-.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8. (Red Hat 4.8.-) (GCC) ) # SMP Tue Aug :: UTC
[root@server0 ~]# cat /etc/redhat-release
CentOS Linux release 7.4. (Core)
启动并开机自运行Docker:
systemctl enable docker
systenctl start docker
部署MySQL Docker,提供Zabbix数据库服务:
~]$ docker container run --name zmysql-server \
--network zabbix \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="" \
-e MYSQL_ROOT_PASSWORD="" \
-v /data/zabbix-mysql:/var/lib/mysql \
--rm #根据需要也可以使用--restart=always
-d mysql:5.7
部署Zabbix_server和Zabbix_web:
~]$ docker container run --name zabbix-server-mysql \
--network zabbix -t \
-e DB_SERVER_HOST="172.20.0.2" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="" \
-e MYSQL_ROOT_PASSWORD="" \
-p : \
--rm -d zabbix/zabbix-server-mysql:centos-3.0-latest
~]$ docker container run --name zabbix-nginx \
--network zabbix -t \
-e DB_SERVER_HOST="172.20.0.2" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e ZBX_SERVER_HOST="172.20.0.3" \
-e MYSQL_PASSWORD="" \
-e MYSQL_ROOT_PASSWORD="" \
-e PHP_TZ="Asia/Shanghai" \
-p : --rm \
-d zabbix/zabbix-web-nginx-mysql:centos-3.0-latest
修改时区:
docker container exec -ti zabbix-server-mysql /bin/bash
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
访问宿主机的IP就能访问zabbix了,使用容器部署服务是非常方便快捷的。部署zabbix的自运行脚本放在了我的github,可以直接运行脚本启动安装Zabbix。
2.在MariaDB主从节点上部署Zabbix-agent
在MariaDB主从节点上设置授权zabbix能访问数据的账号,登录数据库执行:
> GRANT PROCESS,SUPER,REPLICATION CLIENT ON *.* TO zabbix@127.0.0.1 IDENTIFIED BY '';
配置zabbix官方yum源并安装zabbix-agent,PHP、php-mysql:
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://repo.zabbix.com/zabbix/3.0/rhel/7/$basearch/
enabled=
gpgcheck=
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX [zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/
enabled=
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=
yum install -y zabbix-agent zabbix-senter php php-mysql
二、安装Percona Monitoring Plugins插件监控MariaDB
Percona Monitoring Plugins是一个很强大的数据库测试插件,我们这里只用它的MariaDB For Zabbix模板。
~]# rpm -ivh https://www.percona.com/redir/downloads/percona-release/redhat/latest/percona-release-0.1-6.noarch.rpm
~]# yum install percona-zabbix-templates -y
~]# rpm -ql percona-zabbix-templates #安装监控模板
/var/lib/zabbix/percona
/var/lib/zabbix/percona/scripts
/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh
/var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
/var/lib/zabbix/percona/templates
/var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf
/var/lib/zabbix/percona/templates/zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml
修改模板文件配置参数(红色字体为要修改的部分):
~]# cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
~]# vim /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh
if [ "$ITEM" = "running-slave" ]; then
# Check for running slave
RES=`HOME=~zabbix /usr/bin/mysql -uzabbix -p123456 -e 'SHOW SLAVE STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '\n' ','`
if [ "$RES" = " Yes, Yes," ]; then
echo
else
echo
fi
exit
~]# vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
$mysql_user = 'zabbix';
$mysql_pass = '123456';
~]# systemctl restart zabbix-agent.service
测试,若以下命令返回任意数字,则说明模板配置成功:
~]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
~]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh running-slave
~]# /usr/bin/php -q /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.--host localhost --items gg
登录Zabbix页面并导入模板:

将xml模板文件上传至zabbix-server,由于官方的模板文件只支持zabbix2.0,这里提供修改后的3.0模板文件→→Zabbix Percona Template。导入后重zabbix-agent,添加主机和模板,设置触发器等等功能,然后就能监控MariaDB了。Percona的模板很详细,可以满足生产中决大部分MariaDB监控需求。

关于Zabbix的基础配置可参阅我的文章---->Zabbix监控原理及架构、Zabbix3.0基础教程之一:系统监控,zabbix安装与基本配置、Zabbix3.0基础教程之二:item、trigger、action、graph配置
Docker部署Zabbix监控MariaDB主从同步(Percona Monitoring Plugins for Zabbix)的更多相关文章
- 修正Percona Monitoring Plugins for Zabbix的一处脚本Bug
今天小试了一把Percona Monitoring Plugins for Zabbix模板,自己辛辛苦苦写的那一大堆Python脚本,貌似用这个模板全都覆盖到了.但是,我也发现最新的版本percon ...
- zabbix监控mysql主从同步和延迟
https://blog.csdn.net/natmazz/article/details/90581490 https://www.cnblogs.com/01-single/p/10602610. ...
- Zabbix 3.x中使用Percona Monitoring Plugins监控MySQL
1.下载安装percona-zabbix-templates-1.1.7-2.noarch.rpm 下载地址:https://www.percona.com/downloads/percona-mon ...
- zabbix监控mysql主从同步
获取主从复制sql线程和I/O线程状态是否为yes #!/bin/bash HOSTNAME="数据库IP" PORT="端口" USERNAME=" ...
- zabbix利用percona-toolkit工具监控Mysql主从同步状态
一.下载percona-toolkit工具包 percona-toolkit是一组高级命令行工具的集合,可以查看当前服务的摘要信息,磁盘检测,分析慢查询日志,查找重复索引,实现表同步等等. [root ...
- zabbix3.0.4监控mysql主从同步
zabbix3.0.4监控mysql主从同步 1.监控mysql主从同步原理: 执行一个命令 mysql -u zabbix -pzabbix -e 'show slave status\G' 我们在 ...
- Zabbix 3.2.6-Mysql多实例监控-Percona Monitoring Plugins自动发现
mysql多实例监控实录 系统环境: cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) 内核版本: uname -r 3.1 ...
- 监控mysql主从同步状态脚本
监控mysql主从同步状态脚本 示例一: cat check_mysql_health #!/bin/sh slave_is=($(mysql -S /tmp/mysql3307.sock -uroo ...
- 监控mysql主从同步状态
在高并发网站架构中,MySQL数据库主从同步是不可或缺的,不过经常会发生由于网络原因或者操作错误,MySQL主从经常会出现不同步的情况,那么如何监控MySQL主从同步,也变成网站正常运行的重要环节. ...
随机推荐
- BZOJ_3932_[CQOI2015]任务查询系统_主席树
BZOJ_3932_[CQOI2015]任务查询系统_主席树 题意: 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分.超级计算机中的 任务用三元组(Si,Ei,P ...
- Keras框架简介
Keras是基于Theano的一个深度学习框架,它的设计参考了Torch,用Python语言编写,是一个高度模块化的神经网络库,支持GPU和CPU.使用文档在这:http://keras.io/,中文 ...
- asp.net core系列 61 Ocelot 构建服务发现简单示例
一.概述 Ocelot允许指定服务发现提供程序,如Consul或Eureka. 这二个中间件是用来实现:服务治理或秒服务发现,服务发现查找Ocelot正在转发请求的下游服务的主机和端口.目前Ocelo ...
- python基于selenium实现自动删除qq空间留言板
py大法好,让你解放双手. 脚本环境 python环境,selenium库,Chrome webdriver驱动等. 源码 # coding=utf-8 import datetime import ...
- 【机器学习基础】熵、KL散度、交叉熵
熵(entropy).KL 散度(Kullback-Leibler (KL) divergence)和交叉熵(cross-entropy)在机器学习的很多地方会用到.比如在决策树模型使用信息增益来选择 ...
- 目标检测之YOLO V2 V3
YOLO V2 YOLO V2是在YOLO的基础上,融合了其他一些网络结构的特性(比如:Faster R-CNN的Anchor,GooLeNet的\(1\times1\)卷积核等),进行的升级.其目的 ...
- 如何定义开发完成?(Definition of Done)
最近在拜读郑晔的10x程序员工作法,收益良多,文中提出一个概念叫DoD(Definition of Done)给我的感触颇深.这让我联想到实际工作过程中,经常遇到的扯皮.争吵等各种场景,其实就和这个D ...
- C#采用vony.Html.AIO插件批量爬MM网站图片
一.创建项目 1.创建一个.netframework的控制台项目命名为Crawler 2.安装nuget包搜索名称Ivony.Html.AIO,使用该类库什么方便类似jqury的选择器可以根据类名或者 ...
- [Android 除錯] Conflict with dependency
Android Studio build 時的錯誤訊息 : Conflict with dependency 詳細錯誤訊息 : Conflict with dependency 'com.androi ...
- 关于mui前端传值,springboot后台接收值的问题
最近做app,使用mui的ajax给后台传参,后台一直接收不到值,表示很蛋疼.这里通过网上搜索加上个人实践,总结归纳了三种前端传值和后台接收的方式. 第一种: 前端: data: JSON.strin ...