Мониторинг обновлений windows zabbix

Мониторинг Microsoft Windows на базе Zabbix

03.09.2019 Update

Кстати новые шаблоны уже доступны

Сегодня мы расскажем о том, как мы ведем мониторинг Windows систем (в скором времени планируем такой же обзор про Linux и как обычно с доступным шаблоном).

Наш путь начался, как часто бывает, со штатного шаблона Zabbix «Template OS Windows Active» для мониторинга Windows-клиентов (рабочие станции и сервера), но ровно через неделю активного использования поняли, в нем много чего не хватает.

Так мы и начали его кардинальную переделку, часть оставили и добавили много чего нового.

Общая концепция

1. Отдельные настройки шаблона в файле os_windows_active.conf

2. Отдельный скрипт PowerShell — os_windows_active.ps1 для работы шаблона, при этом скрипт должен быть универсальным и работать на большинстве операционных систем с минимумом внешних зависимостей.

3. Шаблон должен быть не зависимым от языка операционной системы, поэтому лучше всего снимать данные со счётчиков используя либо WMI, либо скрипт + zabbix trapper.

4. Шаблон должен давать максимум полезной информации по своему назначению, поэтому он объединяется как мониторинг физических параметров оборудования, так и операционной системы и даже инвентаризации.

Основные возможности

  • логических дисков;
  • физических дисков;
  • сетевых адаптеров;
  • системных сервисов.

Triggers

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

  • Продолжительная нагрузка на процессор в течении часа.
Physical Memory
  • Объём доступной физической памяти меньше заданного лимита;
  • Объём Commited памяти больше физической.
Physical disk
  • Скорость доступа к дискам на чтение и запись.
Logical disk
  • Критический объём дисков с возможностью прогноза на 12 часов.
Network
  • Смена MAC-адреса сетевого адаптера (для виртуальных машин очень актуально, если не поставили статический MAC-адрес);
  • Отключение Link-а сетевого адаптера;
  • Отброшенные пакеты на сетевом адаптере.
Operation system
  • Дата последней установки обновлений Windows
  • Изменение статуса Firewall

Инвентаризация

Так как клиенты имеют разные компьютеры, нам требуется получать краткую инвентаризацию по ним, поэтому мы добавили в шаблон сбор данных о компьютере, и этими данными заполняем стандартные поля Zabbix Inventory:

  • OS
  • tag
  • Chassis
  • Desktop
  • Model
  • HW architecture
  • Vendor
  • Host networks

Графики

Мы сделали несколько полезных общих графиков, чтобы наглядно видеть общее состояние клиента и отдельных его подсистем.

OS overview performance

OS detail performance

Где скачать

Данный шаблон и скрипт вы можете бесплатно скачать с GitHub, а также в Zabbix Share.

Наши шаблоны мы продолжим выкладываем в открытый доступ в наш репозитарий Zabbix.

Системное администрирование серверов и DevOps

Отслеживание обновлений с Zabbix

Отслеживание ключевых обновлений с помощью Zabbix

  • С одной стороны, мы не любим обновления:
    • из-за перерывов в обслуживании и необходимости согласовывать их с клиентами,
    • из-за ночных работ и вечного риска получить на выходе тыкву вместо кареты, если что-то пойдёт не так ©
    • из-за того, что вместо старых знакомых проблем (или в дополнение к ним) появятся новые неизвестные.
  • С другой стороны, некоторые обновления безопасности необходимо устанавливать как можно быстрее:
    • в первую очередь это касается сетевых сервисов,
    • ..особенно публичных,
    • ..особенно работающих с правами суперпользователя,
    • ..особенно имеющих длинную историю найденных уязвимостей.
  • Обновления должны происходить под обязательным присмотром администратора (см. выше про риск непредвиденных проблем).
  • Поэтому вместо автоматической установки ключевых обновлений нам требуется инструмент для оповещения администраторов об их появлении.
  • Т.к. у нас уже используется Zabbix для мониторинга всего на свете, отслеживание обновлений имеет смысл так же поручить ему.
  • Список важных для нас пакетов мы составляем вручную — далеко не все обновления безопасности требуют немедленной реакции, и их мы в этот список не включаем.
Читайте также:  Изменить пароль администратора windows 10 через командную строку

Создаём шаблон:

  • Template name: Custom-yum
    • Groups: Custom-templates
    • Applications: Yum
  • Discovery rule:
    • Name,Key: yum.watch_updates
    • Update interval: 10800
  • Item prototype:
    • Name: Yum contains updated version for
    • Key: yum.check_update[<#PKGNAME>]
    • Update interval: 10800
    • Applications: Yum
  • Trigger prototype:
    • Severity: Warning
    • Name: Yum contains updated version for <#PKGNAME>on
    • Expression: ].str(<#PKGNAME>.)>=1
    • Allow manual close: Yes

    Агент:

    • В /etc/zabbix/zabbix_agentd.conf: увеличиваем таймаут так, чтобы yum check-update успевал отработать:
    • Создаём /etc/zabbix/zabbix_agentd.d/yum-check-updates.conf (список в watch_updates дополните под свои нужды):
    • Создаём /etc/zabbix/scripts/yum-check-updates (и делаем исполняемым с помощью «chmod +x»):

    Примечания:

    • Список watch_updates допустимо делать избыточным — если какой-то пакет из списка не установлен, проверка его игнорирует.
    • Про структуру каталогов и CACHE_HELPERS читайте в нашей заметке про кэширование в Zabbix.

    Небольшая ошибка, исправление которой мы оставили на потом:

    • По умолчанию кэш метрик размещается в /var/run/zabbix, т.е. tmpfs.
    • Из-за этого первое чтение метрик после старта системы не может обновить его в фоновом режиме, а должно создавать с нуля.
    • Т.к. &#147yum check-updates&#148 может работать непредсказуемо долго, первое чтение нередко завершается ошибкой по таймауту.

    Возможные варианты исправлений:

    • Переместить кэш на постоянный раздел.
    • Увеличить значение Timeout в zabbix_agentd.conf.
    • Написать &#147[Service] ExecStartPre=/usr/bin/yum -q check-updates&#148 в /etc/systemd/system/zabbix-agent.service.d/YumCacheRefresh.conf.
    • Но все они нам не нравятся.

    Подпишитесь на новые статьи:

    Спасибо за Вашу заявку! В скором времени наш менеджер свяжется с Вами.

    EFSOL: Дневник отдела информационной безопасности

    Zabbix. Мониторинг обновлений Windows

    Dim WshShell
    Set WshShell = CreateObject(«WScript.Shell»)
    ‘Аргуметы
    ‘0 — Дни с последнего обновления
    ‘1 — дни с последнего поиска обновлений
    ‘2 — Количество неустановленных обновлений

    select case WScript.Arguments.Item(0)
    case 0
    sLastSuccessTime_install = WshShell.RegRead(«HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\Results\Install\LastSuccessTime»)
    Datenow=Date
    UDateDiff= DateDiff(«d», sLastSuccessTime_install, Datenow)
    WScript.Echo UdateDiff

    case 1
    sLastSuccessTime_search = WshShell.RegRead(«HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\Results\Detect\LastSuccessTime»)
    Datenow=Date
    UDateDiff= DateDiff(«d», sLastSuccessTime_search, Datenow)
    WScript.Echo UdateDiff

    case 2
    UpdateCount = WshShell.RegRead(«HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\UAS\UpdateCount»)
    WScript.Echo UpdateCount
    end select

    После чего импортируем шаблон
    Данный шаблон позволяет получать следующие данные:
    • Количество дней с последнего поиска обновления Windows
    • Количество дней с последней установки обновлений Windows
    • Количество неустановленных обновлений Windows

    А также содержит следующие триггеры:
    • Не проводился поиск обновлений Windows более 45 дней
    • Не проводилась установка обновлений Windows более 45 дней
    В случае необходимости пути и количество дней с момента последнего обновления можно изменить в шаблоне.
    Данный шаблон актуален для Windows Server 2008R2, Windows 2012, Windows 2012R2. Возможно будет работать и на десктопных ОС, но к сожалению это мы не тестировали.

    Мониторинг процесса Windows с помощью Zabbix?

    Как организовать мониторинг процессов windows c помощью zabbix? Интересует способ узнать сколько процентов от общего ресурса процессора потребляет тот или иной процесс.

    Версия Windows: Windows 10 pro 1909 x64
    Версия zabbix сервера: 4.4.3
    Способ снятия метрик: активный агент

    • Вопрос задан более года назад
    • 1214 просмотров

    1.открываем perfmon.msc (не перепутайте с perfmon.exe — это немного другая программа.)
    2.в «системном мониторе» (сейчас под рукой руссифицированная ось, поэтому ищите аналогичное на английском, благо монитор по умолчанию там один) нажимаем «добавить счетчики»
    3. выбираем Process и ваш процесс, нужные метрики.
    Все это только для понимания «что» вы будете мониторить.
    теперь «как»: идем и внимательно читаем:
    https://www.zabbix.com/documentation/4.2/ru/manual.
    https://www.zabbix.com/documentation/4.2/ru/manual.
    В последней статье ищем proc_info — это оно и есть
    Если есть какие то перфкаунтеры которых вы не нашли в заббикс — в 1й статье в конце есть как добавить нужные через user parameters

    Почему perfcounters а не WMI? Потому что обращение к WMI — довольно дорогая операция, часто не позапрашиваешь (а если залезть в глубины того что доступно через WMI — выяснится что там те же перфкаунтеры, облагороженные и обогащенные) — частое обращение довольно сильно жрет CPU
    Почему не сторонняя программа? Потому что Win уже собирает данные процессов и основная задача — добраться до них

    Обновление Zabbix 5.0 до 5.2

    26 октября 2020 года состоялся релиз версии 5.2 популярной системы мониторинга Zabbix. В своей статье я расскажу, как обновиться до новой версии Zabbix 5.2 с предыдущего релиза 5.0. В качестве операционных систем, на которых будет выполняться обновление выступят Centos 7, 8 и Debian 10, Ubuntu 18, 20.

    Что нового в Zabbix 5.2?

    Все нововведения свежей версии Zabbix 5.2 вы можете прочитать в официальном релизе — https://www.zabbix.com/ru/release_notes. Я среди них выделил следующие:

    1. Появился новый тип элемента данных — script. С его помощью можно существенно расширить возможности мониторинга. Например, при наблюдении за микросервисами и приложениями. Отрадно видеть такие изменения. Явно видно, что Zabbix старается идти в ногу со временем.
    2. Комплексные экраны полностью заменяются дашбордами. Их теперь можно будет создавать в шаблонах (наконец-то). Существующие экраны будут трансформированы в дашборды автоматически.
    3. Появились новые функции триггеров для работы с историческими данными. В документации еще не вижу подробностей. На одном из скринов видел функцию trendavg. Надо ждать обновление доков с подробностями использования.
    4. Улучшили ролевую модель прав пользователей для гранулярного управления правами. Не понял, о чем речь, не разбирался еще. Думаю, просто более гибко можно настраивать права на объекты и элементы мониторинга.
    5. Появились готовые шаблоны для мониторинга Asterisk, DB Oracle, Ceph, Squid, Php-fpm. Многие костыли, которые я городил много лет для мониторинга всех этих программ, становятся не актуальными. Напоминаю, что чуть раньше появился шаблон для мониторинга mssql server.
    6. Появилась встроенная поддержка протокола modbus. Я как раз недавно настраивал подобное. Для этого требовалась компиляция и установка внешнего модуля. Теперь все работает из коробки.
    7. В качестве стандартного формата для шаблонов становится YAML вместо XML.
    8. Настройки языка и часового пояса вынесли наконец-то в веб интерфейс. Их можно глобально указать во время установки сервера или отдельно в настройках пользователя.
    9. Теперь хосты можно создавать вообще без указания интерфейса и адреса на нем. Раньше приходилось указывать какой-то несуществующий адрес, если у вас был чисто технический хост, например, с http агентом, который сам по себе может собирать данные.

    Ну и много других более мелких изменений. Я пробежался глазами по release_notes и перевел то, что показалось наиболее интересным. Еще наконец-то починили баг в Latest Data с отображением списков.

    В общем, Zabbix не стоит на месте, развивается. Свою нишу в мониторинге удерживает твердо. Если кто-то не читал мою статью про сравнение Zabbix vs Prometheus, можете ознакомиться. Описал своими словами отличия.

    Так же рекомендую мою статью по установке и настройке Zabbix 5. Там я разбираю различные варианты установки, выполняю первоначальную настройку и делюсь своим опытом эксплуатации данной системы мониторинга.

    Подготовка к обновлению

    Важная информация перед обновлением. Версия 5.2 без длительной поддержки. Через пол года к ней перестанут выходить обновления, так что вам обязательно придется обновляться на следующую версию. Если для вас не критичны нововведения этого релиза, пропускайте его и ждите новой LTS версии.

    Если у вас версия ниже 5.0, то предварительно обновите ее до указанной. У меня есть цикл статей на тему обновления Zabbix:

    Перед обновлением, сделаем на всякий случай бэкап базы данных. Для этого предварительно остановим сервер с агентом.

    У меня что-то активно писалось в базу, поэтому сервер выключался долго. Я проверил лог zabbix-server, чтобы убедиться в корректном выключении. Там все нормально было, сервер штатно завершил работу, дописав то, что у него там накопилось. Так что бэкапим.

    zabbix название базы данных заббикса
    -uzabbix ключ -u и дальше имя пользователя базы данных
    -p’password’ ключ -p и дальше пароль пользователя бд, если в пароле есть спецсимволы, экранируйте их одиночными кавычками

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

    Centos 7

    Подключаем репозиторий версии zabbix 5.0:

    Centos 8

    Очищаем и пересоздаем кэш yum:

    Debian 10

    Удаляем пакет текущего репозитория:

    Обновляем информацию о репозиториях:

    Ubuntu 18

    Удаляем пакет текущего репозитория:

    Обновляем информацию о репозиториях:

    Ubuntu 20

    Удаляем пакет текущего репозитория:

    Обновляем информацию о репозиториях:

    Если у вас другие версии систем, то простой найдите ссылки пакетов под свою версию в официальном репозитории — https://repo.zabbix.com/zabbix/5.2/ Дальнейшее обновление не будет отличаться от текущего.

    К обновлению подготовились, можно приступать.

    Установка обновления zabbix 5.0 до 5.2

    Centos 7, 8

    Для начала проверим список установленных пакетов zabbix в системе. Их название может быть разным в зависимости от используемых репозиториев. К примеру, в centos 7 у пакетов может быть дополнение в виде scl к названию пакета.

    Устанавливаем обновление zabbix на сервер Centos 8, выбирая установленные у вас пакеты:

    Для centos 7 будет такой список:

    Обращаю внимание, что на момент написания данной статья, пакетов 5.2 для Centos 7 в репозиториях нет. В официальных инструкциях их тоже нет и не понятно, будут ли. Как только появятся, я дополню статью.

    После завершения обновления, запускаем zabbix-server.

    Проверяем лог сервера. Необходимо дождаться обновления базы данных. Важно не трогать в этот момент сервер, не прерывать обновление, не пытаться его перезапустить. Если база большая, обновление может длиться очень долго. Рекомендую сначала где-то протестировать этот процесс, прежде чем обновлять прод.

    В конце должны получить сообщение:

    Есть ненулевой шанс, что будет какая-то ошибка с базой. Чаще всего возникают проблемы с какой-то нестандартной записью в таблице. Туда может попасть какой-то необычный символ, или с кодировкой проблемы. В этих случаях удаляйте проблемные записи, меняйте кодировку базы zabbix.

    После обновления переходите в web интерфейс и проверяйте версию Zabbix. Должна быть 5.2.

    На этом обновления Zabbix до 5.2 на Centos завершено.

    Debian / Ubuntu

    Устанавливаем само обновление zabbix на сервер с Debian или Ubuntu следующей командой:

    После завершения обновления, запускаем сервер:

    В момент запуска произойдет обновление базы данных. Для маленькой базы (1-2 гб) это не займет много времени. Вы можете даже не заметить процесса. Если база больше, то надо подождать, пока не закончится обновление. Следить за ним можно с помощью просмотра лог файла zabbix сервера.

    После завершения обновления базы, сервер запустится. После этого можно запустить и агент.

    В логах агента и сервера можно посмотреть версию запущенных сервисов.

    Теперь можно идти в веб интерфейс и смотреть на обновленную версию zabbix server. Перед этим почистите кэш браузера и удалите куки от страницы заббикса. Если этого не сделать, то могут быть проблемы и ошибки, с чем я не раз сталкивался. Если у вас в качестве веб сервера используется nginx, не забудьте поменять владельца директории /etc/zabbix/web на nginx, в том случае, если веб сервер работает от него. После обновления он будет принадлежать apache, а web интерфейс не заработает.

    Теперь можете лицезреть обновленную версию web интерфейса в браузере.

    Читайте также:  Home assistant mac os
Оцените статью