Тайм-аут сокета NRPE через NRPE, работает как пользователь nrpe

nrpe на лазурном сервере — nrpe-srvr, пользователь nrpe, выполнение скрипта /usr/local/naemon/libexec/check_curl_http.php Я назову его script

Желаемый результат после ./script -U www.google.com:

Page OK: HTTP Status Code 200 - 11099 bytest in 0.** seconds | time=0.059 size=11099

Я достигаю вышеуказанного вывода, запустив скрипт из root или nrpe

Запуск sudo -u nrpe ./script -U www.google.com возвращает:

Error in opening page! Err:Failed to connect to [ipv6 addr] Network is unreachable

Однако бег su - nrpe -c './script -U www.google.com' работает с желаемым результатом.

Наймон сообщает:

CHECK_NRPE: Socket timeout after 30 secs

Другие проверки NRPE на том же хосте работают, поэтому я думаю, что это как-то связано с выполнением пользователем этого конкретного скрипта. У меня был отказ от SELinux, но я поправил контекст. Удаление контекста и установка разрешающего режима для SELinux привели к той же ошибке. Включены файлы журнала NRPE с отладкой, но, кроме Running command, это мало что раскрывает. Eсть:

WARNING: my_system() seteuid(0): Operation not permitted

в журналах, но глядя на документацию поддержки, это «нормальное» поведение.

Попробуйте также запустить этот скрипт в подробном режиме.

Rohlik 01.04.2019 12:36

Я думаю, что скрипт работает нормально. На самом деле мне удалось заставить его работать как другой пользователь, используя su - nrpe - c './script -u www.google.com' в порядке. Так что я думаю, что сценарий это нормально. Выполнение NRPE вызывает проблему.

itChi 01.04.2019 12:59
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
2
739
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я опубликую это на всякий случай, если у кого-то еще возникнет эта проблема, и я отмечу Azure/AWS.

По сути, облачные провайдеры (в основном) имеют внутренний прокси-сервер, который хранится в переменной среды http_proxy && https_proxy. NRPE по умолчанию не использует переменные среды загрузки. Теперь я не знаю, есть ли для этого вариант (в документах упоминается, что есть ошибка при использовании uid вместо имени пользователя (использовалось имя пользователя)), однако достаточно просто вызвать прокси для таких проверок.

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