Zabbix перезапускает службу Windows
Обновлено: 21.11.2024
В этой лекции я покажу, как использовать сценарии администрирования из Zabbix Server, Zabbix Proxy и агентов Zabbix.
Конфигурация зависит от
- из какого процесса и на каком сервере будет выполняться скрипт.
- включены ли удаленные команды для процесса, выполняющего сценарий,
- потребуются ли пользователю Zabbix привилегии sudo для какой-либо части команды скрипта.
- есть ли у агента работающие пассивные проверки.
В этом видео я показываю, как настроить и решить проблемы с уже существующими сценариями администрирования, пинговать и определять операционную систему.
При вызове сценария администрирования ping для хоста за прокси-сервером Zabbix конфигурация прокси-сервера Zabbix также должна быть обновлена, чтобы разрешить удаленные команды. Это связано с тем, что пинг будет выполняться с прокси-сервера Zabbix. Вы также должны перезапустить прокси-сервер Zabbix после любого изменения конфигурации.
Для сценария администрирования, используемого для определения операционной системы, исполняемый файл nmap будет использоваться либо с сервера Zabbix, либо с прокси-сервера Zabbix, и его необходимо будет сначала установить на сервере или прокси-сервере, и вам также потребуется разрешить привилегии sudo пользователя Zabbix для его выполнения.
Добавьте строку zabbix ALL=(ALL) NOPASSWD: /usr/bin/nmap
Нажмите Ctrl-X и Y, чтобы сохранить.
Я также продемонстрирую создание сценария, который запускается из самих агентов Zabbix. Это будет использовать команду free для отображения доступной памяти.
Устранение неполадок
Для Zabbix Proxy 5.01 и более ранних версий, если вы хотите, чтобы он мог передавать удаленные команды с сервера Zabbix на отслеживаемые им хосты, вам нужно только установить EnableRemoteCommands=1 . И вы перезапустили свой агент/прокси-сервер после внесения изменений.
Для Zabbix Proxy 5.02 и более поздних версий необходимо установить параметры AllowKey и/или DenyKey, а затем перезапустить прокси-сервер.
Вы можете игнорировать это предупреждение.
Для Zabbix Proxy 5.01 и более ранних версий, если вы хотите, чтобы он мог передавать удаленные команды с сервера Zabbix на хосты, которые он отслеживает, вам нужно только установить EnableRemoteCommands=1
Если бы вы добавили AllowKey или DenyKey в конфигурацию прокси для Zabbix 5.01, вы бы теперь получили сообщение об ошибке: неизвестный параметр "AllowKey" в файле конфигурации "/etc/zabbix/zabbix_proxy.conf" и/или неизвестный параметр "DenyKey". " в файле конфигурации "/etc/zabbix/zabbix_proxy.conf" в зависимости от того, что вы добавили.
Важно использовать AllowKey или DenyKey, только если вы используете Zabbix Proxy 5.02 или более позднюю версию.
Если вы видите сообщение об ошибке,
Это может быть многое. Это также может быть связано с тем, что ваш агент подключен к серверу только с активными проверками. Сервер не может найти вашего агента по IP-адресу или доменному имени, возможно, из-за того, что он находится в другой сети, где не настроено правило брандмауэра для пересылки запроса с сервера. Если ваш агент находится за брандмауэром и использует прокси-сервер Zabbix, вам не нужно настраивать брандмауэр, если ваш прокси-сервер также работает в активном режиме (по умолчанию).
Остановка запуска служб Windows
Вы можете создавать сценарии администрирования для остановки/запуска/перезапуска служб Windows.
На изображении выше показан пример сценария администрирования для перезапуска буфера печати Windows.
Если вы хотите явно остановить или запустить службу очереди печати, например,
Вы можете получить статус службы, используя команду
Обратите внимание, что эти команды выполняются на хосте с помощью агента Zabbix. См. изображение выше.
Однако, если вы остановите агент Zabbix, используя описанный выше метод, вы не сможете перезапустить его снова.
например, это не удастся.
Агент остановится, но не запустится.
Чтобы вызвать перезапуск агента Zabbix, вам потребуется создать отдельную службу, которая работает независимо от агента zabbix и имеет необходимые права хоста для остановки и запуска агента Zabbix.
Если вы просто создаете сценарий для выполнения, маловероятно, что он завершит выполнение, поскольку родительский процесс, который его запустил (агент Zabbix), был преждевременно остановлен, прежде чем он смог продолжить работу и завершиться запуском нового процесса агента Zabbix.
Если вы хотите попробовать эти команды локально на хосте, вам потребуется запустить cmd или powershell с правами администратора.
Powershell более подробно обсуждается позже в курсе Powershell Windows Updates.
Автоматически перезапускать службу агента Zabbix, если она останавливается по какой-либо причине. Выживайте при сбоях, утечках памяти и случайных отключениях, чтобы поддерживать мониторинг вашей системы без дорогостоящих перерывов
Zabbix — один из самых популярных в мире пакетов мониторинга с открытым исходным кодом.
Агент Zabbix, ключевой компонент программного обеспечения, отвечает за мониторинг хост-компьютера и сбор информации для использования в отчетах и оповещениях.
Агент Zabbix устанавливается как служба Windows, что является естественным выбором для автоматической работы в фоновом режиме в среде 24/7:
Чтобы защитить службу Windows агента Zabbix с помощью Service Protector:
При необходимости загрузите и установите Service Protector.
Запустить Service Protector.
Выберите Protector > Add, чтобы открыть окно добавления Protector:
На вкладке Общие в поле Служба для защиты выберите службу Windows агента Zabbix:
Service Protector обладает расширенными функциями, но пока давайте остановимся на основах. Нажмите кнопку Сохранить, чтобы сохранить настройки.
Через несколько секунд в главном окне появится запись для службы агента Zabbix. Зеленый щит указывает на то, что Service Protector активно присматривает за Zabbix:
Вот оно! В следующий раз, когда ваш компьютер перезагрузится, служба Windows агента Zabbix запустится автоматически (как обычно), а Service Protector будет отслеживать службу и быстро перезапускать ее, если она останавливается по какой-либо причине.
Мы рекомендуем вам отредактировать запись агента Zabbix и изучить множество настроек, которые могут быть полезны в вашей среде. Например, отправка электронной почты при сбое службы, автоматический перезапуск, если служба «зависает» при запуске или остановке, и многое другое.
Проблемы с защитой службы Windows агента Zabbix?
Ответы на часто задаваемые вопросы и советы по устранению неполадок см. в FAQ по Service Protector.
С помощью удаленных команд вы можете указать, что определенная предопределенная команда автоматически выполняется на контролируемом узле при определенных условиях.
Таким образом, удаленные команды представляют собой мощный механизм интеллектуального упреждающего мониторинга.
В наиболее очевидных случаях использования этой функции вы можете попробовать:
Автоматически перезапускать какое-либо приложение (веб-сервер, промежуточное ПО, CRM), если оно не отвечает
Используйте команду IPMI «reboot» для перезагрузки удаленного сервера, если он не отвечает на запросы
Автоматическое освобождение места на диске (удаление старых файлов, очистка /tmp) при нехватке места на диске
Миграция ВМ с одного физического устройства на другое в зависимости от загрузки ЦП
Добавлять новые узлы в облачную среду при нехватке ресурсов ЦП (диск, память и т. д.)
Настройка действия для удаленных команд аналогична настройке действия для отправки сообщения, с той лишь разницей, что Zabbix будет выполнять команду вместо отправки сообщения.
Удаленные команды могут выполняться сервером Zabbix, прокси или агентом. Удаленные команды на агенте Zabbix могут выполняться непосредственно сервером Zabbix или через прокси Zabbix. Удаленные команды агента Zabbix и прокси-сервера Zabbix отключены по умолчанию. Их можно включить:
установка для параметра EnableRemoteCommands значения «1» в конфигурации прокси-сервера.
Удаленные команды, выполняемые сервером Zabbix, запускаются, как описано в разделе Выполнение команд, включая проверку кода выхода.
Удаленные команды выполняются, даже если целевой хост находится на обслуживании.
Ограничение удаленных команд
Ограничение удаленных команд после разрешения всех макросов зависит от типа базы данных и набора символов (для хранения символов, отличных от ASCII, требуется более одного байта):
База данных | Ограничение по количеству символов | Ограничение в байтах |
MySQL | 65535 | 65535 |
2048 | 4000 | |
PostgreSQL | 65535 | не ограничено |
SQLite (только прокси Zabbix) | 65535 | не ограничено |