2 Даљинске команде

Преглед

Са даљинским командама можете дефинисати ту одређену унапред дефинисану команду се аутоматски извршава на надгледаном домаћину под неким условом.

Стога су даљинске команде моћан механизам за паметну проактивност праћење.

У најочигледнијим употребама ове функције можете покушати да:

  • Аутоматски рестартујте неку апликацију (веб сервер, међувера, CRM) ако не одговори
  • Користите IPMI команду 'reboot' да бисте поново покренули неки удаљени сервер ако јесте не одговара на захтеве
  • Аутоматски ослободи простор на диску (уклањање старијих датотека, чишћење /tmp) ако понестане простора на диску
  • Мигрирајте VM из једне физичке кутије у другу у зависности од CPU-а оптерећење
  • Додајте нове чворове у окружење у облаку ако нема довољно CPU-а (диск, меморија, било које) ресурсе

Конфигурисање радње за даљинске команде је слично оној за слање порука, једина разлика је у томе што ће Zabbix извршити команду уместо да пошаље поруку.

Удаљене команде могу да извршавају Zabbix сервер, прокси или агент. Ремоте команде на Zabbix агенту могу се извршити директно од стране Zabbix сервера или преко Zabbix проксија. И на Zabbix агенту и на Zabbix прокси даљинском команде су подразумевано онемогућене. Они могу бити омогућени помоћу:

  • додавање параметра AllowKey=system.run[*] у конфигурацију агента;
  • постављање параметра EnableRemoteCommands на '1' у проксију конфигурацију.

Удаљене команде које извршава Zabbix сервер се покрећу како је описано у Извршење команде укључујући излаз провера кода.

Удаљене команде се извршавају чак и ако је циљни домаћин у одржавању.

Ограничење удаљене команде

Ограничење удаљене команде након решавања свих макроа зависи од типа база података и скуп знакова (не-АSCII карактери захтевају више од једног бајт за чување):

Database Limit in characters Limit in bytes
MySQL 65535 65535
Oracle Database 2048 4000
PostgreSQL 65535 није ограничено
SQLite (само Zabbix прокси) 65535 није ограничено

Излаз за даљинско извршавање команде (повратна вредност) је ограничен на 16MB (укључујући размак на крају који је скраћен). IPMI удаљена команда ограничење је засновано на инсталираној IPMI библиотеци. Имајте на уму да се ограничења базе података примењују на све удаљене команде.

Конфигурација

Оне удаљене команде које се извршавају на Zabbix агенту (прилагођене скрипте) мора се прво омогућити у агенту конфигурација.

Уверите се да је параметар AllowKey=system.run[<command>,*] додат за сваку дозвољену команду у конфигурацији агента да бисте дозволили одређену команду у режиму nowait. Поново покрените демон агента ако промените овај параметар.

Затим, када конфигуришете нову радњу у Упозорења → Радње → Покрени радње:

  1. Дефинишите одговарајуће услове, на пример, подесите да се акција активира у случају катастрофалних проблема са једном од Apache апликација.

  1. На картици Операције, кликните на Додај у блоку Операције, Опоравак или Операције ажурирања.

  1. Изаберите једну од унапред дефинисаних скрипти са падајуће листе Операција и поставите Циљну листу за скрипту.

Унапред дефинисане скрипте

Скрипте које су доступне за радње (webhook, script, SSH, Telnet, IPMI) су дефинисане у глобалне скрипте.

на пример:

sudo /etc/init.d/apache restart 

У овом случају, Zabbix ће покушати да поново покрене A процес. Са овим команде, уверите се да се наредба извршава на Zabbix агенту (кликните дугме Zabbix агент против Изврши на).

Обратите пажњу на употребу sudo - Zabbix корисник не подразумевано имају дозволе за поновно покретање системских услуга. Погледајте испод за савети како да конфигуришете sudo.

Почевши од Zabbix агента 7.0, удаљене команде се такође могу извршити на агенту који ради у активном режиму. Zabbix агент – без обзира да ли је активан или пасиван – треба да ради на удаљеном домаћину и извршава команде у позадини.

Удаљене команде на Zabbix агенту се извршавају без временског ограничења system.run[,nowait] кључ и нису проверени за резултате извршења. Он Zabbix сервер и Zabbix прокси, удаљене команде се извршавају са временском паузом као што је подешено у параметру TrapperTimeout zabbix_server.conf или zabbix_proxy.conf датотеку и су чекирано за резултати извршења. За додатне информације погледајте Скрипте временске паузе.

Дозволе за приступ

Уверите се да корисник 'zabbix' има дозволе за извршавање за конфигурисано команде. Можда ће неко бити заинтересован за коришћење sudo за давање приступа привилеговане команде. Да бисте конфигурисали приступ, извршите га као роот:

visudo

Примери линија које се могу користити у sudoers датотеци:

# дозвољава 'zabbix' кориснику да покрене све команде без лозинке.
       zabbix ALL=NOPASSWD: ALL
       
       # дозвољава 'zabbix' кориснику да поново покрене апацхе без лозинке.
       zabbix ALL=NOPASSWD: /etc/init.d/apache restart

На неким системима sudoers датотека ће спречити не-локално корисника од извршавања команди. Да бисте ово променили, коментаришите requiretty опција у /etc/sudoers.

Удаљене команде са више интерфејса

Ако циљни систем има више интерфејса изабраног типа (Zabbix агент или IPMI), удаљене команде ће се извршавати по подразумеваној вредности интерфејс.

Могуће је извршити даљинске команде преко SSH и Telnet користећи други интерфејс од оног Zabbix агента. Доступни интерфејс за употреба се бира следећим редоследом:

  • Подразумевани интерфејс Zabbix агента
  • SNMP подразумевани интерфејс
  • JMX подразумевани интерфејс
  • IPMI подразумевани интерфејс

IPMI даљинске команде

За IPMI удаљене команде треба користити следећу синтаксу:

<command> [<value>]

где

  • <command> - једна од IPMI команди без размака
  • <value> - 'укључено', 'искључено' или било који цео број без предзнака. <value> је опциони параметар.

Примери

Примери за глобал скрипте које се могу користити као даљинске команде у акцијама.

Пример 1

Поновно покретање Windows-а под одређеним условима.

Да бисте аутоматски поново покренули Windows након проблема који је открио Zabbix, дефинишите следећу скрипту:

Script parameter Value
Scope 'Операција радње'
Type 'Скрипта'
Command c:\windows\system32\shutdown.exe -r -f

Пример 2

Поново покрените хост користећи IPMI контролу.

Script parameter Value
Scope 'Операција радње'
Type 'IPMI'
Command ресет

Пример 3

Искључите домаћина користећи IPMI контролу.

Script parameter Value
Scope 'Операција радње'
Type 'IPMI'
Command искључење