1

有人知道一个 Intermapper 探针来测试一个 SQL 数据库是否存在并且被踢吗?

计划 B:有人知道编写这样一个探针的基本步骤吗?

4

3 回答 3

3

根据维基百科,InterMapper支持 SNMP。pgsnmpd是一个现成的 PostgreSQL SNMP 代理。您可以开箱即用地连接两者。

否则:InterMapper 据说是用 Java 编写的。它还将自己的数据存储在 PostgreSQL 中。从一开始就调用一个通用的 JDBC 探针或至少一个 PostgreSQL。所以最好的解决方案是打电话给他们并说服他们默认提供这样的探测——如果他们在某个地方还没有这样做的话。

关于计划 B:支持页面有一个文档描述了创建自定义探针的过程。快速浏览它会留下三个选项:

  • 定义你自己的探测类型——通过修改一些 XML
  • 使用基本上调用外部程序的“命令行探针”。在 Linux/Unix 上,编写一个psql用于连接数据库并发出一些愚蠢命令的脚本似乎也并不复杂。
  • 他们有 Nagios 对命令行探针的支持,并且有很多Nagios-PostgreSQL插件可用。

当然,您可以使用贡献的探针页面来获得足够的示例——“应用程序监控探针”部分中的 MS-SQL 探针可能是一个好的开始。

于 2012-04-08T17:56:05.803 回答
1

今天我不能帮助你使用 Intermapper,但编程部分取决于“活着和踢”对你意味着什么。

一种相当安全的编程方法是让一个 cron 作业在一个事务中将一行写入表中,然后在另一个事务中将其读回。您可能只需要一个时间戳。这应该从客户端计算机运行,而不是在服务器本身上运行。

写入失败应该会引发错误,但我想可能会有一些深奥的失败场景可能不会发生。然而,读回同一行应该是生活的确凿证据。

这样的程序会告诉您 dbms 正在运行和处理,并且有一个特定的数据库在线。您可能需要也可能不需要更多。有些人可能需要知道处理这些 SQL 语句需要多长时间,而时间过长意味着在用户开始调用之前需要您的注意。

对数据库权限的更改可能会引发错误警告。例如,如果傻瓜升级撤销了您写入心跳表的权限,那么写入该表的程序应该会失败并出现权限错误。

如果您的要求不那么严格,您可以只检查正在运行的服务器守护程序。

所有这些事情都可以通过 cron 作业完成,失败时发送电子邮件或 SMS。

于 2012-04-08T13:31:48.523 回答
0

Intermapper 可以使用 Nagios 探针(参见 Set Probe->Miscellaneous->Nagios Plugin 下)。您可以购买对您更有意义的探针并将其安装为 Nagios 插件。

于 2021-02-26T19:47:01.213 回答