我需要远程查询来自Java应用程序的nrpe nagios服务器,就像 check_nrpe 那样:
check_nrpe -H 192.***.***.*** -p 56** -c "check_load"
当我说“来自Java应用程序”时,我的意思是我希望在我的Java应用程序中接收和处理结果。我的第一个想法是从我的应用程序调用“check_nrpe”命令并检索其输出和返回值,但我想要一个独立的解决方案,其中没有外部程序被调用。
我不需要等待状态更改,只需最终检查监视器状态。由于我无法找到任何Java库(我应该尝试JNRPE吗?),我想实现协议 check_nrpe 和 nrpe 守护程序用于通信。
你们之前有没有尝过这个?在这种情况下,你有这个协议的描述吗?
如果您的答案是否定的,我会尝试使用whireshark来分析协议,但任何线索都会非常感激。
答案 0 :(得分:1)
Andreas Marschke博客对{NR}协议的解释,The NRPE Protocol explained(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
有两个具体的类来实现协议请求和响应
可以在jnrpe-lib-1.0.1-RC5\src\main\java\it\jnrpe\net\
文件夹