Snmp мониторинг windows server 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

Сайт ARNY.RU

Zabbix SNMP — после того, как настройка SNMP на сетевом устройстве CISCO изучена, пора применить этот опыт на практике. Предварительные данные были приведены в записи Настройка SNMP.

Предисловие

Производить мониторинг SNMP нужно в какой-то специализированной сетевой среде. На текущий момент без сомнения самой популярной системой для мониторинга является Zabbix.

Есть и другие, например OpenView от HP, NOC Project так далее, почему именно Zabbix? Причин много — простота установки и настройки, хорошая документация на русском и английском языках, свободно распространяемое ПО, назначение — в первую очередь это именно система мониторинга, а не хелп-деск или какое-то другое многофункциональное ПО со встроенной системой мониторинга «в нагрузку» или же в виде отдельного модуля. Мониторинг сетевых устройств — основной профиль для Zabbix.

Читайте также:  Vertu pc suite mac os

Для мониторинга будем использовать маршрутизатор CISCO c3725 в среде GNS3, связанный через Облако GNS3 с виртуальной машиной (VM) Hyper-V, на которой запущен Zabbix:

  • IP маршрутизатора F0/0 192.168.137.2/24;
  • IP VM 192.168.137.40/24.
Настройка маршрутизатора

Для простоты будем настраивать SNMP версии 2c:

Почему, а как же новая и безопасная версия 3? В теории — это одно, на практике — другое. Не ошибусь, если скажу, что в 90% компаний нет необходимости такого высокого уровня защиты для пакетов SNMP. Из-за этого, а также из-за простоты настройки на практике преимущественное распространение получила версия 2c. Кому интересна именно версия 3 — настройка (безотносительно Zabbix) довольно подробно была рассмотрена в в записи Настройка SNMP.

Основы Zabbix

Для начала рекомендую посмотреть довольно-таки неплохое обзорное видео по Zabbix (если не обращать внимание на вещи вроде «сэсэха агент» и другие ляпы). Рассматривается уже новый Zabbix 3.0, то есть визуально такой же, какой будет использоваться в данной записи. Смотреть можно здесь. Установку лучше пропустить, так как используем готовое решение и смотреть тогда нужно с

12.30. Основные моменты и понятия рассказаны.

Установка
Версия готового решения Zabbix Версия Ubuntu
3.2.0 14.04.3

Всё преднастроено, а установка в VM занимает 15 минут. Несмотря на то, что это решение построено на Ubuntu 14.04, поддержки виртуальных машин 2 поколения для Hyper-V нет. Не так страшно.

Если что-то не нравится, данную установку всегда можно быстро донастроить на свой вкус. Быстро обновить:

В общем и целом — удобно использовать именно это решение.

Настройка CLI

Прежде чем производить настройку в Веб-интерфейсе нужно потратить какое-то время и найти нужные OIDs для мониторинга.

Подключаемся через SSH к VM, реквизиты входа (напоминаю, что действия от root, если такое действие нужно — выполняем через sudo):

Первый вариант — можно использовать те OIDs, которые указаны в документации Zibbix.

Тут нужно также научиться пользоваться очень полезной командой snmpwalk. Команда непосредственно позволяет выбирать OIDs из наблюдаемого сетевого устройства:

Видно, что последняя цифра OID — это номер интерфейса (понадобится дальше).

Второй вариант — используем snmpwalk, а также значения, по которым можно делать отбор:

Третий вариант — можно скопировать весь вывод команды snmpwalk:

То есть копируем все OIDs со своими последними значениями в файл, забираем его через WinSCP и потом изучаем, допустим, в Notepad++.

Четвёртый вариант — использовать специальное ПО для чтения OIDs с устройства, например OiDViEW (есть бесплатная версия: //www.oidview.com/oidview.html ).

Наверняка есть ещё варианты, рассказал о том, что знаю и использую сам.

Изучение MIBs

Таким образом можно посмотреть какие MIBs применяются в устройстве, затем поискать информацию что это за MIBs. Если, допустим, хотим работать с интерфейсами, то сначала прям в файле бросается в глаза — IF-MIB, а IF тут понятно — Interfaces. Далее ищем данный MIB через CISCO IOS MIB Locator или же информацию по этому MIB в интернете:
//www.cisco.com/c/en/us/td/docs/switches/wan/mgx/mgx_8850/software/mgx_r2-0-10/pxm/reference/guide/pxm/ifmib.pdf

Внутри pdf-файла есть таблица параметров с подробным описанием каждого из параметров, например:

ifOperStatus Integer packets; down (2).. Indicates the current operational state of the interface..

Внизу описания параметра 2 важных значения:

Уровень доступа показывает как можно обращаться к данному параметру/разделу, например, для ifTable уровень доступа not-accessible показывает, что обращаться нельзя никак — это только контейнер, для ifOperStatus — можно считывать значение, записывать нельзя, ifAdminStatus — можно и считывать, и записывать.

Читайте также:  Маршрутизация портов windows server

Статус в большинстве случаев — текущий, то есть именно на момент запроса.

Обратиться из консоли к конкретному параметру можно, к примеру, как IF-MIB::ifOperStatus — текущий статус интерфейса. Ранее было видно, что F0/0 имеет порядковый номер 1 среди интерфейсов, поэтому:

Чтобы попутно проверять получаемую информацию по параметрам MIB и получать OIDs в цифровом выражении, есть вторая полезная команда:

  • snmpget — позволяет давать запросы к сетевому устройству, как это делает диспетчер SNMP, тоже прямо из консоли.

Пример.

Ещё раз — на этом этапе и до настройки Веб необходимо получить больше сведений об OIDs, которые будут мониториться — числовое представление для OID, формат вывода значения параметра — числа, текст, целые, дробные и так далее. При настройке Веб все эти данные понадобятся.

Небольшое отступление

Последние 2 параметра ifInOctets и ifOutOctets описываются как: общее число октетов полученных на интерфейсе, включая служебные. Это точное описание. Октет в информатике — восемь двоичных разрядов, то есть байт. Такое же определение дано в документации Zabbix для ifInOctets/ifOutOctets: Полное число полученных байтов, включая символы заголовков:

  • Чтобы перевести октеты в биты — их нужно умножить на 8;
  • Чтобы получить загрузку интерфейса за промежуток времени — нужно из конечного значения счётчика октетов вычесть начальное и разделить на промежуток времени.

Следующая важная вещь:

  • Счётчик октетов имеет конечное значение 2 32 и при переполнении сначала обнуляется, потом начинает заполняться снова. Если это не учесть, то при обнулении значения счётчика будет разово выведена неверная величина загрузки интерфейса. Учтено это или нет в Zabbix? Не могу сказать, не знаю, но при составлении собственных скриптов для расчёта, данный момент необходимо учитывать.
Настройка WEB

Настройка Веб состоит из нескольких несложных шагов, всё подробно рассказано на странице проекта — нужно потратить время и хорошо изучить данное описание. Моя адаптация:

  • Создать узел сети. Ввести имя, выбрать или создать группу для узла, в пункте Интерфейсы добавить интерфейс SNMP, ввести IP, интерфейс для агента — удалить:

Галка Use bulk request позволяет запрашивать у устройства несколько SNMP параметров за 1 запрос, для версии 2c это нормальный режим работы, поэтому галку на чекбоксе оставляем.

Зайти в созданный узел и далее на закладку Items и тут нужно будет создать элементы данных — как минимум 1 элемент для SNMP агента и как минимум 1 для ловушек SNMP. На самом деле элементов будет больше.

Элемент данных — это тот параметр, который будем мониторить.

Элементы данных для агента SNMP

Сначала создадим элементы данных для входящей и исходящей загрузки интерфейса F0/0 и сформируем график.

Для элемента входящей загрузки используем следующие параметры:

Два последних значения гарантируют формирование правильного графика загрузки интерфейса F0/0 в битах в секунду. Множитель 8 переводит байты в биты, а Delta speed per second (изменение в пересчёте на секунду) — разница между начальным и конечным значением, делённая на интервал. Проверить очень просто, можно менять как угодно значение Update interval (in sec) при этом показания на графике остаются неизменными.

Другой вариант выбрать следующие параметры:

В чём разница? Delta simple change (простое изменение) — конечное значение минус начальное, поэтому «разделить на интервал» нужно заложить в множитель. Множитель вышел 2 целых 6 в периоде — специально взял эти значения чтобы показать, что не всегда этот вариант удобен. А так принципиальной разницы нет. Для определённости используем 1 метод.

Читайте также:  Lenovo t430 windows 10 drivers

Теперь аналогично создадим элемент данных для исходящей загрузки F0/0.

Затем на закладке Graphs для R1 добавляется график с обоими параметрами. График есть, можно смотреть насколько загружен интерфейс.

Теперь создадим запись элемента данных для мониторинга статуса порта S0/0 — это ещё 1 порт на маршрутизаторе, к нему ничего не подключено, его номер равен 2 и OID для статуса это F-MIB::ifOperStatus.2 или .1.3.6.1.2.1.2.2.1.8.2 в числовом выражении:

Ещё полезные OIDs:

  • .1.3.6.1.4.1.9.2.1.56.0 — средняя загрузка CPU за 5 секунд;
  • .1.3.6.1.4.1.9.2.1.57.0 — средняя загрузка CPU за 60 секунд;
  • .1.3.6.1.4.1.9.2.1.58.0 — средняя загрузка CPU за 5 минут;
  • .1.3.6.1.4.1.9.2.1.8.0 — объём свободной памяти.
Триггер

На основе созданной записи для S0/0 на закладке Triggers для узла R1 теперь можно создать триггер, который будет обрабатывать изменения в состоянии интерфейса S0/0. Можно задать множество условий и даже комбинаций из условий, возьму одно из самых простых выражений:

Тут 1 — (как было показано выше) цифровое выражение статуса Up для интерфейса и триггер мониторит среднее значение для статуса интерфейса за 30 секунд, если оно не 1, тогда условие срабатывает.

Проходит 30 секунд, проверяем что триггер сработал.

Теперь добавляем в GNS3 ещё 1 маршрутизатор, соединяем его интерфейс S0/0 c интерфейсом S0/0 R1, включаем эти интерфейсы на обоих маршрутизаторах и ждём 30 секунд.

Элемент данных для ловушек SNMP

Если не брать готовое решение Zabbix, то много чего нужно настраивать дополнительно. В случае готового решения уже всё настроено, необходимо лишь завести саму запись элемента данных для ловушек. Идём снова на закладку Items для R1:

Теперь на R1 поднимаем интерфейс S0/1, к нему ничего не подключено и смотрим события в Monitoring — Latest Data, сделав отбор по нашему устройству или по группе:

Тут собственно видно, что графики в общем-то формируются автоматически — для статуса F0/0 график не создавался — и доступны из этого меню, но для удобства и более точной настройки лучше создавать графики вручную.

Нажимаем кнопку History для более детального просмотра пришедших ловушек:

На что тут надо обратить внимание:

  • Неверное задание 1 из параметров нарушает работу всего создаваемого объекта;
  • Отдельно про параметр Ключ (Key) — где-то ключ задаётся произвольно и его функция только в дополнительном описании создаваемого объекта, а где-то верное задание ключа — необходимо для правильной работы.
Работа с большим числом узлов

Все элементы данных (Items) и график (Graphs) создавались непосредственно в узле R1. А что делать, когда узлов десятки? Тогда нужно в начале создать вначале шаблон/шаблоны, далее внутри шаблона создать элементы данных и графики, а затем уже шаблон применять к узлам. Это избавит от рутинной работы по добавлению одних и тех же настроек в узлы.

Чтобы не добавлять узлы вручную, можно воспользоваться закладкой Configuration — Discovery, создав там элементы для автоматического поиска узлов по заданным критериям.

На этом с SNMP в Zabbix всё — простая, базовая настройка рассмотрена.

Дополнение от 16.03.2018

Zabbix 3.4 уже довольно давно вышел и на момент хорошо отлажен. В нём есть готовые, очень хорошие шаблоны для сетевого оборудования (CISCO, Qtech, прочее). Соответственно про версию 3.2 и тем более ниже — нужно забыть и использовать только 3.4.

Оцените статью