Удаленные команды zabbix agent windows
Обновлено: 07.07.2024
Допустим, у вас есть два сервера (Сервер-А и Сервер-Б) связанных между собой по VPN и в случае, если Сервер-Б стал недоступен (упал VPN), то после поднятия VPN, на Сервере-А нужно перезапустить определенный сервис.
Для выполнения команды на перезапуск сервиса используется SSH.
Меню: Настройка > Действия > Создать действие (источник события: Триггеры)
Menu: Configuration > Actions > Create action (Event source: Triggers)
В Условия (Conditions) добавляем Триггер (Trigger), на который будет реакция.
Zabbix: Создание действия
Настраиваем «Операции восстановления»
Нам нужно перезапустить сервис только когда VPN канал восстановится, т.е. когда два сервер будут уже видеть друг друга. Поэтому, идём в закладку «Операции восстановления» (Recovery operations).
Zabbix: Создание действия > Операции восстановления
Указываем название темы. С данной темой будет приходить письмо с оповещением о выполнении удалённой команды.
Добавляем операции
В поле «Операции» (Operations) нажимаем кнопка «Новый» (New).
Добавляем операцию «Удаленная команда» (Remote command).
Zabbix: Создание действия > Операции восстановления > Удалённая команда
В поле «Список целей» (Target list) указываем Сервер-А (именно на нём нам нужно перезапустить сервис).
В поле «Команды» (Commands), указываем команду, которую нужно выполнить удалённо на Сервере-А для перезапуска нужного сервиса.
Остальные поля понятны.
В результате будет выглядеть следующим образом:
Zabbix: Создание действия > Операции восстановления
Нажимаем кнопку «Добавить»!
Если возникают проблемы с выполнением удалённых команд, то идём в «Отчёты > Журнал действий» (Reports > Actions log) и смотрим, какие там ошибки относящиеся к нашему Действию.
Zabbix: Журнал действий
Команда не выполнилась, неверно указал пароль для подключения по SSH.
Если у вас удалённые команды корректно выполняются, но в «Отчёты > Журнал действий» (Reports > Actions log) появляется следующая ошибка: «Cannot read data from SSH server»,
User Tools
Site Tools
Table of Contents
2 Удаленные команды
Обзор
С помощью удаленных команд вы можете указать какие из предустановленных команд будут выполнены на наблюдаемом узле сети при выполнении некоторых условий.
Таким образом, удаленные команды являются мощным механизмом для умного про-активного мониторинга.
Из наиболее очевидных применений функции вы можете попробовать:
Ограничение длины удаленных команд после раскрытия всех макросов зависит от типа базы данных и заданной кодировки (для хранения не-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 агент напротив Выполнять на).
Права доступа
Примеры строк, которые можно использовать в файле sudoers:
Удаленные команды при наличии нескольких интерфейсов
Если целевая система имеет несколько интерфейсов выбранного типа (Zabbix агент или IPMI), удаленные команды будут выполнены на интерфейсе по умолчанию.
До Zabbix 3.0.4 для удаленных команд через SSH и Telnet мог использоваться только интерфейс агента. Начиная с Zabbix 3.0.4, имеется возможность выполнять удаленные команды через SSH и Telnet, используя интерфейс отличный от Zabbix агент интерфейса. Доступный интерфейс, который будет использоваться, выбирается в следующем порядке:
Удаленные команды через IPMI
В случае удаленных команд через IPMI необходимо использовать следующий синтаксис:
Примеры
Пример 1
Перезагрузка Windows при определенном условии.
Для того, чтобы автоматически перезагрузить Windows, когда Zabbix обнаруживает проблемы, определим следующие действия:
Пример 2
Перезагрузка узла сети с использованием управления по IPMI.
Пример 3
Выключение узла сети с использованием управления по IPMI.
Задача: отследить выполнение команды на Zabbix агенте, которые не входят в стандартную комплектацию.
Для примера, давайте выведем самую простую команду echo 1. Все остальные ничем не отличаются, только подставляем другую команду 🙂 Подсоединяемся к нашему серверу, на котором кстественно уже должен стоять и работать Zabbix Agent и выполняем следующие команды:
Добавления команды на стороне Zabbix-a
Заходим в админку, Настройка, Узлы сети, Элементы данных. Переходим и нажимаем "Создать элемент данных". Вводим параметры в соответствии с задачами. У нас это будет так
Zabbix устанавливает триггеры, выполняет команды удаленно и отправляет оповещения по электронной почте
Создайте элемент мониторинга для мониторинга порта 8080. Когда порт 8080 выйдет из строя, сначала перезапустите nginx. Если проблема не устранена, перейдите ко второму шагу. Используйте Zabbix Email alarm. Если проблема не решена, перейдите к шагу 3. Использование пользовательских сценариев для отправки оповещений по электронной почте, что позволяет повысить уровень оповещения
Создайте элемент мониторинга для мониторинга порта 8080
Затем добавьте его, и все готово
На этом этапе был создан элемент, который проверяет, отслеживается ли порт 8080.
Добавление будильника
Если мы хотим сделать тревогу, нам нужно установить среду для будильника. Вообще говоря, носителем обычно является почта или нестандартные сценарии. Если есть SMS-шлюз, вы также можете использовать SMS-сигнал мобильного телефона.
Установите здесь 2 носителя тревоги.
Тревога по электронной почте
Пользовательский скрипт будильника
Необходимо разместить пользовательские сценарии в каталоге / usr / lib / zabbix / alertscripts /
Пользовательский сценарий выглядит следующим образом
Необходимо иметь разрешения на выполнение скрипта
Затем на веб-странице настройте нестандартный скрипт аварийного носителя
После настройки среды тревоги, пользователь должен использовать эту среду следующим.
Установить триггер
Триггер: будет срабатывать при выполнении условия
Затем вы можете добавить его, чтобы триггер был установлен, и вам нужно действовать с триггером
Настроить действие
Когда сработает триггер, будет сгенерировано действие, которое может быть удаленной командой или аварийным сигналом.
Настроить, когда выполняется действие, здесь, когда триггер срабатывает
Затем вам нужно настроить действия и выполнить команды удаленно.Если выполнение команды все еще не решает проблему, вы сообщите о тревоге.
Настроить действие для выполнения удаленных команд
удаленная команда, запустите указанную пользователем команду или скрипт на хосте, где расположен агент, чтобы попытаться восстановиться после сбоя, например: перезапустите службу, используйте пользовательский скрипт
Тип:
- Команды IPMI
- пользовательский скрипт
- SSH использует SSH для подключения к прошлому и выполнения команд
- telnet выполняет команды, используя telnet
- глобальный скрипт глобальный скрипт
При настройке пользовательского сценария необходимо настроить агент, чтобы разрешить выполнение команд, и установить разрешения sudo.
. Сначала установите права доступа sudo, введите visudo, начните редактирование файла, добавьте следующие две строки
Затем измените файл конфигурации агента /etc/zabbix/zabbix_agentd.conf, чтобы разрешить удаленные команды
После внесения изменений перезапустите службу агента
Если вы обнаружите, что иногда zabbix отображает команду успешного выполнения, но на самом деле команда не выполняется, возможно, ваша команда сценария не использовала sudo, а непосредственно ввела команду. Это также может привести к проблемам с правами доступа. Команда, кажется, выполнена успешно, но фактически не выполнена.
Почтовый сигнал
Пользовательский скрипт будильника
Затем добавляется действие, и вы можете проверить его.
Запустите nginx, чтобы открыть порт 8080
Теперь вы видите, что состояние в порядке, то есть порт 8080 прослушивает, затем измените файл конфигурации, чтобы позволить nginx прослушивать порт 1080, и затем остановите nginx, чтобы увидеть, будет ли триггер выполнять команду restart nginx. После перезапуска вы увидите, что он прослушивает порт 1080, который может определить, успешно ли выполнена команда.
Измените детали и остановите nginx напрямую
Допустим, у вас есть два сервера (Сервер-А и Сервер-Б) связанных между собой по VPN и в случае, если Сервер-Б стал недоступен (упал VPN), то после поднятия VPN, на Сервере-А нужно перезапустить определенный сервис.
Для выполнения команды на перезапуск сервиса используется SSH.
Меню: Настройка > Действия > Создать действие (источник события: Триггеры)
Menu: Configuration > Actions > Create action (Event source: Triggers)
В Условия (Conditions) добавляем Триггер (Trigger), на который будет реакция.
Zabbix: Создание действия
Zabbix: Создание действия > Операции восстановления
Указываем название темы. С данной темой будет приходить письмо с оповещением о выполнении удалённой команды.
Добавляем операции
Zabbix: Создание действия > Операции восстановления > Удалённая команда
Остальные поля понятны.
В результате будет выглядеть следующим образом:
Zabbix: Создание действия > Операции восстановления
Zabbix: Журнал действий
Команда не выполнилась, неверно указал пароль для подключения по SSH.
Zabbix. Cannot read data from SSH server
то вам нужно в конфигурационном файле zabbix_server.conf (в CentOS 7 он находится в /etc/zabbix) настроить параметр: Timeout=30
Похожие записи.
Андрей Торженов
В профессиональной сфере занимаюсь всем, что связанно с IT. Основная специализация - VoIP и сети передачи данных. Стараюсь не заниматься Windows серверами (но иногда приходится) и 1С.Latest posts by Андрей Торженов (see all)
Запись опубликована 07/11/2018 автором Андрей Торженов в рубрике Софт с метками Zabbix.Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Вы можете авторизоваться используя Вашу учётную запись из социальных сетейОповещение по e-mail о новых комментариях.
Также вы можете не оставляя комментарий подписаться но новые комментарии.
После установки Zabbix сервера , произведем установку, настройку zabbix клиента на операционной системе Windows. Zabbix клиент обеспечит передачу и обработку данных на сервере.
Установка, настройка и удаление zabbix агента
1. Скачиваем с сайта zabbix дистрибутив zabbix агента для операционной системы Windows.
2. Разархивируем архив и переименовываем папку, например Zabbix_agent.
3. Перемещаем папку в нужную директорию, например С:\Program Files\.
.
Конфигурация zabbix агента
4. Следующим шагом необходимо сконфигурировать zabbix агент, чтобы была возможность работы связки клиент-сервер. Для этого открываем конфигурационный файл zabbix_agentd.win.conf.
5. Меняем путь до лог файла, например LogFile=C:\Program Files\Zabbix_agent\zabbix_agentd.log.
6. Для того, чтобы определить ip адрес сервера, открываем терминал на сервере и набираем команду ip addr.
7. В конфигурационном файле zabbix агента в секции "Option Server" указываем ip адрес сервера:
Server=192.168.20.158
8. В секции "Option: ServerActive" также указываем ip адрес сервера zabbix:
Server=192.168.20.158
В секции "Option: Hostname" указываем имя компьютера, например Hostname=Int.
Установка и запуск службы zabbix
9. После того, как сохранили конфигурационный файл, открываем командную строку с административными правами. Для установки и запуска службы Zabbix agent в командной строке набираем:
"C:\Program Files\Zabbix_agent\bin\zabbix_agentd.exe" -- config "C:\Program Files\Zabbix_agent\conf\zabbix_agentd.win.conf" -- install
C:\Program Files\Zabbix_agent\bin\zabbix_agentd.exe - путь до программы;
C:\Program Files\Zabbix_agent\conf\zabbix_agentd.win.conf - путь до конфигурационного файла.
После успешного применения команды появится вывод:
zabbix_agent.exe [18168]: service [Zabbix Agent] installed successfully
zabbix_agent.exe [18168]: event source [Zabbix Agent] installed successfully
Если командную строку запустить не с правами администратора, то получим ошибку:
zabbix_agentd.exe [20260]: ERROR: cannot connect to Service Manager: .
Для запуска службы "Zabbix Agent" выполняем следующую команду:
net start "Zabbix agent"
После успешного выполнения команды в командной строке появится:
Служба "Zabbix Agent" успешно запущена.
Прописываем правила соединения в брандмауэре Защитника Windows
10. Для того, чтобы обеспечить передачу данных с клиента на сервер, необходимо разрешить zabbix агенту связываться с сервером. Пропишем необходимые правила для сетевого соединения в брандмауэре Windows. Открываем "Панель управления" далее "Брандмауэр Защитника Windows".
11. Далее выбираем "Дополнительные параметры".
12. В следующем окне выбираем "Правила для входящих подключений" - "Создать правило".
13. В открывшемся окне делаем выбор "Для программы", нажимаем "Далее".
14. Указываем с помощью кнопки "Обзор. " путь до программы, например %ProgramFiles%\Zabbix_agent\bin\zabbix_agentd.exe, нажимаем "Далее".
15. Выбираем "Разрешить подключение" - "Далее".
16. В новом окне задаем "Имя", например: "Zabbix_agent_in" - "Готово".
17. Затем открываем вновь созданное соединение Zabbix_agent_in, затем выбираем вкладку "Протоколы и порты"
Тип протокола: TCP
Специальные порты:
10050
Затем нажимаем "ОК".
Добавление узла сети на сервере Zabbix
18. Для добавления узла сети на сервере Zabbix заходим в веб-панель сервера с помощью логина и пароля, далее выбираем: "Настройка" - "Узлы сети" - "Создать узел сети".
19. В новом окне указываем:
Имя узла сети: например, Int
Группы: выбираем из списка с помощью кнопки "Выбрать" или пишем новое имя группы
Интерфейсы агента: задаем IP адреса клиента (в командной строке клиента надо набрать ipconfig /all)
20. Переходим на вкладку "Шаблоны", нажимаем "Выбрать" и из списка шаблонов, выбираем нужный, в данном случае "Template OS Windows", нажимаем "Выбрать".
21. Далее выбираем " Добавить " для присоединения выбранного шаблона, затем ниже нажимаем "Добавить" для добавления нового узла сети.
22. В списке появится новый узел сети, и через некоторое время узел сети станет зеленым. Это значит, что все настроено правильно и связь с клиентом установлена.
23. Если узел сети остается красным, то необходимо разбираться, в чем дело. Для этого наводим на значок в графе "Доступность" и читаем диагностическое объявление.
24. Далее переходим к клиенту и открываем лог файл zabbix агента (C:\Program Files\Zabbix_agent\conf\zabbix_agentd.win.conf).
Смотрим проблему, в данном случае:
failed to accept an incoming connection: connection from "192.168.11.49" rejected, allowed hosts: "192.168.20.158"
25. Для решения проблемы прописываем IP адрес клиента в конфигурационный файл zabbix агента:
Option: Server
Server=192.168.11.69, 192.168.20.158
26. Для применения измененных настроек перезапускаем службу Zabbix agent:
net stop "Zabbix agent"
net start "Zabbix agent"
27. Проверяем лог файл.
28. Если нет проблем, на сервере появится зеленый значок клиента.
Удаление zabbix агента
29. Для удаления zabbix агента, удаляем узел сети на сервере.
30. Останавливаем службу "Zabbix agent" на клиенте.
net stop "Zabbix Agent"
31. Удаляем папку с компонентами zabbix агента.
32. Удаляем правило для входящих подключений для zabbix агента.
Посмотреть видео как произвести установку, настройку и удаление zabbix агента можно здесь:
Читайте также: