1

我需要监控我的 postgres 服务器。如果在给定时间后某些表格没有变化,我需要发出警报。我一直试图让 xymon 和 nagios 做到这一点,但我没能做到。请帮忙

4

4 回答 4

5

您可能想查看 pg_stat_user_tables 并注意表的行插入/删除/更新的统计信息是否已更改。这是在监控软件中检查此类活动的最简单方法。

从查看源代码到最好的 PostgreSQL 监控插件,Nagios 插件,您可能还会在这方面获得一些想法: check_postgres

于 2010-01-20T07:17:19.187 回答
3

首先,在任何修改语句(INSERT/UPDATE/DELETE)上激活的表上创建一个触发器。该触发器应该在某处更新“最后更改”时间戳(例如,其他控制表中的字段)。

然后,您将需要一个通过某些外部方式(例如 Unix 上的 cron)定期启动的单独进程。例如,此过程每 10 分钟或每小时运行一次——无论您需要什么粒度。它只是检查上次更改的时间戳,以确定自上次检查以来的时间段内是否有任何活动。

于 2010-01-13T09:45:00.167 回答
1

这不是一个免费的解决方案,但 LogicMonitor 的postgres 监控可以轻松做到这一点。

于 2010-01-13T18:06:48.443 回答
0

如果您有办法在文件在一段时间内没有更改时获得警报,那么我有一个不太优雅但可能更简单的解决方案:尝试找出 Postgres 存储相关表的文件名(有人应该深入系统Postgres 中的表 - 可能会在单独的问题中提出这个问题),然后设置您的监控工具以观察该文件的修改时间。

于 2010-01-18T22:30:03.250 回答