- RDP dog
- Установка и настройка Zabbix Agent на Windows.
- Zabbix Helper Kit и автоматизация обновления Zabbix Agent
- Что же такое Zabbix?
- Но есть одно нО
- Как обычно происходит развёртывание агента на Windows машины:
- Чем это грозит?
- Какой самый общий недостаток?
- Как должно выглядеть идеальное решение?
- Встречайте! Zabbix Helper Kit!
- Zabbix Helper Kit скачать
- Zabbix Documentation 3.0
- Sidebar
- Table of Contents
- 6 Процедура обновления с использованием исходных кодов
- Обзор
- Процесс обновления сервера
- Процесс обновления прокси
- Процесс обновления агента
- Обновление между минорными версиями
RDP dog
При использовании Zabbix есть небольшая проблемма. Как и многие развивающиеся OpenSource проекты, дистрибутив программы постоянно обновляется, выходят новые версии. Для того, чтобы использовать новые «плюшки» надо обновлять Windows агенты Zabbix. Автоматически они не обновляются. А жаль.
Итак, вопрос как автоматически обновить агент состоит из двух частей:
1. Как автоматически обновить файлы;
2. Как автоматически обновить файлы на всех системах в сети;
Первая часть проблем не составляет. Давненько я не брал в руки WinRar!
Для начала я собрал необходимый набор файлов:
*не сомневаясь в тех кто это читает, все таки, напомню, zabbix_agentd.conf должен содержать Вашу конфигурацию, т.е. его надо взять с рабочей системы. У меня таких 2 — для систем внутри домена и снаружи.
Затем написал cmd- файл, который эти файлы скопирует в нужную папку.
Вообще я этот файл создавал для установки Zabbix-агента, но с минимальными изменениями он справится и с обновлением:
inst.cmd
Осталось только упаковать набор файлов и командный файл в «установщик» дабы проще было его копировать по сети и удаленно запускать. Просто создаем Winrar SFX архив, со следующими параметрами:
Называем это zabbix_agent_int_x64.exe.
Собственно и все.
Не думаю, что данным постом я сорвал покровы со страшных тайн. Пишу больше для себя в копилку.
Тем более, как мне думается, люди использующие и настроившие Zabbix способны и сами написать скрипт.
У нас осталось только проблема, как распространить обновление агента на все наблюдаемые системы.
Пути как минимум два:
В следующей маленькой статье рассмотрим вариант с psexec.
Установка и настройка Zabbix Agent на Windows.
Установка и настройка ZAbbix Agent.
В статье покажем пример установки и настройка Zabbix агента на ОС Windows, добавим его на мониторинг в Server Zabbix.
IP- Zabbix Server 192.168.100.100
IP – Zabbix Agent Windows 192.168.25.24
1. Качаем zabbix agent с официального сайта http://zabbix.com/download/
2. Выбираем версию согласно версии Server Zabbix, скачиваем, распаковываем.
3. Переходим в папку C:\zabbix_agents_3.4.6.win\conf\ , где лежит файл zabbix_agentd.win.conf.
Делаем копию файла в эту же директорию, переименовываем в zabbix_agentd.conf .
4. Открываем новый файл zabbix_agentd.conf, находим и редактируем следующие параметры.
Сохраняем изменения в файле.
5. Запускаем Командная строка ОБЯЗАТЕЛЬНО! запуск от имени Администратора.
Переходим в директорию с файлом zabbix_agentd.exe, обратите внимание на разрядность вашей системы при выборе папки win64-win32:
Вводим команду для установки агента, в этой же команде прописываем путь до нашего конфигурационного файла:
Получаем информацию о успешной установке:
6. Переходим к запуску установленной службы Zabbix agent:
7. Не забываем создать разрешающее правило в Брандмауэре Windows.
Брандмауэр Защитника Windows – Дополнительные параметры – Правило для входящих подключений – Создать правило…
Получение информации от Zabbix agent на Zabbix Server.
Переходим к Zаbbix Server и добавим узел сети нашего агента на мониторинг, будем проверить его доступность по ping.
Настройка – Узел Сети – Создать узел сети.
Имя узла сети: Рекомендую указать то же , что и в файле конфигурации HostnameItem, то есть ITHELP21RU-PC.
Новая группа: Windows Agents
Интерфейсы агента: 192.168.25.24 (адрес PC на которому установлен agent), порт 10050.
Добавить.
Переходим на вкладку Элементы данных – Создать элемент данных.
Имя: Agent Ping
Тип: Zabbix agent
Ключ – Выбрать: = agent.ping
Интерфейс узла сети: 192.168.25.24:10050
Тип информации: Числовой (целое положительное)
Единица измерения: ms
Интервал обновления: 30s
Добавить.
Видим состояние – Активировано.
Переходим в Мониторинг – Последние данные.
Ждем 30 секунд и смотрим График ping.
Zabbix Helper Kit и автоматизация обновления Zabbix Agent
Zabbix Helper Kit и автоматизация обновления Zabbix Agent’a должны облегчить жизнь начинающим админам мастдая. ZHK нужно использовать тогда, когда необходимо использовать кастомизируемую энтерпрайз систему мониторинга, но вы испытываете трудности с обновлением непосредственно Заббикс агента, а так же его файлов конфигурации на подконтрольных вам машинах. Собственно избавлению от этих трудностей и будет посвящена серия статей о Zabbix Helper Kit, сей пост – небольшое лирическое отступление.
Что же такое Zabbix?
Эти 6 букв скрывают под собой, для многих новый, дивный мир агент-серверной телеметрии энтерпрайз класса, которой может пользоваться каждый. Прекраснейшая, всеобъемлющая справка на множестве языков. Огромное комьюнити. Открытые исходники. Возможность использовать в продакшене в небольших сетях, просто скачав готовый образ для виртмашины.
Но есть одно нО
Принимая во внимание тот факт, что сам заббикс агент можно не обновлять годами, всё равно есть ситуация, столкновение с которой приводит либо к функционированию сего чудесного продукта в ограниченном режиме, либо к постепенному вымиранию всей системы мониторинга в целом по причине того что админы просто забивают на её обслуживание и обновление. И имя этой ситуации “Изменение конфигурации агента”
Как обычно происходит развёртывание агента на Windows машины:
- Админ(ы) пробегают по нескольким десяткам компьютеров, ручками копируют на них агент с конфигом и регистрируют его в системе.
- Zabbix Agent и его файл конфигурации разворачиваются через GPO.
- Админ(ы) тем или иным способом, к установленному в системе агенту, монтируют сетевую шару с файлом конфигурации и различными скриптами\расширениями, которые заббикс агент подгружает при старте тем самым получая в своё распоряжение новые UserParameters.
- Всевозможные psexec и msi решения.
Чем это грозит?
- Необходимость добавить новый UserParameter. Изменить файл конфигурации чтобы например добавить запасной сервер или включить забытые изначально, активные проверки. Обновление агента. Любая подобная операция приводит к повторному забегу по всем компьютерам.
- Необходимость ждать пока обновятся групповые политики. Теоретически возможные проблемы если сеть построена на основе линуксовых AD DC. Невозможность работы с компьютерами не входящими в домен вообще. Геморрой с обновлением агента или применением изменений в его настройках, до момента повторной отработки групповых политик.
- Если в момент запуска агента шара не будет доступна, агент не запустится. Когда шара сменит свой адрес – повторный забег по всем компьютерам. Ну и исходя из этого, если шара перестала работать в процессе работы агента, мы лишаемся телеметрии.
- Не такой стандартизированный метод как например GPO, но самый гибкий из всех. Потенциальные проблемы ограничиваются лишь фантазией человека занимающегося конкретной реализацией.
Какой самый общий недостаток?
- Во-первых, проблема с регулярной, централизованной и единовременной доставкой обновлений как самого агента, так и его конфигурации с расширениями.
- Во-вторых, даже если мы доставили обновление конфигурации и расширений агента, они не вступят в силу до его перезапуска.
- В третьих, мы не можем обновить агент не остановив службу.
Как должно выглядеть идеальное решение?
- Zabbix Agent со всеми файлами должен храниться на наблюдаемой машине.
- Обновление агента и его файлов не должно влиять на работу системы.
- Агент должен запускаться вне зависимости от наличия у машины соединения с сетью.
- Первоначальная установка агента должна быть максимально проста.
- Обслуживание агента должно быть не сложнее его установки.
- Необходима изменять конфигурацию агента и расширять его функционал на лету.
- Самым важным из всего, я бы отметил возможность делать всё вышеперечисленное не отрывая задницы от кресла, калории ведь не казённые, надо экономить.
Встречайте! Zabbix Helper Kit!
Собственно это набор утилит написанных на языке AutoIt, разрабатываемый мною и используемый в сфере коммерческой эксплуатации Zabbix на протяжение многих лет. Поэтому он предназначен для решения всех проблем обслуживания Zabbix Agent Windows и еще чуть-чуть. Основной его целью является упрощение превращения Zabbix в средство управления инфраструктурой предприятия. В один прекрасный день я решил начать с нуля, систематизировать код, провести рефакторинг и опубликовать исходники для свободного использования.
Что умеет Zabbix Helper Kit на момент написания статьи:
- Выкачивать из указанного в настройках репозитория (FTP сервера):
- Zabbix Agent в зависимости от битности OS Windows.
- Файл конфигурации агента.
- Устанавливать Zabbix Agent как сервис мастдая.
- Создавать правило для него в брандмауэре Windows.
- Записвывать в брандмауэр правило для себя.
- Запиливаться в планировщик задач и запускаться каждый час:
- Если компьютер в домене то имени заданной учётной записи.
- Если в рабочей группе то от имени системы.
- Сравнивать локальную версию репозитория с удалённой.
- В случае обнаружения в репозитории новой версии, скачивать содержимое репозитория к себе в папку.
- Останавливать Zabbix Agent, применять скачанные обновления и запускать его снова.
Реализовывает весь описанный функционал утилита Zabbix Helper Updater.
Zabbix Helper Kit скачать
Распространяется Zabbix Helper Kit через GitHub в виде исходников AutoIt и в будущем в виде скомпилированных exe файлов. Для работы необходим FTP сервер. Так же необходимо для скомпилированных файлов прописывать исключения в антивирусах.
Zabbix Documentation 3.0
Sidebar
Table of Contents
6 Процедура обновления с использованием исходных кодов
Обзор
Этот раздел описывает требуемые шаги для успешного обновления до Zabbix 3.0.
Обновление напрямую до Zabbix 3.0 возможно с Zabbix 2.4.x, 2.2.x и 2.0.x. При обновлении с более ранних версий обратитесь к документации Zabbix по 2.0 и более ранним версиям.
В то время как обновление Zabbix агентов не является обязательным шагом (но рекомендуемым), Zabbix сервер и прокси должны быть одной мажорной версии. Поэтому, при наличии сервер-прокси инсталляции, Zabbix сервер и все прокси должны быть остановлены и обновлены.
Чтобы минимизировать время простоя и потери данных в процессе обновления, рекомендуется остановить и обновить Zabbix сервер и один за другим затем остановить, обновить и запустить Zabbix прокси. Когда все прокси будут обновлены, запустите Zabbix сервер. Пока Zabbix сервер будет остановлен, запущенные прокси будут продолжать сбор и хранение данных и отправят эти данные на Zabbix сервер, когда сервер запустится и заработает. Любые оповещения о проблемах в процессе простоя Zabbix сервера будут сгенерированы только после того как обновленный сервер запустится.
Обратите внимание, что при наличии прокси с SQLite базой данных, данные истории этих прокси будут потеряны до обновления, так как обновление файла базы данных SQLite не поддерживется и этот файл необходимо удалить вручную. Когда прокси запускается в первый раз и будет отсутствовать файл базы данных SQLite, прокси создаст его автоматически.
До обновления с 2.4.x до 3.0:
При обновлении с предыдущих версий, также читайте заметки по обновлению для 2.0 -> 2.2 и 2.2 -> 2.4.
Процесс обновления сервера
1 Остановите Zabbix сервер
Остановите Zabbix сервер, чтобы быть уверенными, что в базу данных не будет происходить запись новых данных.
2 Сделайте архивную копию существующей базы данных Zabbix
Этот шаг очень важен. Убедитесь, что у вас есть архивная копия вашей базы данных. Это поможет, если процедура обновления закончится неудачно (отсутствие свободного места на диске, выключение питания, любая неожиданная проблема).
3 Сделайте копию файлов конфигурации, PHP файлов и приложений Zabbix
Сделайте резервные копии приложений Zabbix, файлов конфигурации и папки с файлами PHP.
4 Установите новые исполняемые файлы сервера
Используйте эти инструкции для компиляции Zabbix сервера из исходных кодов.
5 Проверьте параметры конфигурации сервера
Параметр HistoryTextCacheSize заменён новым параметром HistoryIndexCacheSize сервера, который должен присутствовать при запуске сервера.
Для ознакомления с остальными рекомендуемыми изменениями и новыми необязательными параметрами, пожалуйста, смотрите раздел Что нового.
6 Запустите новые бинарные файлы Zabbix
Запустите новые приложения. Проверьте файлы журналов, чтобы удостовериться, что приложения запустились успешно.
Процесс Zabbix сервера после запуска автоматически обновит схему базы данных. При запуске Zabbix сервер сообщает текущую (обязательную и опциональную) и требуемую версии базы данных. Если текущая обязательная версия старше чем требуемая версия, Zabbix сервер автоматически выполнит требуемые патчи обновления базы данных. Начало и прогресс (в процентах) обновления базы данных записываются в файл журнала Zabbix сервера. Когда обновление завершится, в файл журнала запишется сообщение “database upgrade fully completed”. Если какой-либо из патчей обновления будет ошибочным, Zabbix сервер не запустится. Zabbix сервер также не запустится, если текущая обязательная версия более новая чем требуемая. Zabbix сервер запустится только, если текущая обязательная версия базы данных соответствует требуемой обязательной версии.
До начала запуска процесса сервера:
7 Установите новый веб-интерфейс Zabbix
Обновите, если требуется, и следуйте инструкции по установке.
8 Очистите cookies и кэш в веб-браузере
После обновления вам, возможно, потребуется очистить cookies веб-браузера и кэш веб-браузера, чтобы Zabbix веб-интерфейс работал правильно.
Процесс обновления прокси
1 Остановите Zabbix прокси
Остановите Zabbix прокси.
2 Сделайте копию файлов конфигурации и бинарного файла Zabbix прокси
Сделайте резервные копии бинарного файла Zabbix прокси и файла конфигурации.
3 Установите новые исполняемые файлы прокси
Используйте эти инструкции для компиляции Zabbix прокси из исходных кодов.
4 Проверьте параметры конфигурации прокси
Параметр HistoryTextCacheSize заменён новым параметром HistoryIndexCacheSize прокси, который должен присутствовать при запуске прокси.
Для ознакомления с остальными рекомендуемыми изменениями и новыми необязательными параметрами, пожалуйста, смотрите раздел Что нового.
5 Запустите новый Zabbix прокси
Запустите новый Zabbix прокси. Проверьте файлы журналов, чтобы увидеть, что прокси запустился успешно.
Процесс Zabbix прокси после запуска автоматически обновит схему базы данных. Обновление базы данных происходит аналогично тому, как при запуске Zabbix сервера .
Процесс обновления агента
1 Остановите Zabbix агент
Остановите Zabbix агент.
2 Сделайте копию файлов конфигурации и бинарных файлов Zabbix агента
Сделайте резервные копии бинарного файла Zabbix агента и файла конфигурации.
3 Установите новые исполняемые файлы агента
Используйте эти инструкции для компиляции Zabbix агента из исходных кодов.
Дополнительно, вы можете загрузить уже скомпилированные Zabbix агенты со страницы загрузки Zabbix.
4 Проверьте параметры конфигурации агента
В этой версии обязательные изменения в параметрах агента отсутствуют. Для ознакомления с рекомендуемыми изменениями и новыми необязательными параметрами, пожалуйста, смотрите раздел Что нового.
5 Запустите новый Zabbix агент
Запустите новый Zabbix агент. Проверьте файлы журналов, чтобы увидеть, что агент запустился успешно.
Обновление между минорными версиями
При обновлении между минорными версиями 3.0.x (например, с 3.0.1 на 3.0.3) необходимо выполнить те же действия для сервера/прокси/агента, как и при обновлении между мажорными версиями. Единственное различие заключается в том, что при обновлении между минорными версиями никаких изменений в базе данных не производится.