Выхватил странную ошибку, при вызове кастомного скрипта через UserParameter, таким образом:

UserParameter=item_key[*],sudo /usr/local/bin/script.sh $1

В веб-морде заббикса получал

Received value [tput: unknown terminal "unknown"...]

Впервые такое увидел, пошел в поиск и… пусто, по крайней мере связанного с заббиксом не обнаружил. В других ситуациях люди сталкивались с подобной ошибкой, если была установлена некорректная переменная TERM в системе, на которой запускалась команда.

Это было реально странно, так как буквально соседний скрипт, на этом же хосте исполняется без проблем. При чем при тестировании ключа через запуск:

zabbix_agentd -t item_key[OPT]

Все прекрасно отрабатывало.

Есть у меня предположение, что это связано с вызовом в этом скрипте mgrctl-скрипта от ISPSystem, который недоволен стандартной TERM.

Ну что ж, решил по тупому, добавить экспорт и вышло так:

UserParameter=item_key[*],export TERM=linux; sudo /usr/local/bin/script.sh $1

Представьте себе мое удивление, когда оно заработало! 🙂

 

upd 13.12.2016

Нашел еще один workaround данной проблемы.

Заключается в добавлении строки:

Defaults:zabbix    !requiretty

в /etc/sudoers.

Там есть строка вида:

Defaults    requiretty

Вот сразу за ней и добавляем вторую.

У меня заработало.