pgsql数据库默认配置事务类型_专栏|Zabbix 5.0 监控 PostgreSQL 数据库

1dd2debe014fdfb7f4f63c54ab4a76a0.png

张思德

------------------

Zabbix社区签约专家

  • ZbxTable是由张思德先生自主开发的开源的Zabbix报表系统,支持分析和导出,还拓展了GraphTree的功能,对统计消息数据是强有力的补充。

  • 2017-2019 Zabbix 峰会演讲嘉宾,演讲部分建议被Zabbix新版本采用。

  • 2020Zabbix峰会演讲嘉宾,主题《Zabbix 5.0 & Timescale DB》、Workshop实践操作课讲师。

 文章简介

Zabbix 支持 PostgreSQL 作为后台数据库,相比 Mysql,PostgreSQL 可加载 timescaledb 插件,提升 Zabbix 性能,同时还支持数据的压缩,因此对于 PostgreSQL 数据库的监控是非常需要的。使用 zabbix5.0 自带的数据库模版及脚本即可实现对 PostgreSQL 的监控。

 一.PostgreSQL 配置 

 1.创建用户

需要在 PostgreSQL 数据库建立监控专用的用户,由于 PostgreSQL 版本不同相关命令会有一定差别,创建一个 zbx_monitor 用户密码为 zbx_monitorpwd123

PostgreSQL 10 以上版本

su - postgrespsqlCREATE USER zbx_monitor WITH PASSWORD 'zbx_monitorpwd123' INHERIT;GRANT pg_monitor TO zbx_monitor;

PostgreSQL 9.6 版本及以下

su - postgrespsqlCREATE USER zbx_monitor WITH PASSWORD 'zbx_monitorpwd123';GRANT SELECT ON pg_stat_database TO zbx_monitor;ALTER USER zbx_monitor WITH SUPERUSER;

2.配置访问策略

编辑 pg_hba.conf 文件,并添加如下内容

host all zbx_monitor 127.0.0.1/32 trusthost all zbx_monitor 0.0.0.0/0 md5host all zbx_monitor ::0/0 md5

如果 Zabbix agent 和 PostgreSQL 在不同机器,需要配置密码文件,需要创建.pgpass 文件,并存放在 zabbix 用户的家目录下,内容如下:

:5432:postgres:zbx_monitor:

配置好之后记得重启 PostgreSQL 服务

 二.Zabbix 配置 

1.添加主机

添加主机之后,关联系统自带的 Template DB PostgreSQL 模版

23b837cae6f5de94cc88adc7b8934f20.png

配置如以下主机宏

b66ed8a822685bb387c15b8ed89d08d8.png 83e8bdbf6791b0d7a54a4a1aaaa2bdd3.png

更多宏的配置及说明请点击查看官网说明

2.配置 Agent

PostgreSQL 监控需要在 Zabbix Agent 端添加脚本文件。

点击下载监控脚本

下载到 Agent 所在机器,添加 Postgresql 监控 SQL 文件

bashwget https://dl.cactifans.com/zabbix/postgresql.tar.gzmkdir -p /var/lib/zabbix/tar zxvf postgresql.tar.gzcp -r postgresql/postgresql/ /var/lib/zabbix/

添加 UserParameter 文件到 Agent 的 zabbix_agentd.d 目录(根据实际情况修改)

cp -r postgresql/template_db_postgresql.conf  /etc/zabbix/zabbix_agentd.d/

并修改 zabbix_agentd.conf 文件,确保 UserParameter 被加载

Include=/etc/zabbix/zabbix_agentd.conf.d/*.conf

重启 Zabbix Agent

3.脚本 Bug 修复

正常添加后,已经可以看到部分数据,观察 Zabbix Server 日志,会发现如下错误信息

29128:20200702:014602.152 item "Zabbix server:pgsql.dbstat.blks_read.rate["zabbix"]" became not supported: Preprocessing failed for: psql:/var/lib/zabbix/postgresql/pgsql.dbstat.sql:17: ERROR:  field name must not be null1. Failed: cannot extract value from json by path "$['zabbix'].blks_read": cannot parse as a valid JSON object: invalid object format, expected opening character '{' or '[' at: 'psql:/var/lib/zabbix/postgresql/pgsql.dbstat.sql:17: ERROR:  field name must not be null'

观察 PostgreSQL 监控指标,确实有部分 item 显示为 unsupported 状态,查询资料后发现是由于 sql 脚本问题,修改 sql 文件

vi /var/lib/zabbix/postgresql/pgsql.dbstat.sql

修改为如下内容

sqlSELECT json_object_agg(datname, row_to_json(T)) FROM (        SELECT datname,                        numbackends,                        xact_commit,                        xact_rollback,                        blks_read,                        blks_hit,                        tup_returned,                        tup_fetched,                        tup_inserted,                        tup_updated,                        tup_deleted,                        conflicts,                        temp_files,                        temp_bytes,                        deadlocks        FROM pg_stat_database        WHERE datname is not NULL) T

等待一会就会发现如下日志

 29128:20200702:104902.227 item "Zabbix server:pgsql.dbstat.tup_deleted.rate["zabbix"]" became supported 29128:20200702:104902.227 item "Zabbix server:pgsql.dbstat.tup_fetched.rate["zabbix"]" became supported 29128:20200702:104902.228 item "Zabbix server:pgsql.dbstat.tup_inserted.rate["zabbix"]" became supported 29128:20200702:104902.228 item "Zabbix server:pgsql.dbstat.tup_returned.rate["zabbix"]" became supported 29128:20200702:104902.228 item "Zabbix server:pgsql.dbstat.tup_updated.rate["zabbix"]" became supported 29128:20200702:104902.228 item "Zabbix server:pgsql.dbstat.xact_commit.rate["zabbix"]" became supported 29128:20200702:104902.228 item "Zabbix server:pgsql.dbstat.xact_rollback.rate["zabbix"]" became supported 29128:20200702:104902.228 item "Zabbix server:pgsql.dbstat.temp_bytes.rate["zabbix"]" became supported 29128:20200702:104902.228 item "Zabbix server:pgsql.dbstat.blks_read.rate["zabbix"]" became supported 29128:20200702:104902.228 item "Zabbix server:pgsql.dbstat.conflicts.rate["zabbix"]" became supported 29128:20200702:104902.228 item "Zabbix server:pgsql.dbstat.blks_hit.rate["zabbix"]" became supported 29128:20200702:104902.228 item "Zabbix server:pgsql.dbstat.temp_files.rate["zabbix"]" became supported 29128:20200702:104902.228 item "Zabbix server:pgsql.dbstat.deadlocks.rate["zabbix"]" became supported

采集正常,此 bug 已提交官方[ZBX-18099]

 三.最终效果 

基本信息

a5580d791dc5f65c3234408ed0b1ddb2.png

自动发现数据库,监控数据库信息

bb5596d2b8e830c1c9d95852d8c04420.png

点击加入社区成长计划

想了解更多Zabbix最新资讯与实践案例,

欢迎参加2020 Zabbix中国峰会!

5df3df3fdb4ebae9011d9733a4358fa9.png

点击查看峰会详情

延伸阅读

  • 专栏|社区专家自主开发Zabbix开源报表组件ZbxTable,助力告警分析!

  • Z投稿 | Zabbix 5.0 LTS 版本安装

点击在看,把好文章分享给你的朋友(•̀ᴗ•́)و ̑̑

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值