zabbix 通过percona对mysql 进行监控
percona:专门针对数据库进行自动化维护工具
通过zabbix监控Mysql步骤
准备agent端安装percona
-
下载percona插件
-
percona下载地址:https://www.percona.com/downloads/percona-monitoring-plugins/
-
下载安装
-
下载安装是在zabbix agent 端进行
[root@localhost ]# wget https://downloads.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.8/binary/redhat/7/x86_64/percona-zabbix-templates-1.1.8-1.noarch.rpm
--2021-12-09 19:06:57-- https://downloads.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.8/binary/redhat/7/x86_64/percona-zabbix-templates-1.1.8-1.noarch.rpm
正在解析主机 downloads.percona.com (downloads.percona.com)... 162.220.4.222, 74.121.199.231, 162.220.4.221
正在连接 downloads.percona.com (downloads.percona.com)|162.220.4.222|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:28296 (28K) [application/octet-stream]
正在保存至: “percona-zabbix-templates-1.1.8-1.noarch.rpm”
100%[=================================================================================================================================================>] 28,296 130KB/s 用时 0.2s
2021-12-09 19:06:59 (130 KB/s) - 已保存 “percona-zabbix-templates-1.1.8-1.noarch.rpm” [28296/28296])
[root@localhost ]# ls
opt pear pear.conf percona-zabbix-templates-1.1.8-1.noarch.rpm php.d php-fpm.conf php-fpm.d php.ini pki pm skel sysconfig X11 xdg xinetd.d
[root@localhost ]# yum localinstall percona-zabbix-templates-1.1.8-1.noarch.rpm -y
已加载插件:fastestmirror, langpacks
正在检查 percona-zabbix-templates-1.1.8-1.noarch.rpm: percona-zabbix-templates-1.1.8-1.noarch
percona-zabbix-templates-1.1.8-1.noarch.rpm 将被安装
正在解决依赖关系
--> 正在检查事务
---> 软件包 percona-zabbix-templates.noarch.0.1.1.8-1 将被 安装
--> 解决依赖关系完成
依赖关系解决
===========================================================================================================================================================================================
Package 架构 版本 源 大小
===========================================================================================================================================================================================
正在安装:
percona-zabbix-templates noarch 1.1.8-1 /percona-zabbix-templates-1.1.8-1.noarch 342 k
事务概要
===========================================================================================================================================================================================
安装 1 软件包
总计:342 k
安装大小:342 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : percona-zabbix-templates-1.1.8-1.noarch 1/1
Scripts are installed to /var/lib/zabbix/percona/scripts
Templates are installed to /var/lib/zabbix/percona/templates
验证中 : percona-zabbix-templates-1.1.8-1.noarch 1/1
已安装:
percona-zabbix-templates.noarch 0:1.1.8-1
完毕!
[root@localhost rh-php72]#
- 文件结构介绍
[root@localhost ~]# rpm -ql percona-zabbix-templates
/var/lib/zabbix/percona #程序目录
/var/lib/zabbix/percona/scripts #插件脚本存放目录
/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh #shell脚本,用于针对监控数据进行取值
#要想请求到数据库中的数据,需要动态请求或者动态解析的情况下,shell脚本如果获取数据,其实是里面调用了php脚本
/var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php #php脚本,真正获取Mysql数据的脚本
#结构:通过php脚本获取数据库的数据,
#再通过Shell脚本将php脚本获取的数据,转变为zabbix监控项语法结构中要求的取值类型,
#然后再由zabbix 进行配置
/var/lib/zabbix/percona/templates
/var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf #zabbix agent客户端监控配置文件
/var/lib/zabbix/percona/templates/zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml #模板 percona 直接提供了模板,就是上面那些需要的脚本,配置
#模板:监控项+触发器+自动发现+web检测+图形化展示
[root@localhost ~]#
agent端安装数据库
[root@localhost ~]# wget https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm
[root@localhost ~]# ls mysql57-community-release-el7-11.noarch.rpm
mysql57-community-release-el7-11.noarch.rpm
[root@localhost ~]# rpm -ivh mysql57-community-release-el7-11.noarch.rpm
[root@localhost ~]# yum -y install mysql-server //安装Mysql
[root@localhost ~]# systemctl start mysqld
[root@localhost ~]# systemctl enable mysqld
#用日志查看数据库初始密码
[root@localhost ~]# grep 'root@localhost:' /var/log/mysqld.log
#最后:后面显示的是密码
A temporary password is generated for root@localhost: P#KJz5uMu!
[root@localhost ~]# mysql -hlocalhost -uroot -p
mysql>Enter password
#修改密码
mysql> alter user root@"localhost" identified by "******";
mysql> grant all on *.* to zabbix@"localhost" identified by "*******";
Query OK, 0 rows affected, 1 warning (0.03 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.11 sec)
执行percona模板
#测试一下,发现什么都没有取出来,进入到
[root@localhost ~]# zabbix_agentd -t MySQL.Questions
ERROR:*****************************************
#这里会报错,原因是没有php,脚本里面需要/var/lib/php路径下有php
下载php之前需要修改一下配置文件
否则会无数据取出
[root@localhost ~]# zabbix_agentd -t MySQL.Questions
MySQL.Questions [t|]
[root@localhost ~]# ^C
#没有数据取出来,
需要将下面这段php的配置文件放入到下main这个路径下的配置文件中
[root@localhost ~]# vi /etc/yum.repos.d/zabbix.repo
添加的内容为下,直接粘贴进去;
[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
下载php
[root@localhost ~]#rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
[root@localhost ~]# yum install php70w-common php70w-fpm php70w-opcache php70w-gd php70w-mysqlnd php70w-mbstring php70w-pecl-redis php70w-pecl-memcached php70w-devel
[root@localhost ~]# yum list |grep zabbix-web-mysql
zabbix-web-mysql.noarch 5.0.18-1.el8 zabbix
zabbix-web-mysql-scl.noarch 5.0.18-1.el7 zabbix-frontend
zabbix-web-mysql-scl-php73.noarch 5.0.18-1.el7 zabbix-frontend
[root@localhost ~]# yum install zabbix-web
zabbix-web-deps-scl.noarch zabbix-web-japanese.noarch zabbix-web-mysql-scl-php73.noarch zabbix-web-pgsql-scl.noarch
zabbix-web-deps-scl-php73.noarch zabbix-web-mysql.noarch zabbix-web.noarch zabbix-web-pgsql-scl-php73.noarch
zabbix-web-deps.x86_64 zabbix-web-mysql-scl.noarch zabbix-web-pgsql.noarch
[root@localhost ~]# yum install zabbix-web-mysql-scl-php73.noarch -y
..........
.............
................(这里报错)
-> 解决依赖关系完成
错误:软件包:zabbix-web-deps-scl-php73-5.0.18-1.el7.noarch (zabbix-frontend)
需要:rh-php73-php-mbstring
错误:软件包:zabbix-web-deps-scl-php73-5.0.18-1.el7.noarch (zabbix-frontend)
需要:rh-php73-php-fpm
错误:软件包:zabbix-web-deps-scl-php73-5.0.18-1.el7.noarch (zabbix-frontend)
需要:rh-php73-php-ldap
错误:软件包:zabbix-web-mysql-scl-php73-5.0.18-1.el7.noarch (zabbix-frontend)
需要:rh-php73-php-mysqlnd
错误:软件包:zabbix-web-deps-scl-php73-5.0.18-1.el7.noarch (zabbix-frontend)
需要:rh-php73-php-bcmath
错误:软件包:zabbix-web-deps-scl-php73-5.0.18-1.el7.noarch (zabbix-frontend)
需要:rh-php73-php-gd
错误:软件包:zabbix-web-deps-scl-php73-5.0.18-1.el7.noarch (zabbix-frontend)
需要:rh-php73
错误:软件包:zabbix-web-deps-scl-php73-5.0.18-1.el7.noarch (zabbix-frontend)
需要:rh-php73-php-xml
您可以尝试添加 --skip-broken 选项来解决该问题
[root@localhost ~]# yum install centos-release-scl -y
总计 1.2 kB/s | 24 kB 00:00:20
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : centos-release-scl-rh-2-3.el7.centos.noarch 1/2
正在安装 : centos-release-scl-2-3.el7.centos.noarch 2/2
验证中 : centos-release-scl-2-3.el7.centos.noarch 1/2
验证中 : centos-release-scl-rh-2-3.el7.centos.noarch 2/2
已安装:
centos-release-scl.noarch 0:2-3.el7.centos
作为依赖被安装:
centos-release-scl-rh.noarch 0:2-3.el7.centos
完毕!
[root@localhost ~]# yum install zabbix-web-mysql-scl -y
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* centos-sclo-rh: mirrors.aliyun.com
* centos-sclo-sclo: mirrors.aliyun.com
* epel: mirrors.ustc.edu.cn
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
* webtatic: us-east.repo.webtatic.com
..........................
..........................
[root@localhost ~]# which php
/usr/bin/php
[root@localhost ~]#
[root@localhost ~]# php -v
PHP 7.0.33 (cli) (built: Dec 6 2018 22:30:44) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.33, Copyright (c) 1999-2017, by Zend Technologies
[root@localhost ~]# /usr/bin/php -q /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php --host localhost --items gg
ERROR: Access denied for user 'cactiuser'@'localhost' (using password: YES)[root@localhost ~]#
#连接数据库,权限拒绝
因为用户是'cactiuser'
#修改该文件,将数据库的用户名和密码修改为之前配置的数据库和密码
[root@localhost ~]# vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
#修改完再次执行,执行成功
[root@localhost ~]# /usr/bin/php -q /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php --host localhost --items gg
gg:18[root@localhost ~]#
##再次执行测试语句,有数据
[root@localhost ~]# zabbix_agentd -t MySQL.Questions
MySQL.Questions [t|12]
[root@localhost ~]#
客户端这边没有问题了
服务端
[root@localhost ~]# zabbix_get -s 192.168.1.129 -k MySQL.Questions
rm: 无法删除"/tmp/localhost-mysql_cacti_stats.txt": 不允许的操作
12
[root@localhost ~]#
#也有数据
从客户端 将percona模板拿出来
[root@localhost templates]# sz zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml
进入web端进行配置
导入失败 标签无效 “/zabbix_export/date”: “YYYY-MM-DDThh:mm:ssZ” 预计。
报错!!!
percona只适用于zabbix3.0之前的版本,它没有更新,所以导入模板失败
!!!!
解决方法需要升级,
这里给个模板资源,下载下来可以直接用,或者自己在网上找找;
百度网盘:提取码:xukd
监控的是agent主机上的mysql,所以该主机关联模板;
模板这里显示不支持,前面我们执行测试语句时,也报了这个错,原因是这个文件没有权限
进入客户端添加权限
[root@localhost ~]# chown -R zabbix:zabbix /tmp/localhost-mysql_cacti_stats.txt
[root@localhost ~]# systemctl restart zabbix-agent.service
[root@localhost ~]# zabbix_agentd -t MySQL.Questions
MySQL.Questions [t|6366]
[root@localhost ~]#
再次查看web端,正常了,个别参数不支持是数据库本身就是空的,还没有那些参数