У меня есть NSClient ++, установленный на некоторых распределенных серверах Windows, для мониторинга которых я использую Icinga. У меня также есть ИБП, подключенный к каждому серверу, который может выполнить пользовательскую команду перед планированием выключения. Я хотел бы создать пакетный сценарий, который вызывает клиента NSCA, чтобы уведомить мой центральный сервер о том, что хост работает от батареи. Из nsc.ini видно, что NSCAClient может только периодически проверять локальную команду / службу и отправлять результаты на центральный сервер. Можно ли делать то, что я хочу, и если да, то как?
Да, это так.
Вы можете использовать NSCA и NRPE из командной строки (если у вас более новая версия NSClient ++), что означает, что вы можете отправлять данные по своему усмотрению. Это будет работать с 0.4.2 и 0.4.3 (и, возможно, 0.4.1)
nscp nsca --command wicked_command --result WARNING --message "Wh000t I am wicked" --host 127.0.0.1 --log debug --source-host MyHost
Для некоторых дополнительных параметров выполните:
nscp nsca -- --help # <0.4.2
nscp nsca --help # >0.4.3
Если вы хотите проверить это, вы можете использовать следующую конфигурацию:
[/modules]
SimpleFileWriter = enabled
NSCAServer = enabled
[/settings/default]
allowed hosts = 127.0.0.1
[/settings/NSCA/server]
inbox = FILE
Затем запустите nsclient ++ (в тестовом режиме) и введите указанную выше команду, и для каждой команды, отправляемой в NSCA (с помощью указанной выше команды), будет записываться файл output.txt.
В Документы NSClient ++ довольно подробны, так что вы можете начать с этого.