Описание протокола NRPE

Мне нужно удаленно запросить nrpe-сервер nrpe из Java-приложения, как сделал бы check_nrpe:

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

Когда я говорю "из приложения Java", я имею в виду, что хочу, чтобы результаты были получены и обработаны в моем приложении Java. Первой идеей было вызвать команду "check_nrpe" из моего приложения и получить ее выходные и возвращаемые значения, но я бы хотел больше автономного решения, при котором не вызывались бы внешние программы.

Мне не нужно ждать изменений состояния, просто в конце концов проверьте состояние монитора. Поскольку мне не удалось найти какую-либо библиотеку Java (я должен попробовать JNRPE?), Я хотел бы реализовать протокол check_nrpe и использование демона nrpe для связи.

Кто-нибудь из вас пробовал это раньше? В таком случае, у вас есть описание этого протокола?

Если ваши ответы будут отрицательными, я постараюсь проанализировать протокол, используя whireshark, но любая подсказка будет высоко оценена.

1 ответ

Решение

Объяснение протокола NRPE из блога Andreas Marschke, объяснение протокола 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\ папка

Другие вопросы по тегам