Я в конфигурации агента добавил параметр:
ExternalParameter = Test:/usr/sbin/test.sh
Затем добавил DCI который берет информацию из Test.
Скрипт в терминале я выполняю так sudo -u testuser /usr/sbin/test.sh... Это необходимо по той причине, что только пользователь testuser может получить данные необходимые для мониторинга, продиктовано это политикой безопасности и изменить это нельзя.
ExternalParameter = Test: sudo -u testuser /usr/sbin/test.sh - не работает, я так понимаю, что linux ждет ввода пароля, которого нет.
В sudoer в самом конце добавлен параметр root ALL=(ALL:ALL) NOPASSWD: /usr/sbin/test.sh, что влечет за собой отсутствие запроса на ввод пароля при выполнении команды sudo -u testuser /usr/sbin/test.sh через терминал.
Собственно вопрос, как можно выполнить скрипт и получить данные в netxms?
Я только что проверил – работает:
nxagentd.conf:
ExternalParameter = TestSUDO:sudo -u alk /tmp/test.sh
~ % cat /tmp/test.sh
#!/bin/sh
id
% ls -la /tmp/test.sh
-rwxr-xr-x 1 alk wheel 14 Apr 8 01:16 /tmp/test.sh
~ % nxget localhost TestSUDO
uid=501(alk) gid=20(staff) groups=20(staff),503(boinc_project),502(boinc_master),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),501(access_bpf),701(com.apple.sharepoint.group.1),33(_appstore),100(_lpoperator),204
Запустите агент с DebugLevel=4 (e.g. nxagentd -D4) и проверьте ошибки.