@Teyla

Как сделать так. чтобы заббикс корректно выполнял скрипт?

Добрый день.

Нужно замониторить один девайс с помощью External Check.
Скрипт, к которому заббикс обращается, выглядит так:

#!/bin/bash

status=`/etc/BGCashcheckServer/testserver.sh --dotest | grep Смена | sed 's/Смена открыта: //'`

if [[ $status = 'да' ]]
then
    echo "1"
else
   echo "0"
fi


Дело в том, что если вручную запустить скрипт - то выводится 1, если же это делает заббикс, то 0.
Я уже выяснил, что при выполнении заббиксом переменная $status не содержит внутри себя ничего.
Дело тут в правах, или в чем-то еще?

Спасибо.
  • Вопрос задан
  • 1798 просмотров
Решения вопроса 1
@Teyla Автор вопроса
Решил проблему, и заключалась она в ином.
Оказалось, что для пользователя заббикс нужно было тоже задефайнить переменные окружения, которые показывают где лежит джава и тот софт, к которому обращается скрипт. Я не уточнял здесь, что они должны быть определены, я думал, они определяются в /etc/profile для всех пользователей сразу.
Определил эти переменные прямо в самом теле скрипта и все заработало.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@bes_internal
webdev: perl, gentoo, html/css
Из документации:
Команда будет выполнена от имени пользователя под которым запущен Zabbix сервер, так что любые права доступа или переменные среды должны быть обработаны в оболочке скрипта, если необходимо, и права доступа на команду должны разрешать этому пользователю выполнение скрипта.

Так что chmod o+x /etc/BGCashcheckServer/testserver.sh и проверряется черезsudo -u zabbix ваш_скрипт.sh
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы