Zabbix мониторинг windows dhcp

Содержание
  1. Ещё один блог сисадмина
  2. воскресенье, 10 ноября 2019 г.
  3. Контроль работоспособности DHCP-сервера в Zabbix
  4. Принципы работы DHCP
  5. oioki.ru
  6. Похожие статьи
  7. 2 thoughts on “Мониторинг DHCP в Zabbix”
  8. Zabbix: LLD-мониторинг железа под Windows на PowerShell
  9. Шаблон
  10. Скрипты PS
  11. Подготовка Zabbix-агента
  12. smartmontools
  13. OpenHardwareMonitor
  14. Мониторим клиентские ПК в Microsoft AD с помощью Zabbix. Часть 1 — Автоустановка
  15. External tools
  16. Конфигурация инсталлятора и логирование
  17. Скрипт
  18. Постскриптум
  19. Читают сейчас
  20. Редакторский дайджест
  21. Похожие публикации
  22. Как ускорить миграцию Zabbix на TimescaleDB
  23. Зонтичная Grafana — скрещиваем Zabbix и Microsoft SCOM
  24. Zabbix 4.4 Unsupported — Но я решил продолжить его развитие
  25. Курсы
  26. Минуточку внимания
  27. Комментарии 22
  28. Монитор Zabbix для Windows с использованием SNMP
  29. Монитор Zabbix для Windows с использованием SNMP
  30. Список оборудования:
  31. Zabbix Playlist:
  32. Учебное пособие Zabbix:
  33. Учебник — Установка SNMP в Windows
  34. Учебник — Zabbix Monitor Windows с использованием SNMP

Ещё один блог сисадмина

воскресенье, 10 ноября 2019 г.

Контроль работоспособности DHCP-сервера в Zabbix

Как-то раз на работе потребовалось поставить на контроль DHCP-сервер. Сделать это нужно было, как обычно, срочно. Пока я делал, заказчики постоянно «держали руку на пульсе», интересовались результатами и поторапливали. Пытался воспользоваться различными утилитами командной строки, но в итоге наиболее пригодным вариантом оказалось написание собственного скрипта на python с использованием библиотеки ScaPy, благо в интернете можно найти примеры подобных скриптов. Собирались испытать скрипт на одном DHCP-сервере, а потом поставить на контроль ещё несколько десятков.

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

Принципы работы DHCP

Для начала ознакомимся немого с принципами работы DHCP.

Выдача настроек по DHCP происходит в следующей последовательности:

  1. клиент, желающий получить настройки, посылает широковещательный запрос DHCPDISCOVERY, при помощи которого пытается обнаружить доступные DHCP-серверы,
  2. сервер откликается на запрос DHCPDISCOVERY и отвечает пакетом DHCPOFFER, в котором предлагает клиенту использовать определённый IP-адрес,
  3. клиент отправляет серверу запрос DHCPREQUEST, в котором просит закрепить за ним указанный IP-адрес,
  4. сервер отвечает клиенту пакетом DHCPACK, в котором подтверждает, что IP-адрес закреплён за клиентом. Если сервер по каким-то причинам не может закрепить за клиентом указанный им IP-адрес, то отвечает пакетом DHCPNAK.

Для продления аренды ранее выданного сервером IP-адреса клиент использует запросы DHCPREQUEST, указывая в запросе ранее выданный ему IP-адрес.

Также протоколом предусмотрены пакеты DHCPDECLINE и DHCPINFO.

При помощи DHCPDECLINE клиент может сообщить серверу, что предложенный им IP-адрес уже используется.

Если клиенту не нужен IP-адрес от DHCP-сервера, то вместо запроса DHCPREQUEST клиент может отправить запрос DHCPINFORM для запроса дополнительных сетевых параметров. Так же как и в ответ на запрос DHCPREQUEST, на запрос DHCPINFORM сервер отвечает пакетом DHCPACK.

Если клиент хочет вернуть IP-адрес DHCP-серверу, он может отправить серверу запрос DHCPRELEASE. Если сервер получит такой запрос, он помечает IP-адрес как свободный. Протоколом не предусмотрен ответ на запросы DHCPRELEASE, поэтому невозможно убедиться в том, что сервер получил и обработал запрос.

oioki.ru

    Задача: Имеется DHCP-сервер, который должен выдавать ip-адреса по mac-адресу. Имеется Zabbix-сервер, которым мы хотим мониторить способность DHCP-сервера выполнять эту функцию. Решение под катом.

    Сразу обращу внимание, что реально ip-адрес выдаваться не будет, дабы не нарушать работу Zabbix-сервера. Мы будем просто проверять, приходит ли предложение DHCPOFFER от нашего DHCP-сервера. Допустим, мак-адрес Zabbix-сервера 01:02:03:04:05:06, а ip-адрес, который нужно выдавать – 10.0.0.5. Это реализуется примерно такими строками в dhcpd.conf:

Теперь скачиваем исходники последней версии DHCP-клиента с официального сайта Internet Systems Consortium. Распаковываем tar.gz-архив.

Вносим мелкие исправления в исходный файл client/dhclient.c, чтобы интерфейс на время DHCP-проверки не падал, а сразу после получения пакета DHCPOFFER – завершался. Ведь больше нам ничего не нужно – DHCP-сервер реагирует, и слава богу. Итак, исправления вносятся согласно следующему diff:

И выполняем такие команды (в этот момент мы находимся в каталоге с исходниками):

Создаем файл /usr/local/etc/zabbix/externalscripts/dhcptest.sh следующего содержания:

Здесь eth0 – сетевой интерфейс, через который должно идти общение с DHCP-сервером.
На данном этапе должно работать выполнение скрипта dhcptest.sh от имени любого пользователя. В случае успеха скрипт говорит DHCPOFFER 10.0.0.5, а если адрес получить не удается – No DHCPOFFERS received..

Теперь задействуем все это хозяйство в мониторинге Zabbix следующим образом. Item можно прикрепить к конкретному хосту, или к шаблону (как на скриншоте) – как вам удобнее:

Также по желанию можно включить триггер:
Теперь пробуем выключить DHCP-сервер, и наш мониторинг должен в течение 30 секунд нас проинформировать.

Похожие статьи

2 thoughts on “Мониторинг DHCP в Zabbix”

Огромное спасибо! Воспользовался Вашим решением для мониторинга, всё отлично. Правда, от имени пользователя у меня почему-то не работает – просто ничего не выводит.

почему не выложил готовый файл? сейчас файлы dhcpclient уже сильно отличаются от того что было…

Zabbix: LLD-мониторинг железа под Windows на PowerShell

Пришло время и мне собрать свой велосипед для мониторинга физического состояния Windows-железок. Готового решения или хоть более или менее работающего найти не удавалось с момента моего знакомства с Zabbix, а это более 3 лет. А тем более, чтобы оно было… элегантно что ли. Лично мне даже в таких вещах хочется видеть стройность и максимальную функциональность. Именно поэтому далее рассматривается только LLD и PowerShell. Ну и конечно же только бесплатное ПО.

Итак, мониторинг чего будет производиться:

  • S.M.A.R.T. дисков (информация, общее состояние и отдельные показатели)
  • Температуры, напряжение, обороты кулеров (на ваш выбор)

А выглядеть это все будет примерно так:

Суммарно понадобятся:

Шаблон

Под спойлером находится актуальный шаблон. Просто сохраните содержимое в формате xml и импортируйте в свой Zabbix.

Шаблон создан в Zabbix версии 3.2, возможно, будет работать и в более ранних версиях. Ключи стандартны и имеют вид ZScript[имя_скрипта, параметр1. параметрN]. Параметры передаются непосредственно в сам скрипт.

Надеюсь, шаблон получился максимально простым и понятным.

Скрипты PS

Ниже приведены необходимые скрипты. Внутри уже находятся и обнаружение, и запрос отдельных элементов. Работа проверена на Windows от XP SP3 до 2016. Само собой, решение с Execution Policy остается за вами.

Обнаруживаются только диски с задействованным СМАРТом. Параметры запрашиваются из столбца «RAW_VALUE». Хотите мониторить другой параметр? Просто укажите его номер. По умолчанию скобки и их содержимое отбрасываются. Если нужный вам параметр диск не отдает, то возвращается пустое поле.

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

Также зарезервировано одно имя датчика — Vbat. Это напряжение аккумулятора БИОС. Его значение вынесено в отдельный элемент для триггера (срабатывает если менее 2,9V).

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

Теоретически, можно обнаруживать и другие показатели (нагрузки, частоты. ). Используйте для этого соответствующий второй параметр в ключе. К примеру: ZScript[hard,discovery,load].

Подготовка Zabbix-агента

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

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

smartmontools

Для мониторинга состояния дисков используется smartmontools (версия 6.5 на момент написания статьи). При установке ПО по умолчанию ставится утилита smartctl-nc — именно она используется в скрипте для облегчения жизни вашего сервера. Также потребуется прописать пусть к папке bin в переменных средах.

Путь просто добавляем в конец переменной Path через точку с запятой. По умолчанию — C:\Program Files\smartmontools\bin

OpenHardwareMonitor

Для датчиков же используется OHM. Софт бесплатный с открытым кодом. Установка тривиальна, но для полноценной работы необходимо запускать программу в качестве службы. Для подобных вещей есть NSSM, я бы все же советовал качать последнюю сборку. А здесь можно посмотреть синтаксис.
Обещанный выбор датчиков обеспечивается за счет того, что названия датчиков можно изменять! Изменяете имена на удобочитаемые (они будут использованы в именах элементов), а ненужные датчики комментируете #.

Не забывайте перезапустить программу/службу для применения переименования.

Мониторим клиентские ПК в Microsoft AD с помощью Zabbix. Часть 1 — Автоустановка

External tools

Вкратце опишу что я использую:

-smartmontools — мониторинг SMART
-Network UPS Tools (NUT) — мониторинг упсов
-libusb driver — для NUT
-awk, grep — для парсинга

К сожалению, NUT+libusb заработал не так прекрасно, как ожидалось, пришлось накидать костылей, но все равно про него напишу, на случай если кому понадобится.

Конфигурация инсталлятора и логирование

Со временем придется обновлять агента, либо его конфигурацию, либо захочется добавить что-то новое, поэтому надо завести табличку(mssql) конфигурации с версиями модулей, которые мы планируем обновлять.

На локальных машинах версии будут храниться в файлах «ver» в соответствующих директориях.

И нужно где-то централизованно хранить результаты установки, на случай, если потребуется диагностика.

lastrun — дата последнего запуска скрипта
*_run — дата последнего запуска той или иной функции
*_err — соответственно результат запуска

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

Скрипт

Постскриптум

У меня скрипт размещен в dfs и запускается заданием, которое создается с помощью групповой политики.
Все используемые файлы выложены на git.

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Читают сейчас

Редакторский дайджест

Присылаем лучшие статьи раз в месяц

Скоро на этот адрес придет письмо. Подтвердите подписку, если всё в силе.

Похожие публикации

Как ускорить миграцию Zabbix на TimescaleDB

Зонтичная Grafana — скрещиваем Zabbix и Microsoft SCOM

Zabbix 4.4 Unsupported — Но я решил продолжить его развитие

Курсы

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Минуточку внимания

Комментарии 22

Имеется несколько сотен клиентских машин на базе ОС windows 7 в домене microsoft AD, хочется их мониторить, и помимо обычных cpu, mem, disk и т. п. неплохо было бы получать информацию о состоянии smart дисков, информацию с usb ибп

сотен клиентских машин на базе ОС windows 7 в домене microsoft AD

об интеграции с Zabbix, и речь идет об автоматическом развертывании на клиентских машинах.

Супер, интересная идея!
По автоматизации на вашем месте посмотрел бы немного в другую сторону — использовать какую-нибудь scm для деплоя нужной конфигурации ПО на машины (e.g. Saltstack — подходит и для win/linux-машин, прост в освоении, гибкий).
Фактически функционал scm позволяет реализовать все то что вы заскриптовали (хранение логов, статусов, деплой) в красивом виде. А мануалов по деплою клиентской части (salt-minion) в интернете полно. Тут вам и обновление и отчеты по версиям и логи. Salstack (начиная с какой-то версии) сам умеет регистрировать машины в заббикс, добавлять нужный темплейт.

Плюс хорошее знание SCM всегда поднимает общую управляемость инфраструктурой, нет необходимости костылить все на скриптах (сужу по опыту, сам деплоил агентов/настраивал сервера с помощью PoS, пока не узнал про Saltstack и не пощупал его).

Монитор Zabbix для Windows с использованием SNMP

Монитор Zabbix для Windows с использованием SNMP

Вы хотели бы узнать, как контролировать компьютер Windows с помощью SNMP? В этом уроке мы покажем вам, как установить SNMP в Windows и как настроить сервер Zabbix для мониторинга компьютера Windows без необходимости установки агента Zabbix.

• Версия Zabbix: 3.4.12
• Версия для Windows: 2012 R2

Список оборудования:

В следующем разделе представлен список оборудования, используемого для создания этого учебника Zabbix.

Все перечисленные выше аппаратные средства можно найти на веб-сайте Amazon.

Zabbix Playlist:

На этой странице мы предлагаем быстрый доступ к списку видеороликов, связанных с установкой Zabbix.

Не забудьте подписаться на наш канал YouTube, названный FKIT.

Учебное пособие Zabbix:

На этой странице мы предлагаем быстрый доступ к списку руководств, связанных с установкой Zabbix.

Учебник — Установка SNMP в Windows

Во-первых, нам нужно установить и настроить службу SNMP в Windows.

Откройте приложение «Диспетчер серверов».

Откройте меню «Управление» и нажмите «Добавить роли и функции».

Откройте экран функций, выберите параметр службы SNMP и завершите установку.

На следующем экране нажмите кнопку «Добавить функции».

Функция SNMP была установлена на вашем компьютере, но нам все равно нужно настроить службу SNMP.

Откройте экран управления службами Windows и получите доступ к свойствам службы SNMP.

Откройте вкладку «Агент», выберите все параметры и введите контактную информацию устройства.

Откройте вкладку «Безопасность» и выберите «Принимать пакеты SNMP с любого хоста».

Вам необходимо создать сообщество SNMP для чтения.

Ниже приведен пример нашего примера конфигурации:

Сообщество GokuBlack имеет разрешение на чтение только для Windows-сервера.

Контактное лицо, ответственное за этот компьютер Windows, было настроено как Zamasu.

Расположение оборудования было настроено как IT-комната Вселенной 10.

Вы успешно установили службу SNMP Windows.

Вы успешно настроили службу SNMP Windows.

Чтобы проверить конфигурацию SNMP, используйте следующие команды на компьютере под управлением Ubuntu Linux.

# apt-get install snmp
# snmpwalk -v2c -c GokuBlack 192.168.0.50

Вот небольшой пример вывода SNMPWALK.

iso.3.6.1.2.1.1.1.0 = STRING: «Hardware: Intel64 — Software: Windows Version 6.3
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.311.1.1.3.1.3
iso.3.6.1.2.1.1.3.0 = Timeticks: (614928) 1:42:29.28
iso.3.6.1.2.1.1.4.0 = STRING: «Zamasu »
iso.3.6.1.2.1.1.5.0 = STRING: «TECH-DC01.TECH.LOCAL»
iso.3.6.1.2.1.1.6.0 = STRING: «Universe10 — IT Room»

Поздравляем! вы установили службу SNMP на компьютер под управлением Windows.

Имейте в виду, что ваше приложение брандмауэра Windows должно принимать соединения с сервера Zabbix.

Брандмауэр Windows должен принимать сетевые пакеты на порте UDP: 161

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

Учебник — Zabbix Monitor Windows с использованием SNMP

Теперь нам нужно получить доступ к панели мониторинга сервера Zabbix и добавить компьютер Windows в качестве хоста.

Откройте браузер и введите IP-адрес вашего веб-сервера plus / zabbix.

В нашем примере в браузере был введен следующий URL:

На экране входа в систему используйте имя пользователя по умолчанию и пароль по умолчанию.

• Имя пользователя по умолчанию: Admin
• Пароль по умолчанию: zabbix

После успешного входа в систему вы будете отправлены на панель инструментов Zabbix.

На экране панели инструментов откройте меню «Конфигурация» и выберите параметр «Хост».

В правом верхнем углу экрана нажмите кнопку «Создать хост».

На экране конфигурации хоста вам нужно будет ввести следующую информацию:

• Имя хоста — введите имя хоста для идентификации сервера Windows.
• Видимое имя хоста — повторите имя хоста.
• Новая группа — введите имя для идентификации группы подобных устройств.
• Интерфейс агента — нажмите кнопку «Удалить».
• Интерфейс SNMP — введите IP-адрес сервера Windows.

Вот исходное изображение, перед нашей конфигурацией.

Вот новое изображение с нашей конфигурацией.

Затем нам нужно настроить сообщество SNMP, которое Zabbix будет использовать для подключения на компьютере под управлением Windows.

Откройте вкладку «Макросы» в верхней части экрана.

Создайте макрос с именем:

Макрос <$ SNMP_COMMUNITY>должен быть сообществом SNMP Windows Computer.

Затем нам нужно связать хост с определенным шаблоном сетевого монитора.

По умолчанию Zabbix поставляется с большим количеством шаблонов мониторинга.

Откройте вкладку «Шаблоны» в верхней части экрана.

Нажмите кнопку «Выбрать» и найдите шаблон с именем: TEMPLATE OS Windows SNMPv2.

Нажмите кнопку «Добавить» (1).

Нажмите кнопку «Добавить» (2).

Через несколько минут вы сможете увидеть исходный результат на панели инструментов Zabbix.

Окончательный результат займет не менее одного часа.

По умолчанию Zabbix будет ждать 1 час, чтобы узнать количество интерфейсов, доступных на компьютере Windows.

По умолчанию Zabbix будет ждать 1 час до сбора информации от сетевых интерфейсов.

Чтобы проверить вашу конфигурацию, откройте меню «Мониторинг» и нажмите «Графы».

В правом верхнем углу экрана выберите группу с именем ALL.

Выберите имя компьютера Windows.

Выберите график: MEMORY UTILIZATION

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

Поздравляем! Вы настроили сервер Zabbix для мониторинга компьютера под управлением Windows.

Читайте также:  Smart eyes pro для windows
Оцените статью