架构
实验环境介绍
测试的环境如下:
作用 | IP 地址 | 主机名 | 操作系统 | 版本 |
---|---|---|---|---|
Zabbix Server | 192.168.1.115 | 7-5 | CentOS 7 | zabbix-server-mysql-5.0 |
MySQL 机器(Zabbix Agent) | 192.168.91.115 | 7-5 | CentOS 7 | 5.5.68-MariaDB |
MySQL 机器(Zabbix Agent2) | 192.168.91.116 | 7-6 | CentOS 7 | 5.5.68-MariaDB |
zabbix-agent监控本地mysql
安装zabbix-agent并启动(略)
zabbix agent 安装mysql
yum install -y mariadb-server mariadb
systemctl enable --now mariadb #将数据库设置为开机自启,并立即启动 mysql_secure_installation #初始化数据库,并设置密码,如 abc123
##添加数据库用户,以及 zabbix 所需的数据库信息
mysql -u root -p123123 #登录数据库
在 Agent mysql中创建 Zabbix 监控用户
CREATE DATABASE zabbix character set utf8 collate utf8_bin; #设置utf8字符集
GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix'; #创建并授权用户,使得zabbix可以访问数据库
flush privileges; #刷新权限
配置zabbix监控账号密码
在/etc/my.cnf下加入上面创建的zabbix监控用户,登录数据库没有指定用户名密码时会优先默认使用以下身份登录
vim /etc/my.cnf
[client]
user='zabbix'
password='zabbix'
编写key值配置文件
git.zabbix.com/projects/ZB… 官方文档
vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
UserParameter=mysql.ping[*], mysqladmin -h"$1" -P"$2" ping
UserParameter=mysql.get_status_variables[*], mysql -h"$1" -P"$2" -sNX -e "show global status"
UserParameter=mysql.version[*], mysqladmin -s -h"$1" -P"$2" version
UserParameter=mysql.db.discovery[*], mysql -h"$1" -P"$2" -sN -e "show databases"
UserParameter=mysql.dbsize[*], mysql -h"$1" -P"$2" -sN -e "SELECT COALESCE(SUM(DATA_LENGTH + INDEX_LENGTH),0) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"
UserParameter=mysql.replication.discovery[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"
UserParameter=mysql.slave_status[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"
在agent配置文件把key文件include进来
vim /etc/zabbix/zabbix_agentd.conf
Include=/etc/zabbix/zabbix_agentd.d/*.conf #268行已经有就跳过
重启动zabbix_agentd
选择模板
查看最新数据
利用zabbix-agent2监控本地mysql
首先安装zabbix-agent2,并启动服务
zabbix-agent2安装mysql(略)
在agent2 mysql中创建 Zabbix 监控用户并赋予权限(略)
连接模板
查看监控项
筛选出模板下的mysql应用集
有几个监控项的键值用到3个变量,分别是mysql客户端ip,mysql登录的账号和密码,需要赋值