Меню Закрыть

Zabbix выполнение удаленных команд

Содержание

IT-Blog

Допустим, у вас есть два сервера (Сервер-А и Сервер-Б) связанных между собой по VPN и в случае, если Сервер-Б стал недоступен (упал VPN), то после поднятия VPN, на Сервере-А нужно перезапустить определенный сервис.

Для выполнения команды на перезапуск сервиса используется SSH.

В Zabbix настроен мониторинг Сервера-Б (icmppingloss) и когда 100% потери пакетов до Сервера-Б, то срабатывает Триггер (Trigger), который инициирует Действие (Action) — «Отправить сообщение» (Send message) о проблеме на e-mail. В нашем случае будет и второе Действие (Action) — «Удалённая команда» (Remote command), т.е. перезапуск сервиса.

Меню: Настройка > Действия > Создать действие (источник события: Триггеры)

Menu: Configuration > Actions > Create action (Event source: Triggers)

В Условия (Conditions) добавляем Триггер (Trigger), на который будет реакция.

Zabbix: Создание действия

Настраиваем «Операции восстановления»

Нам нужно перезапустить сервис только когда VPN канал восстановится, т.е. когда два сервер будут уже видеть друг друга. Поэтому, идём в закладку «Операции восстановления» (Recovery operations).

Zabbix: Создание действия > Операции восстановления

Указываем название темы. С данной темой будет приходить письмо с оповещением о выполнении удалённой команды.

Добавляем операции

В поле «Операции» (Operations) нажимаем кнопка «Новый» (New).

Добавляем операцию «Отправить сообщение« (Send message).

Zabbix: Создание действия > Операции восстановления > Отправка сообщения

Добавляем операцию «Удаленная команда» (Remote command).

Zabbix: Создание действия > Операции восстановления > Удалённая команда

В поле «Список целей» (Target list) указываем Сервер-А (именно на нём нам нужно перезапустить сервис).

В поле «Команды» (Commands), указываем команду, которую нужно выполнить удалённо на Сервере-А для перезапуска нужного сервиса.

Читайте также:  Vga qvga что лучше

Остальные поля понятны.

В результате будет выглядеть следующим образом:

Zabbix: Создание действия > Операции восстановления

Нажимаем кнопку «Добавить»!

Теперь, когда сработает Триггер и произойдёт восстановление (VPN канал поднялся), нам придёт сообщение на e-mail и произойдёт подключение по SSH к Серверу-А и выполнение команды на перезапуск сервиса.

Если возникают проблемы с выполнением удалённых команд, то идём в «Отчёты > Журнал действий» (Reports > Actions log) и смотрим, какие там ошибки относящиеся к нашему Действию.

Zabbix: Журнал действий

Команда не выполнилась, неверно указал пароль для подключения по SSH.

Если у вас удалённые команды корректно выполняются, но в «Отчёты > Журнал действий» (Reports > Actions log) появляется следующая ошибка: «Cannot read data from SSH server»,

User Tools

Site Tools

Table of Contents

2 Удаленные команды

Обзор

С помощью удаленных команд вы можете указать какие из предустановленных команд будут выполнены на наблюдаемом узле сети при выполнении некоторых условий.

Таким образом, удаленные команды являются мощным механизмом для умного про-активного мониторинга.

Из наиболее очевидных применений функции вы можете попробовать:

Настройка действий для удаленных команд аналогична настройке действий для отправки сообщений, с той лишь разницей, что вместо отправки сообщения Zabbix будет выполнять команду.

Ограничение длины удаленных команд после раскрытия всех макросов зависит от типа базы данных и заданной кодировки (для хранения не-ASCII символов требуется более одного байта):

База данных Ограничение в символах Ограничение в байтах
MySQL 65535 65535
Oracle Database 2048 4000
PostgreSQL 65535 не ограничено
IBM DB2 2048 2048
SQLite (только Zabbix прокси) 65535 не ограничено

Смотрите также страницу выполнения команд.

Удаленные команды будут выполнены даже если намеченный узел сети в обслуживании.

Читайте также:  Яндекс карты фото со спутника

Следующее руководство содержит пошаговые инструкции о том, как настроить удаленные команды.

Настройка

Удаленные команды, которые выполняются на стороне Zabbix агента (пользовательские скрипты) сначала должны быть включены в соответствующем zabbix_agentd.conf.

Убедитесь, что параметр EnableRemoteCommands равен 1 и раскомментирован. Перезапустите демона агента, если изменили этот параметр.

Затем, при настройке нового действия в Настройка→Действия:

В этом случае, Zabbix попытается перезапустить процесс Apache. Используя эту команду, убедитесь, что она будет выполнена Zabbix агентом (нажмите на Zabbix агент напротив Выполнять на).

Удаленные команды на Zabbix агенте выполняются без использования какого-либо времени ожидания с помощью ключа system.run[,nowait]. На Zabbix сервере удаленные команды выполняются со временем ожидания указанном в TrapperTimeout параметре в zabbix_server.conf файле.

Права доступа

Убедитесь, что пользователь ‘zabbix’ имеет права на выполнение добавленных команд. Один наиболее интересный вариант — использование sudo для предоставления доступа к привилегированным командам. Для настройки доступа, выполните из под root:

Примеры строк, которые можно использовать в файле sudoers:

Удаленные команды при наличии нескольких интерфейсов

Если целевая система имеет несколько интерфейсов выбранного типа (Zabbix агент или IPMI), удаленные команды будут выполнены на интерфейсе по умолчанию.

До Zabbix 3.0.4 для удаленных команд через SSH и Telnet мог использоваться только интерфейс агента. Начиная с Zabbix 3.0.4, имеется возможность выполнять удаленные команды через SSH и Telnet, используя интерфейс отличный от Zabbix агент интерфейса. Доступный интерфейс, который будет использоваться, выбирается в следующем порядке:

Удаленные команды через IPMI

В случае удаленных команд через IPMI необходимо использовать следующий синтаксис:

Примеры

Пример 1

Перезагрузка Windows при определенном условии.

Для того, чтобы автоматически перезагрузить Windows, когда Zabbix обнаруживает проблемы, определим следующие действия:

Читайте также:  Система adas в авторегистраторах yi
ПАРАМЕТР Описание
Тип операции ‘Удаленная команда’
Тип ‘Пользовательский скрипт’
Команда c:windowssystem32shutdown.exe -r -f
Пример 2

Перезагрузка узла сети с использованием управления по IPMI.

ПАРАМЕТР Описание
Тип операции ‘Удаленная команда’
Тип ‘IPMI’
Команда reset
Пример 3

Выключение узла сети с использованием управления по IPMI.

Задача: отследить выполнение команды на Zabbix агенте, которые не входят в стандартную комплектацию.

Для примера, давайте выведем самую простую команду echo 1. Все остальные ничем не отличаются, только подставляем другую команду 🙂 Подсоединяемся к нашему серверу, на котором кстественно уже должен стоять и работать Zabbix Agent и выполняем следующие команды:

Добавления команды на стороне Zabbix-a

Заходим в админку, Настройка, Узлы сети, Элементы данных. Переходим и нажимаем "Создать элемент данных". Вводим параметры в соответствии с задачами. У нас это будет так

После этого, Zabbix успешно будет видеть всю данную команду.

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.