Помоћу удаљених команди можете дефинисати да се одређена унапред дефинисана команда аутоматски извршава на праћеном домаћину под одређеним условом.
Стога су удаљене команде моћан механизам за паметно проактивно праћење.
У најочигледнијим употребама ове функције можете покушати да:
Конфигурисање акције за удаљене команде је слично оном за слање поруке, једина разлика је што ће 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. Поново покрените демон агента ако промените овај параметар.
Затим, приликом конфигурисања нове акције у Упозорења → Акције → Окидачи акција:
Scripts that are available for action operations (webhook, script, SSH, Telnet, IPMI) are defined in global scripts.
For example:
In this case, Zabbix will try to restart an Apache process. With this command, make sure that the command is executed on Zabbix agent (click the Zabbix agent button against Execute on).
Note the use of sudo - Zabbix user does not have permissions to restart system services by default. See below for hints on how to configure sudo.
Starting with Zabbix agent 7.0, remote commands can also be executed on an agent that is operating in active mode. Zabbix agent - whether active or passive - should run on the remote host, and executes the commands in background.
Remote commands on Zabbix agent are executed without timeout by the system.run[,nowait] key and are not checked for execution results. On Zabbix server and Zabbix proxy, remote commands are executed with timeout as set in the TrapperTimeout parameter of zabbix_server.conf or zabbix_proxy.conf file and are checked for execution results. For additional information, see 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 | искључење |