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_4873_[Shoi2017]寿司餐厅_最大权闭合子图
BZOJ_4873_[Shoi2017]寿司餐厅_最大权闭合子图 题意:http://www.lydsy.com/JudgeOnline/problem.php?id=4873 分析:我们发现分数正负 ...
- JAVA中正则表达式总结
昨天,我的朋友请教我正则表达式.我也好久没有写过正则表达式了,昨天刚好看了下如鹏网创始人杨中科老师关于正则表达式的讲解.使我加深了正则表达式的印像.现我把他总结下: 许多语言,包括Perl.PHP.P ...
- js 的 骚操作
单行的js 代码虽然简洁,但却不易维护,甚至难以理解, 但这却并不影响前端童鞋们编写简洁代码的热情, 一 , 生成随机ID // 生成长度为10的随机字母数字字符串 Math.random().t ...
- 死磕 java集合之DelayQueue源码分析
问题 (1)DelayQueue是阻塞队列吗? (2)DelayQueue的实现方式? (3)DelayQueue主要用于什么场景? 简介 DelayQueue是java并发包下的延时阻塞队列,常用于 ...
- jdk源码阅读笔记-LinkedList
一.LinkedList概述 LinkedList的底层数据结构为双向链表结构,与ArrayList相同的是LinkedList也可以存储相同或null的元素.相对于ArrayList来说,Linke ...
- springbatch的封装与使用
springbatch 主要实现批量数据的处理,我对batch进行的封装,提出了jobBase类型,具体job需要实现它即可.Spring Batch 不仅提供了统一的读写接口.丰富的任务处理方式.灵 ...
- 入门系列之使用Sysdig监视您的Ubuntu 16.04系统
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由乌鸦 发表于云+社区专栏 介绍 Sysdig是一个全面的开源系统活动监控,捕获和分析应用程序.它具有强大的过滤语言和可自定义的输出,以 ...
- java 轻量级同步volatile关键字简介与可见性有序性与synchronized区别 多线程中篇(十二)
概念 JMM规范解决了线程安全的问题,主要三个方面:原子性.可见性.有序性,借助于synchronized关键字体现,可以有效地保障线程安全(前提是你正确运用) 之前说过,这三个特性并不一定需要全部同 ...
- Oracle 中的SELECT 关键字(查询、检索)
1. SELECT 关键字用法: 检索单个列:select 列名 from 表名: 例:select ename from emp;检索多个列: select [列1,列2, ... ,列N] fro ...
- Rest_framework Router 路由器(含SimplyRouter源码浅解)
目录 Rest_framework Router 路由器 ViewSet结合Router,自动生成url. 将ViewSet注册到Router中,需要三个要素: 关于路由规则,细分有四类: rest_ ...