Помоћу удаљених команди можете дефинисати да се одређена унапред дефинисана команда аутоматски извршава на праћеном домаћину под одређеним условом.
Стога су удаљене команде моћан механизам за паметно проактивно праћење.
У најочигледнијим употребама ове функције можете покушати да:
Конфигурисање акције за удаљене команде је слично оном за слање поруке, једина разлика је што ће Zabbix извршити команду уместо слања поруке.
Удаљене команде може извршити Zabbix сервер, прокси или агент. Удаљене команде на Zabbix агенту могу се извршити директно од стране Zabbix сервера или преко Zabbix проксија. И на Zabbix агенту и на Zabbix проксију, удаљене команде су подразумевано онемогућене. Могу се омогућити:
AllowKey=system.run[*]
у конфигурацији агента;Удаљене команде које извршава Zabbix сервер извршавају се као што је описано у Извршавање команди, укључујући проверу излазног кода.
Удаљене команде се извршавају чак и ако је циљни хост у одржавању.
Ограничење удаљених команди након решавања свих макроа зависи од типа базе података и скупа знакова (знакови који нису ASCII захтевају више од једног бајта за чување):
Database | Limit in characters | Limit in bytes |
---|---|---|
MySQL | 65535 | 65535 |
PostgreSQL | 65535 | |
SQLite (само Zabbix прокси) | 65535 | not limited |
Излаз извршавања удаљене команде (повраћена вредност) је ограничен на 16MB (укључујући скраћени размак на крају). Ограничење IPMI удаљене команде је засновано на инсталираној IPMI библиотеци. Имајте на уму да се ограничења базе података примењују на све удаљене команде.
Даљинске команде које се извршавају на Zabbix агенту (прилагођене скрипте) морају прво бити омогућене у конфигурацији агента конфигурација.
Уверите се да је параметар AllowKey=system.run[<command>,*] додат за сваку дозвољену команду у конфигурацији агента како би се дозволила одређена команда са режимом nowait. Поново покрените демон агента ако промените овај параметар.
Затим, приликом конфигурисања нове акције у Упозорења → Акције → Окидачи акција:
Скриптови који су доступни за акционе операције (вебхук, скрипта, SSH, Телнет, IPMI) су дефинисани у глобални скриптови.
На пример:
sudo /etc/init.d/apache restart
У овом случају, Zabbix ће покушати да поново покрене Apache процес. Са овом командом, уверите се да се команда извршава на Zabbix агенту (кликните на дугме Zabbix агент поред Изврши на).
Имајте на уму употребу sudo - Zabbix корисник нема дозволе за поновно покретање системских сервиса подразумевано. Погледајте доле за савете о томе како да конфигуришете sudo.
Почевши од Zabbix агента 7.0, удаљене команде се такође могу извршавати на агенту који ради у активном режиму. Забикс агент - било да је активан или пасиван - треба да ради на удаљеном хосту и да извршава команде у позадини.
Удаљене команде на Zabbix агенту се извршавају без временског ограничења помоћу кључа system.run[,nowait] и не проверавају се резултати извршења. На Zabbix серверу и Zabbix проксију, удаљене команде се извршавају са временски ограниченим ограничењем подешеним у параметру TrapperTimeout датотеке zabbix_server.conf или zabbix_proxy.conf и проверавају се за резултате извршења. За додатне информације, погледајте Script timeout.
Уверите се да корисник 'zabbix' има дозволе за извршавање конфигурисаних команди. Можда ће вас занимати коришћење sudo за давање приступа привилегованим командама. Да бисте конфигурисали приступ, извршите као root:
visudo
Примери линија које се могу користити у датотеци sudoers:
zabbix ALL=NOPASSWD: ALL
zabbix ALL=NOPASSWD: /etc/init.d/apache restart
На неким системима, датотека sudoers ће спречити кориснике који нису локални да извршавају команде. Да бисте ово променили, коментаришите опцију requiretty у /etc/sudoers.
Ако циљни систем има више интерфејса изабраног типа (Zabbix агент или IPMI), удаљене команде ће се извршавати по подразумеваној вредности интерфејс.
Могуће је извршити даљинске команде преко SSH и Telnet користећи други интерфејс од оног Zabbix агента. Доступни интерфејс за употреба се бира следећим редоследом:
За IPMI удаљене команде треба користити следећу синтаксу:
where
Примери за глобал скрипте које се могу користити као даљинске команде у акцијама.
Пример 1
Поновно покретање Windows-а под одређеним условима.
Да бисте аутоматски поново покренули Windows након проблема који је открио Zabbix, дефинишите следећу скрипту:
Script parameter | Value |
---|---|
Scope | 'Операција радње' |
Type | 'Скрипта' |
Command | c:\windows\system32\shutdown.exe -r -f |
Пример 2
Поново покрените домаћина користећи IPMI контролу.
Script parameter | Value |
---|---|
Scope | 'Action operation' |
Type | 'IPMI' |
Command | reset |
Пример 3
Искључите домаћина користећи IPMI контролу.
Script parameter | Value |
---|---|
Scope | 'Операција радње' |
Type | 'IPMI' |
Command | искључење |