2

我需要从 Java 应用程序远程查询 nrpe nagios 服务器,就像check_nrpe会做的那样:

check_nrpe -H 192.***.***.*** -p 56** -c "check_load"

当我说“来自 Java 应用程序”时,我的意思是我希望在我的 Java 应用程序中接收和处理结果。我的第一个想法是从我的应用程序中调用“check_nrpe”命令并检索其输出和返回值,但我想要一个不调用外部程序的独立解决方案。

我不需要等待状态更改,只需最终检查监视器状态即可。由于我无法找到任何 Java 库(我应该尝试 JNRPE 吗?),我想实现协议check_nrpenrpe守护程序用于通信。

你们有没有人试过这个?在那种情况下,你有这个协议的描述吗?

如果您的答案是否定的,我将尝试使用 whireshark 分析协议,但任何线索将不胜感激。

4

1 回答 1

2

来自Andreas Marschke博客的 NRPE 协议解释,NRPE 协议解释(也在gitHub上)

无论如何,JNRPE有该协议的完整工作实现,您可以下载jcheck_nrpe-2.0.3-RC5源代码并查看jcheck_nrpe-2.0.3-RC5\src\main\java\it\jnrpe\client\JNRPEClient.java使用jnrpe-lib-1.0.1-RC5.

jnrpe-lib有两个实现协议请求和响应的具体类

  • JNRPERequest.java
  • JNRPEResponse.java

完整的协议实现类可以在jnrpe-lib-1.0.1-RC5\src\main\java\it\jnrpe\net\文件夹中找到

于 2014-01-10T09:40:28.067 回答