Sidebar

pl:manual:config:notifications:action:operation:remote_command

2 Polecenia zdalne

Przegląd

Dzięki zdalnym poleceniom, można przygotować automatycznie wykonywane na monitorowanych hostach zestawy komend, które zostaną uruchomione po spełnieniu określonych warunków.

Zatem zdalne polecenia stanowią potężny mechanizm inteligentnego pro-aktywnego monitorowania.

Najbardziej oczywistym wykorzystaniem tej funkcjonalności jest próba:

  • Automatycznego restartu jakiejś aplikacji (serwera www, warstwy pośredniczącej, CRM), gdy nie odpowiada
  • Użycia polecenia IPMI 'reboot' do zrestartowania jakiegoś zdalnego serwera, jeżeli nie odpowiada na zapytania
  • Automatycznego zwolnienia przestrzeni dyskowej (usunięcie starych plików, czyszczenie /tmp), jeżeli zaczyna brakować miejsca
  • Zmigrowania maszyny wirtualnej z jednej maszyny fizycznej na inną w zależności od obciążenia CPU
  • Dodania nowego węzła do środowiska chmury przy niewystarczających zasobach CPU (dysk, pamięć, cokolwiek)

Konfiguracja akcji dla zdalnych poleceń jest podobna do tych dla wysyłania wiadomości, jedyną różnicą jest to, że Zabbix wykona polecenia zamiast wysyłania wiadomości.

Nie jest możliwe wykonanie zdalnych poleceń na agentach Zabbix monitorowanych przez proxy Zabbix, ponieważ do wykonania poleceń z serwera Zabbix wymagane jest bezpośrednie połączenie z agentem.

Polecenia zdalne ograniczone są do 255 znaków. Można wykonać wiele poleceń jedno po drugim, umieszczając je w kolejnych liniach. Polecenia zdalne mogą zawierać makra!

Podręcznik ten krok po kroku pokazuje, w jaki sposób można ustawić polecenia zdalne.

Konfiguracja

Polecenia zdalne wykonywane na agencie Zabbix agent (własne skrypty) najpierw muszą być włączone w odpowiednim pliku zabbix_agentd.conf.

Należy się upewnić, że parametr EnableRemoteCommands jest ustawiony na 1 i nie jest zakomentowany. Jeżeli zmieniamy ten parametr, należy zrestartować agenta.

Polecenia zdalne nie działają na aktywnych agentach Zabbix.

Następnie, podczas konfigurowania nowej akcji w Konfiguracja→Akcje:

  • W zakładce Operacje, należy wybrać typ operacji Zdalne polecenie
  • Wybrać typ zdalnego polecenia (IPMI, Własny skrypt, SSH, Telnet, Skrypt globalny)
  • Wprowadzić zdalne polecenie

Na przykład:

sudo /etc/init.d/apache restart 

W tym przypadku, Zabbix spróbuje zrestartować proces Apache. Przy tym poleceniu, należy upewnić się, że komenda wykona się na agencie Zabbix (zaznaczyć odpowiedni przycisk radiowy przy Wykonaj na).

Należy zauważyć, że użyto sudo - domyślnie użytkownik Zabbix nie posiada uprawnień do restartowania usługi. Zobacz poniżej podpowiedzi, jak skonfigurować sudo.
Agent Zabbix powinien działać na zdalnym hoście i akceptować połączenia przychodzące. Agent Zabbix wykonuje polecenia w tle.
Zabbix nie sprawdza, czy polecenie zostało wykonane prawidłowo.

Polecenia zdalne na agencie Zabbix wykonywane są bez opóźnienia z wykorzystaniem klucza system.run[,nowait]. Na serwerze Zabbix zdalne polecenia wykonywane są z opóźnieniem zdefiniowanym w parametrze TrapperTimeout w pliku zabbix_server.conf.

  • W zakładce Warunki, należy zdefiniować odpowiednie warunki. W tym przykładzie, ustawiamy, że akcja jest aktywowana po dowolnym problemie poziomu katastrofa, jednej z aplikacji Apache.

Uprawnienia dostępu

Należy się upewnić, że użytkownik 'zabbix' ma uprawnienia do wykonania skonfigurowanych poleceń. Niektórzy mogą być zainteresowani użyciem sudo do nadania dostępu do uprzywilejowanych poleceń. Żeby skonfigurować dostęp, należy wykonać jako root:

# visudo

Przykładowe linie, które mogą być użyte w pliku sudoers:

# pozwolenie dla użytkownika 'zabbix' na uruchomienie wszystkich poleceń bez hasła.
zabbix ALL=NOPASSWD: ALL
# pozwolenie dla użytkownika 'zabbix' na restartowanie apache bez hasła.
zabbix ALL=NOPASSWD: /etc/init.d/apache restart
W niektórych systemach plik sudoers zabrania wykonywania komend użytkownikom nie-lokalnym. Żeby to zmienić, należy zakomentować opcję requiretty w /etc/sudoers.

polecenia zdalne z wieloma interfejsami

Jeżeli system docelowy ma wiele interfejsów wybranego typu (agent Zabbix lub IPMI), polecenia zdalne będą wykonywane na domyślnym interfejsie.

Przykłady

Przykład 1

Restart Windows w określonych warunkach.

Żeby wykonać automatyczny restart Windows po wykryciu problemu przez Zabbix, należy zdefiniować następujące akcje:

PARAMETR opis
Typ operacji'Zdalne polecenie'
Typ 'Własny skrypt'
Polecenie c:\windows\system32\shutdown.exe -r -f
Przykład 2

Restart hosta przy użyciu IPMI.

PARAMETR Opis
Typ operacji'Zdalne polecenie'
Typ 'IPMI'
Polecenie reset on
Przykład 3

Wyłączenie hosta przy użyciu IPMI.

PARAMETR Opis
Typ operacji'Zdalne polecenie'
Typ 'IPMI'
Polecenie power off