我需要监控我的postgres服务器。如果在给定时间后某些表中没有变化,我需要发出警报。我一直试图让xymon和nagios这样做,我无法做到。请帮忙
答案 0 :(得分:5)
您可能希望查看pg_stat_user_tables并注意表的行插入/删除/更新的统计信息是否已更改。这是在监控软件中检查此类活动的最简单方法。
从查看源代码到最好的PostgreSQL监控插件,Nagios one:check_postgres
,您可能也会从这方面获得想法。答案 1 :(得分:3)
首先,在表上创建一个trigger,激活任何修改语句(INSERT / UPDATE / DELETE)。此触发器应更新某个地方的“最后更改”时间戳(例如某些其他控制表中的字段)。
然后,您将需要一个由一些外部手段(例如Unix上的cron)定期启动的单独进程。该过程例如运行每10分钟,或每小时 - 无论您需要多少粒度。它只是检查上次更改的时间戳,以确定自上次检查以来是否有任何活动。
答案 2 :(得分:1)
这不是一个免费的解决方案,但LogicMonitor的postgres monitoring可以做到这一点。
答案 3 :(得分:0)
如果你有办法在一段时间内没有改变文件时收到警报,那么我有一个不那么优雅,但可能更简单的解决方案:试着找出Postgres存储问题表的文件名(有人应该深入了解Postgres中的系统表 - 可能会在另一个问题中提出这个问题),然后设置监控工具来观察该文件的修改时间。