Пишу, по большей части, про историю, свою жизнь и немного про программирование.

Zabbix и sudo

Несколько дней назад админы у нас настраивали звонилку в системе мониторинга «Заббикс», чтобы получать уведомления о различных проблемах. Раньше всё было через ботов, а теперь, когда телеграм прищучили, понадобилась более традиционная сигнализация.

Дело не сложное — вешаешь триггер, который должен запускать команду. Вроде всё прописали, но не работает. При этом в логах тишь и гладь. Я сел поразбираться.

Подцепился через strace к нужному процессу, понаблюдал как он запускает команду. Оказывается для запуска команды делается дочерний процесс, ему передаётся строка для запуска строка, а дальше дочерний процесс жалуется «sudo: sorry, you must have a tty to run sudo» во второй поток (stderr), но это никуда не попадает — ни в логи, ни на экран. Странная архитектура.

Ошибка обозначает, что пользователю, из-под которого работает «Заббикс», запрещён sudo без терминала. Без терминала sudo не сможет отключить показ пароля на экране, поэтому по-умолчанию проверка включена. Так как у нас работает не человек и пароль нигде не набирается, то проверку надо выключить опцией !requiretty.

2 комментария
Павел 2018

а мы просто корпоративный socks proxy для отправляющего скрипта включили и остались пока в телеграме
что вы вместо телеграма решили для уведомлений использовать?

Евгений Степанищев 2018

что вы вместо телеграма решили для уведомлений использовать?

Звонки на номер дежурного админа.