前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ZABBIX 4.4 监控 MySQL PostgreSQL

ZABBIX 4.4 监控 MySQL PostgreSQL

作者头像
Kevin song
修改2020-03-10 13:26:05
3.9K1
修改2020-03-10 13:26:05
举报
文章被收录于专栏:运维监控日志分析

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

最新数据

图形

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源搬运工宋师傅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档