我需要监控我的 postgres 服务器。如果在给定时间后某些表格没有变化,我需要发出警报。我一直试图让 xymon 和 nagios 做到这一点,但我没能做到。请帮忙
问问题
6151 次
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 回答