ZABBIX 4.4 监控 MySQL PostgreSQL

2020-03-10 13:26:05 浏览数 (1)

本篇文章为大家介绍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 数据库监控数据

最新数据

图形

0 人点赞