ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

check_postgres 15 个隐藏监控动作大揭秘:pgBouncer、pgAgent 与配置校验

check_postgres 15 个隐藏监控动作大揭秘:pgBouncer、pgAgent 与配置校验 check_postgres 15 个隐藏监控动作大揭秘pgBouncer、pgAgent 与配置校验【免费下载链接】check_postgresNagios check_postgres plugin for checking status of PostgreSQL databases项目地址: https://gitcode.com/gh_mirrors/ch/check_postgrescheck_postgres 是一款专为 PostgreSQL 设计的 Nagios 监控插件一个 Perl 脚本就能覆盖数据库连接、性能、事务、磁盘等数十种检查场景。除了大家都用过的connection、backends之外它还埋藏了 15 个鲜有人知的隐藏动作——从 pgBouncer 配置校验到 pgAgent 定时任务告警从配置指纹比对到事务回绕预警。读完本文你的 PostgreSQL 监控体系会直接升级一个档次。快速上手check_postgres 监控插件怎么用整个项目的核心就是一个脚本 check_postgres.pl安装只需复制到 Nagios 脚本目录再创建符号链接即可perl check_postgres.pl --symlinks之后就可以用check_postgres_动作名的方式调用比如check_postgres_connection。也可以统一用主程序加--action参数指定动作。本文介绍的所有动作都遵循同样的调用模式-w警告阈值和-c严重阈值二选一或组合使用。 所有动作的完整清单可通过check_postgres.pl --help查看源码中动作定义集中在主脚本的$action_info哈希中。一、连接池与任务代理pgBouncer、pgAgent 监控这是本文的重头戏。如果你的架构里用了 pgBouncer 连接池或 pgAgent 定时任务框架以下三个动作能让监控覆盖到数据库之外。1. pgbouncer_checksumpgBouncer 配置变更守门员对 pgBouncer 的全部配置项排序后生成 MD5 校验和。只要有人改了pgbouncer.ini并重启校验和立刻对不上——堪称配置防篡改报警器。用法分两步先用--critical0取出当前校验和作为基线之后每次监控都拿它比对。动作会自动把数据库名设为pgbouncer无需手动指定。相关行为可在测试文件 t/02_pgbouncer_checksum.t 中看到完整验证逻辑。2. pgagent_jobspgAgent 定时任务失败告警pgAgent 是 PostgreSQL 内置的定时任务框架但任务悄悄失败是常见事故源。这个动作会检查指定时间窗口内是否有任何步骤返回非零结果--critical1d最近一天内有失败任务则告警--critical2h --warning4h按严重 2 小时 / 警告 4 小时双档监控时间单位支持s / m / h / d简写参考测试 t/02_pgagent_jobs.t。3. pgbouncer_maxwait连接池排队最长等待时间监控 pgBouncer 队列中最久客户端的等待秒数。这个数值持续上涨通常意味着服务器过载或pool_size配小了——是定位应用变慢但数据库正常这类问题的利器。二、配置校验与完整性防篡改、防漂移4. settings_checksumPostgreSQL 配置指纹比对原理与pgbouncer_checksum相同把pg_settings里所有参数名和值排序后做 MD5 校验。任何一次ALTER SYSTEM都会被捕捉到。注意不同用户因权限差异可能看到不同校验和建议固定用一个超级用户监控。5. cluster_id数据库系统标识符监控通过pg_controldata读取系统标识符确认你监控的还是当初那个库。--critical0可先取基线之后填入真实 ID。该动作必须在数据库所在本机执行不支持-h远程。6. same_schema两套库结构一致性校验比对两个数据库的表、列、索引是否完全一致。主从重建、蓝绿部署后悄悄少了一张表的隐患一条命令就能排查常用于生产库与备库的结构漂移检查。7. disabled_triggers谁偷禁了触发器扫描所有被置为 disabled 状态的触发器。触发器被禁用往往意味着数据校验或级联逻辑失效适合加入日常巡检。三、事务安全网回绕、两阶段提交与悬挂事务8. txn_wraparound事务 ID 回绕预警PostgreSQL 事务 ID 是有限的接近回绕点若不介入会导致数据库冻结。这个动作报告各库距离回绕还有多远是预防性运维中优先级最高的检查项之一。9. prepared_txns两阶段提交事务年龄监控监控 prepared 状态事务的数量与开启时长。默认警告阈值只有 1 秒——因为大多数系统里出现两阶段提交事务本身就值得怀疑注意它和 prepared statement 不是一回事。10. txn_idleidle in transaction 悬挂事务统计空闲在事务中的连接数与最长时长支持5 个连接空闲超 10 秒这种复合阈值。悬挂事务会白白占用锁和 WAL这个动作专治此类隐形杀手。四、运维利器WAL、时钟、序列与版本11. wal_filesWAL 文件数量监控统计pg_xlog目录下 WAL 文件数量。数量异常增长可能暗示归档停滞或检查点配置不当是归档链路健康的最直观信号对应测试见 t/02_wal_files.t。12. timesync数据库时间与系统时间比对比较本地系统时间与数据库时间差默认警告 2 秒、严重 5 秒。多机复制、基于时间的分区场景下时钟漂移是最隐蔽的故障源这个动作一条命令覆盖多台主机。13. sequence序列剩余调用量检查序列sequence距离上限还剩多少次调用提前发现序列耗尽导致插入失败的低级但致命问题。14. new_version_cpcheck_postgres 自身版本监控检查是否有更新版本的 check_postgres 可用。监控工具本身也需要被监控否则插件 bug 会长期潜伏在你的巡检链路里。15. commitratio提交/回滚比例分析报告所有数据库的 commit 占比按最低值排序输出。某库回滚率突然飙升往往是应用 bug 或重试风暴的早期信号比看错误日志更快。15 个隐藏动作一览表#动作名一句话定位1pgbouncer_checksumpgBouncer 配置防篡改2pgagent_jobs定时任务失败告警3pgbouncer_maxwait连接池排队时延4settings_checksumPostgreSQL 配置指纹5cluster_id系统标识符防漂移6same_schema双库结构一致性7disabled_triggers被禁触发器巡检8txn_wraparound事务回绕预警9prepared_txns两阶段提交监控10txn_idle悬挂空闲事务11wal_filesWAL 文件数量12timesync时钟漂移检测13sequence序列余量预警14new_version_cp插件版本监控15commitratio提交回滚比例下一步测试用例是最好的学习材料项目的 t/ 目录为每个动作都配了集成测试例如 t/02_txn_wraparound.t、t/02_same_schema.t、t/02_timesync.t是学习参数用法的最佳参考。配合 README.md 的完整安装说明和 Makefile.PL 的标准 Perl 构建流程perl Makefile.PL make make install即可跑起make test验证环境。上手建议先接入settings_checksumpgbouncer_checksum守住配置基线再用txn_wraparound与wal_files覆盖安全底线最后按需开启 pgBouncer / pgAgent 专项监控——你的 Nagios 面板从此不再只是数据库活着没。【免费下载链接】check_postgresNagios check_postgres plugin for checking status of PostgreSQL databases项目地址: https://gitcode.com/gh_mirrors/ch/check_postgres创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表