9 Извршење команде

Zabbix користи уобичајену функционалност за спољне провере, корисничке параметре, system.run ставке, прилагођене скрипте упозорења, удаљене команде и глобалнe скрипте.

Кораци извршења

Подразумевано, све скрипте у Zabbix-у се извршавају помоћу sh shell-а, и није могуће модификовати подразумевани shell. Да бисте користили други shell, можете користити заобилазно решење: креирајте датотеку скрипте и позовите ту скрипту током извршавања команде.

Команда/скрипта се извршава на сличан начин и на Unix и на Windows платформама:

  1. Zabbix (родитељски процес) креира цев за комуникацију
  2. Zabbix поставља цев као излаз за подређени процес који треба да се креира
  3. Zabbix креира подређени процес (покреће команду/скрипту)
  4. Нова група процеса (на Unix-у) или посао (на Windows-у) је креирана за подређени процес
  5. Zabbix чита са цеви све док не дође до истека времена или нико више не пише на другом крају (СВИ идентификатори/дескриптори датотеке су затворени). Имајте на уму да подређени процес може креирати више процеса и изаћи пре него што они заврше или затворе идентификаторе/дескрипторе датотеке
  6. Ако истек времена није достигнут, Zabbix чека да иницијални подређени процес заврши или истекне време
  7. Ако је иницијални подређени процес завршен и истек времена није достигнут, Zabbix проверава излазни код почетног подређеног процеса и упоређује га са 0 (вредност која није нула се сматра неуспехом у извршењу, само за прилагођене скрипте упозорења, удаљене команде и корисничке скрипте које се извршавају на Zabbix серверу и Zabbix проксију)
  8. У овој фази се претпоставља да је све урађено и цело стабло процеса (тј. група процеса или посао) је прекинуто

Zabbix претпоставља да је команда/скрипта завршила обраду када је иницијални подређени процес завршен И ниједан други процес више не држи отвореним идентификаторе/дескрипторе излаза. Када је предпроцес обављен, СВИ креирани процеси се прекидају.

Сви двоструки наводници и обрнуте косе црте у команди се избегавају са обрнутим косим цртама и команда се затвара у двоструке наводнике.

Провера излазног кода

Излазни код се проверава под следећим условима:

  • Само за прилагођене скрипте упозорења, удаљене команде и корисничке скрипте које се извршавају на Zabbix серверу и проксију.
  • Било који излазни код који се разликује од 0 сматра се неуспехом у извршавању.
  • Садржај стандардне грешке и стандардни излаз за неуспешна извршења су прикупљени и доступни у корисничком интерфејсу (где је резултат извршења приказан).
  • Додатни лог унос је креиран за удаљене команде на Zabbix серверу како би се сачувао излаз скрипте за извршавање и може се омогућити помоћу LogRemoteCommands агента параметар.

Могуће поруке корисничког интерфејса и лог уноси за неуспеле команде/скрипте:

  • Садржај стандардне грешке и стандардни излаз за неуспела извршења (ако постоји).
  • "Процес је изашао са кодом: N." (за празан излаз и излазни код различит од 0).
  • "Процес прекинут сигналом: N." (за процес који је прекинут сигналом, само на Linux-у).
  • "Процес је неочекивано прекинут." (за процес прекинут из непознатих разлога).

Погледајте такође