本篇文章为大家介绍ZABBIX 如何通过官方自带Template DB MySQL和Template DB PostgreSQL 模板实现对 MySQL 和 PostgreSQL 数据库的监控。
ZABBIX 监控MySQL
1.MySQL上创建ZABBIX 监控用户
代码语言:javascript复制CREATE USER ‘zbx_monitor’@’%’ IDENTIFIED BY ‘<PASSWORD>‘;
GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON . TO ‘zbx_monitor’@’%’;
2.创建MySQL监控免密登录.my.cnf文件
代码语言:javascript复制cat /var/lib/zabbix/.my.cnf
[client]
user=zbx_monitor
password=zbx_monitor
注意:zabbix 用户运行zabbix-agent时文件在/var/lib/zabbix下 如果使用root用户运行zabbix-agent文件对应的目录为root家目录
3.查看ZABBIX MySQL监控脚本 ZABBIX 4.2安装agent后会生成MySQL监控脚本
代码语言:javascript复制vim /etc/zabbix/zabbix_agentd.d/template_db_mysql.conf
UserParameter=mysql.ping[], mysqladmin -h”2” ping
UserParameter=mysql.get_status_variables[], mysql -h”2” -sNX -e “show global status”
UserParameter=mysql.version[], mysqladmin -s -h”2” version
UserParameter=mysql.db.discovery[], mysql -h”2” -sN -e “show databases”
UserParameter=mysql.dbsize[], mysql -h”2” -sN -e “SELECT SUM(DATA_LENGTH INDEX_LENGTH) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=’$3’”
UserParameter=mysql.replication.discovery[], mysql -h”2” -sNX -e “show slave status”
UserParameter=mysql.slave_status[*], mysql -h”2” -sNX -e “show slave status”
4.zabbix_get测试
代码语言:javascript复制zabbix_get -s 172.18.0.71 -k mysql.ping[172.18.0.71,3306]
5.监控主机关联Template DB MySQL模板
配置MySQL主机宏参数
6.Template DB MySQL 模板宏参数介绍
7.查看MySQL 数据库监控数据
最新数据
图形
ZABBIX 监控PostgreSQL
1.PostgreSQL上创建ZABBIX监控用户(PostgreSQL 版本10以上)
代码语言:javascript复制CREATE USER zbx_monitor WITH PASSWORD ‘<PASSWORD>‘ INHERIT;
GRANT pg_monitor TO zbx_monitor;
2.开启PostgreSQL本地登陆认证(默认本地PostgreSQL登陆无认证)
代码语言:javascript复制host all zbx_monitor 127.0.0.1/32 trust
host all zbx_monitor 0.0.0.0/0 md5
host all zbx_monitor ::0/0 md5
3.拷贝postgresql 监控脚本目录至 /var/lib/zabbix/ 目录下,postgresql/目录包含从postgresql获取数据库指标所需的脚本文件。
4.将template_db_postgresql.conf复制到Zabbix代理配置目录/etc/zabbix/zabbix_agentd.d/目录下
代码语言:javascript复制[root@postgresql-db1 ~]# cat /etc/zabbix/zabbix_agentd.d/template_db_postgresql.conf
UserParameter=pgsql.bgwriter[*], psql -qtAX -h $1 -p $2 -U $3 -d $4 -f "/var/lib/zabbix/postgresql/pgsql.bgwriter.sql"
UserParameter=pgsql.connections.sum[*], psql -qtAX -h $1 -p $2 -U $3 -d $4 -f "/var/lib/zabbix/postgresql/pgsql.connections.sum.sql"
UserParameter=pgsql.connections[*], psql -qtAX -h $1 -p $2 -U $3 -d $4 -f "/var/lib/zabbix/postgresql/pgsql.connections.sql"
UserParameter=pgsql.connections.prepared[*], psql -qtAX -h $1 -p $2 -U $3 -d $4 -f "/var/lib/zabbix/postgresql/pgsql.connections.prepared.sql"
UserParameter=pgsql.dbstat.sum[*], psql -qtAX -h $1 -p $2 -U $3 -d $4 -f "/var/lib/zabbix/postgresql/pgsql.dbstat.sum.sql"
UserParameter=pgsql.dbstat[*], psql -qtAX -h $1 -p $2 -U $3 -d $4 -f "/var/lib/zabbix/postgresql/pgsql.dbstat.sql"
UserParameter=pgsql.transactions[*], psql -qtAX -h $1 -p $2 -U $3 -d $4 -f "/var/lib/zabbix/postgresql/pgsql.transactions.sql"
UserParameter=pgsql.config.hash[*], psql -qtAX -h $1 -p $2 -U $3 -d $4 -f "/var/lib/zabbix/postgresql/pgsql.config.hash.sql"
UserParameter=pgsql.wal.stat[*], psql -qtAX -h $1 -p $2 -U $3 -d $4 -f "/var/lib/zabbix/postgresql/pgsql.wal.stat.sql"
UserParameter=pgsql.locks[*], psql -qtAX -h $1 -p $2 -U $3 -d $4 -f "/var/lib/zabbix/postgresql/pgsql.locks.sql"
UserParameter=pgsql.queries[*], psql -qtAX -h $1 -p $2 -U $3 -d $4 -v tmax=$5 -f "/var/lib/zabbix/postgresql/pgsql.query.time.sql"
UserParameter=pgsql.uptime[*], psql -qtAX -h $1 -p $2 -U $3 -d $4 -f "/var/lib/zabbix/postgresql/pgsql.uptime.sql"
UserParameter=pgsql.cache.hit[*], psql -qtAX -h $1 -p $2 -U $3 -d $4 -f "/var/lib/zabbix/postgresql/pgsql.cache.hit.sql"
UserParameter=pgsql.scans[*], psql -qtAX -h $1 -p $2 -U $3 -d $4 -f "/var/lib/zabbix/postgresql/pgsql.scans.sql"
UserParameter=pgsql.frozenxid[*], psql -qtAX -h $1 -p $2 -U $3 -d $4 -f "/var/lib/zabbix/postgresql/pgsql.frozenxid.sql"
UserParameter=pgsql.discovery.db[*], psql -qtAX -h $1 -p $2 -U $3 -d $4 -f "/var/lib/zabbix/postgresql/pgsql.discovery.db.sql"
UserParameter=pgsql.db.size[*], psql -qtAX -h $1 -p $2 -U $3 -d $4 -c "SELECT pg_database_size('$5')"
#UserParameter=pgsql.ping[*], pg_isready -h $1 -p $2 -U $3 -d $4
UserParameter=pgsql.ping, netstat -auntp |grep 5432 |grep postmaster |grep -w tcp |wc |awk '{print $1}'
UserParameter=pgsql.ping.time[*], psql -qtAX -h $1 -p $2 -U $3 -d $4 -f "/var/lib/zabbix/postgresql/pgsql.ping.time.sql"
UserParameter=pgsql.version[*], psql -qtAX -h $1 -p $2 -U $3 -d $4 -c "SELECT version();"
UserParameter=pgsql.replication.count[*], psql -qtAX -h $1 -p $2 -U $3 -d $4 -c "SELECT count(*) FROM pg_stat_replication"
UserParameter=pgsql.replication.recovery_role[*], psql -qtAX -h $1 -p $2 -U $3 -d $4 -f "/var/lib/zabbix/postgresql/pgsql.replication.recovery_role.sql"
UserParameter=pgsql.replication.lag.sec[*], psql -qtAX -h $1 -p $2 -U $3 -d $4 -f "/var/lib/zabbix/postgresql/pgsql.replication.lag.sql"
UserParameter=pgsql.replication.status[*], psql -qtAX -h $1 -p $2 -U $3 -d $4 -f "/var/lib/zabbix/postgresql/pgsql.replication.status.sql"
重启服务
systemctl restart zabbix-agent
5.创建PostgreSQL监控免密登录pg_hba.conf文件
方法1
代码语言:javascript复制:5432:postgres:zbx_monitor:
:5432:postgres:zbx_monitor:
:5432:postgres:zbx_monitor:
方法2
代码语言:javascript复制*:5432:postgres:zbx_monitor:
注意:zabbix 用户运行zabbix-agent时文件在/var/lib/zabbix下 如果使用root用户运行zabbix-agent文件对应的目录为root家目录
6.zabbix_get测试
代码语言:javascript复制[root@zabbix-server ~]# zabbix_get -s 192.168.99.201 -k pgsql.replication.status[192.168.99.201,5432,postgres,zabbix]
2
[root@zabbix-server ~]# zabbix_get -s 192.168.99.201 -k pgsql.version[192.168.99.201,5432,postgres,zabbix]
PostgreSQL 11.5 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36), 64-bit
7.监控主机关联Template DB PostgreSQL模板
配置PostgreSQL主机宏参数
8.Template DB PostgreSQL模板宏参数介绍
9.查看PostgreSQL 数据库监控数据
最新数据
图形