Назад | Перейти на главную страницу

Zabbix не запускает пользовательский скрипт предупреждений

Я использую Debian 8 и Zabbix 3.2.

Я создал собственный сценарий оповещения, который отлично работает, когда я запускаю в терминале:

/bin/sh /usr/lib/zabbix/alertscripts/send_sms.sh 4483222740 Hello

Это отправка SMS через Twilio, работает нормально.

В моем zabbix_server.conf у меня есть:

AlertScriptsPath=/usr/lib/zabbix/alertscripts

Я создал пользовательский тип мультимедиа, следуя https://www.zabbix.com/documentation/3.2/manual/config/notifications/media/script

Но сценарий не называется. У меня есть общий тип носителя для электронной почты, который запускается правильно.

Мои разрешения для сценария:

ls -alh
total 12K
drwxr-xr-x 2 root root 4.0K Mar  9 09:04 .
drwxr-xr-x 4 root root 4.0K Feb  3 13:36 ..
-rwxr--r-- 1 root root  165 Mar  9 09:12 send_sms.sh

Я попытался найти "send_sms" в каталоге / var / log / с помощью grep, чтобы узнать, не возникли ли какие-либо ошибки. Ничего.

Я заканчиваю свой сценарий

exit 0

Как отлаживать?

а) разрешения, которые вы цитируете, -rwxr--r-- 1 root root 165 Mar 9 09:12 send_sms.sh, разрешить выполнение скрипта только для root пользователь (владелец скрипта). Демоны Zabbix обычно запускаются как zabbix user, поэтому у этого пользователя нет разрешения на запуск сценария. Поскольку сценарий уже доступен для чтения во всем мире, изменение разрешений на 755 должно быть приемлемым и позволит Zabbix запустить сценарий.

б) если ваш скрипт полагается на какие-либо переменные среды, убедитесь, что вы установили их в самом скрипте - Zabbix не создает профиль или что-либо еще, что вы можете ожидать, чтобы установить эти переменные

Вместо того чтобы открывать разрешения, вы можете создать файл sudoers, который позволяет пользователю zabbix запускать скрипт. Синтаксис Sudoers действительно привередлив, и если вы его испортите, он полностью сломает sudo, пока вы не удалите неправильный файл или строку, поэтому будьте осторожны.

zabbix ALL=NOPASSWD: /usr/lib/zabbix/alertscripts/send_sms.sh * Между zabbix и ALL должен быть символ табуляции, а не пробел, поэтому убедитесь, что ваш редактор не заменяет его. Этот сайт, кажется, делает это, поэтому не копируйте и вставляйте это напрямую.

Бросьте эту строку в /etc/sudoers.d/zabbix например. Сделайте это как root, чтобы вас не заблокировали, если вы случайно сломаете sudo на себе. Впоследствии вы можете проверить синтаксис с помощью visudo -cf /etc/sudoers.d/zabbix.

Изменить: Опять же, мой вариант использования для этого - проверка, связанная с обновлениями с использованием apt-get, для которого требуется root. Twilio, вероятно, все еще работает, и это просто вопрос чтения / выполнения вашего файла.

Я решил этот вопрос, а не о разрешении, напишите сюда, может помочь другим. Поскольку zabbix запускает ваш скрипт, он не находится в вашем Alertscript, поэтому вам просто нужно добавить одну команду: cd $ Alertscriptpath (на основе вашей среды), это просто работает