news 2026/8/28 16:36:56

check_postgres 输出模式全解析:Nagios、MRTG 与 Cacti 三种格式完整对照表

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
check_postgres 输出模式全解析:Nagios、MRTG 与 Cacti 三种格式完整对照表

check_postgres 输出模式全解析:Nagios、MRTG 与 Cacti 三种格式完整对照表

【免费下载链接】check_postgresNagios check_postgres plugin for checking status of PostgreSQL databases项目地址: https://gitcode.com/gh_mirrors/ch/check_postgres

check_postgres 是一款专为 PostgreSQL 数据库打造的 Nagios 监控插件,通过--output参数支持nagios、mrtg、simple、cacti四种输出模式,一份脚本即可同时服务告警系统与绘图系统。本文将带你用 5 分钟彻底搞懂这四种格式的差别、适用场景和切换技巧。

check_postgres 是什么?为什么输出模式如此重要

check_postgres 是一个用 Perl 编写的命令行监控工具,内置了 40 多个检测动作(连接检查、事务时间、锁、膨胀、WAL 文件、复制状态等)。不同监控系统对脚本的输出格式要求完全不同:

  • Nagios / Icinga:需要"状态词 + 退出码"
  • MRTG:需要固定的多行数字,用于绘制流量曲线
  • Cacti:需要名称:数值数据对
  • Shell 脚本:往往只想要一个纯数字

check_postgres 用同一个参数--output=VAL就能切换这四种格式,避免了为每个监控系统维护一份脚本。

四种输出模式逐一拆解

1️⃣ Nagios 输出(默认模式)

perl check_postgres.pl --action=connection --db=pluto

输出为单行信息,格式是"状态词 + 冒号 + 简短描述",并配合 4 个标准退出码:

退出码状态含义
0OK正常
1WARNING警告
2CRITICAL严重
3UNKNOWN未知

Nagios 模式下还可以附加性能数据(perfdata)和耗时统计,相关参数是--showperf--perflimit--showtime,详见 check_postgres.pl 内置文档。

2️⃣ MRTG 输出:四行结构

MRTG 模式下输出固定为四行

行号内容说明
第 1 行核心数值通常是一个有意义的数字(如字节数),布尔型动作则输出 1 或 0
第 2 行辅助统计仅部分动作使用
第 3 行占位行传统上是 "uptime",基本不使用
第 4 行描述行通常标明数据来自哪个数据库

部分动作还支持--mrtg=VAL参数来进一步控制输出内容(例如指定输出最大/最小的哪一个库)。

3️⃣ simple 输出:只要一个数字

simple 是 MRTG 的"极简版"——只输出第一行的那个数字,其余全部丢弃。适合你只关心数值本身、不需要任何阈值判断的场景,比如写在自己的 shell 脚本里。

它还支持单位换算,在输出参数后追加 KB、MB、GB、TB、EB 即可:

check_postgres_txn_idle --port=6543 --output=simple,MB

另外可以直接用--simple作为快捷方式,等效于--output=simple

4️⃣ Cacti 输出:name:value 数据对

Cacti 输出把一个或多个数据项放在同一行,格式为名称:数值。目前内置显式 Cacti 输出的动作是dbstats(读取pg_stat_database视图),该动作只接受 Cacti 模式、不接收 warning/critical 阈值参数;对于其他多数动作,直接用--simple也能满足 Cacti 的取数需求。

三种(四种)格式完整对照表 ⭐

对比维度nagios(默认)mrtgsimplecacti
输出行数1 行4 行1 行1 行(多数据项)
输出内容状态词 + 描述 + 可选性能数据数值 + 辅助统计 + 占位 + 描述仅核心数值多个名称:数值
退出码0/1/2/3 四态成功 0,失败 3成功 0,失败 3成功 0
支持 warning/critical 阈值不依赖阈值不依赖阈值❌ 专属数据输出
单位换算✅ KB/MB/GB/TB/EB
典型用途Nagios 告警监控MRTG 绘图脚本取数、Cacti 通用取数Cacti 绘图
对应参数--output=nagios--output=mrtg--output=simple--simple--output=cacti

💡 小技巧:如果传入了非法值,脚本会报 "Invalid output: must be 'nagios' or 'mrtg' or 'simple' or 'cacti'",可据此快速自查拼写。

快速切换输出模式的 3 个实用技巧

技巧一:目录命名自动识别。如果你不写--output参数,而当前工作目录名里包含nagiosmrtgsimplecacti,脚本会自动采用对应模式。配合--symlinks生成的软链接使用非常顺手:

cd mrtg perl ../check_postgres.pl --symlinks

此后在该目录执行的检测动作默认就是 MRTG 输出。

技巧二:--simple快捷方式。它等价于--output=simple,还能覆盖目录命名识别规则,是临时取数时最省事的写法。

技巧三:软链接即动作名。--symlinks后,每个动作都有独立"可执行文件",例如check_postgres_connectioncheck_postgres_txn_idle,直接把它配置进 Nagios 命令即可。

安装 check_postgres 的最快方法

克隆仓库后走标准 Perl 安装流程即可:

git clone https://gitcode.com/gh_mirrors/ch/check_postgres cd check_postgres perl Makefile.PL make make test make install

更"偷懒"的 Nagios 用法:直接把check_postgres.pl拷进 Nagios 的脚本目录,然后运行--symlinks生成全套软链接。安装完成后可以执行man check_postgres查看完整文档(源文档同样在 check_postgres.pl 的 POD 文档段中),测试用例分布在t/目录(如 t/00_basic.t),文件清单见 MANIFEST。

总结:一张图记住选哪个模式

  • 告警(Nagios/Icinga)→ 默认 nagios 模式,配好 warning/critical 阈值
  • 画趋势图(MRTG)→--output=mrtg,关注第 1 行数字
  • 取纯数字进自己的脚本或 Cacti →--output=simple(可加单位)
  • Cacti 专属数据→ 用dbstats动作的 cacti 输出

四种模式共用同一套检测逻辑,切换只是换个"外壳",这也是 check_postgres 在 PostgreSQL 监控领域长期流行的原因之一。

【免费下载链接】check_postgresNagios check_postgres plugin for checking status of PostgreSQL databases项目地址: https://gitcode.com/gh_mirrors/ch/check_postgres

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/28 16:36:38

YOLO安全帽检测数据集实战:5000张多格式标注与YOLOv8训练全流程

简介:目标检测是计算机视觉的核心任务之一,其原理是通过算法在图像或视频中定位并识别出特定物体。这项技术的价值在于能够自动化地完成以往需要人工目视的检测工作,极大地提升了效率与准确性。在工业安全、智慧工地等应用场景中,…

作者头像 李华
网站建设 2026/8/28 16:36:19

遗传算法优化多元回归模型:从原理到Python实战

1. 从“调参噩梦”到“自动寻优”:为什么我们需要用遗传算法优化回归模型 做数据分析或者机器学习的朋友,对多元线性回归肯定不陌生。公式摆在那里, y β0 β1*x1 β2*x2 ... βn*xn ε ,看起来清晰明了。我们用最小二乘法…

作者头像 李华
网站建设 2026/8/28 16:35:52

Immich自托管照片管理完全指南:三步搭建你的免费照片备份平台

Immich自托管照片管理完全指南:三步搭建你的免费照片备份平台 【免费下载链接】immich High performance self-hosted photo and video management solution. 项目地址: https://gitcode.com/GitHub_Trending/im/immich 手机相册里照片越存越多,想…

作者头像 李华
网站建设 2026/8/28 16:35:42

OpenRouter实战:一个API Key调用所有主流大模型

OpenRouter 是一个把多家大模型接口聚合到一起的 API 路由平台。最近公开的数据显示,它的周 token 处理量在过去两年增长了约 9000 倍。这个数字单独看会让人觉得夸张,但放到大模型应用快速普及的这两年,其实是符合直觉的:模型厂商…

作者头像 李华
网站建设 2026/8/28 16:32:53

Hermes Agent 容器镜像安全实战:4 个阶段锁死基础镜像风险

Hermes Agent 容器镜像安全实战:4 个阶段锁死基础镜像风险 【免费下载链接】hermes-agent The agent that grows with you 项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent 上周有用户反馈 Hermes Agent 容器里的行为跟上周对不上&#xff0…

作者头像 李华
网站建设 2026/8/28 16:32:32

涉外必看:公证双认证什么意思?足不出户办理方法,无需来回对接

很多人准备出国留学、务工、移民或者开展跨境商务时,会被要求办理公证双认证,但大部分人并不清楚它到底是什么,线下来回跑多个部门对接,耗费大量时间精力。简单来说,公证双认证就是国内文书先完成涉外公证,…

作者头像 李华