- Мониторинг Microsoft Windows на базе Zabbix
- Общая концепция
- Основные возможности
- Triggers
- Инвентаризация
- Графики
- Где скачать
- Шаблоны Windows в ZABBIX
- Шаблоны Windows — нюансы
- Блог о Linux и Windows
- Записки по настройке Debian Ubuntu и Microsoft Windows
- Несколько шаблонов для Zabbix для мониторинга Windows
- Несколько шаблонов для Zabbix для мониторинга Windows
- Практика «Агента»
- Практика SNMP
- Заключение
- Присматриваем за окнами. Windows + Zabbix
- Введение
- Практика «Агента»
- Практика SNMP
- Заключение
- Шаблоны ZABBIX
- Шаблоны 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
Шаблоны Windows в ZABBIX
Шаблоны Windows в ZABBIX отличаются главным образом использованием специфическими для этой ОС счетчиками производительности. Счетчики представляют из себя встроенное средство анализа основных показателей операционной системы, некоторого программного обеспечения, а также аппаратных ресурсов. Подавляющее большинство серьезных систем мониторинга умеют использовать эти счетчики, вот и ZABBIX не исключение . В этой статье я постараюсь рассказать об основных «подводных камнях», встретившихся мне при работе с этим инструментом.
Вводная статья по шаблонам мониторинга ZABBIX — Шаблоны ZABBIX.
Если вам интересна тематика ZABBIX, рекомендую обратиться к основной статье — Система мониторинга ZABBIX, в ней вы найдете дополнительную информацию.
Шаблоны Windows — нюансы
Прочитав документацию ZABBIX касательно настройки счетчиков (кому интересно, глава «6 Счетчики производительности Windows«), я поразился насколько все просто и был удивлен столь богатой функциональностью, но не тут то было… Поначалу я пользовался встроенными в систему шаблонами, но в итоге на некоторых узлах сети счетчики у меня работали, а на некоторых данные просто не приходили не по одному ключу. В конечном счете я решил пройти процесс создания ключа данных с использованием счетчика Windoows с самого начала и до момента пока не увижу красивые графики с необходимой мне информацией.
В руководстве все просто:
Вы можете эффективно мониторить счетчики производительности Windows используя ключ perf_counter[].
Например:
perf_counter[«\Processor(0)\Interrupts/sec»]
или
perf_counter[«\Processor(0)\Interrupts/sec», 10]
Но почему счетчики работают не на каждом узле сети? Ответ тоже прост:
В зависимости от настроек местоположения, именования счетчиков производительности могут быть разными на разных серверах Windows. Это может ввести определенные проблемы при создании шаблонов для Windows, имеющих разные настройки местоположения.
Каждый счетчик производительности может быть переведен в цифровую форму, которая является уникальной и независимой от языковых настроек, так что вы можете использовать числовое представление, а не строковое.
Для того чтобы найти цифровые эквиваленты, выполните regedit, а затем найдите HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009.
Напрашивается следующий вывод: буквенное представление счетчиков работает только на системе с языком, который аналогичен языку счетчиков в вашем шаблоне. В итоге я решил использовать только цифровое представление и перевести все необходимые мне данные на эту форму.
С переводом все элементарно: просто ищем необходимый ключ реестра (см. выше), выгружаем данные в любой текстовый файл и ищем необходимые ключи:
Здесь вы можете найти соответствующие числа для каждой части строки счетчика производительности, как для ‘\System\% Processor Time’:
System -> 2
% Processor Time -> 6
Затем используйте эти числа для преобразования пути в числа:
\2\6
UPD: 2016.05.19: есть некоторые неприятные нюансы, подробнее см. в Изменения счетчиков производительности CPU
Но тут меня ждал сюрприз: на некоторых серверах с использованием большого количества ролей я находил в этом файле несколько ключей данных! Какой из них выбрать, какой будет правильным? Я определил для себя следующие правила: поскольку счетчик состоит из двух параметров, надо найти сначала первый (ваш Кэп), запомнить примерное месторасположение в файле, а потом найти второй и если он будет выше первого по месторасположению, то игнорировать его; если же сразу после месторасположения первого мы найдем ниже него несколько одинаковых вторых ключей, то нам будет нужен ближайший к первому второй ключ. Подобная логика должна вам помочь выбрать правильный ключ данных. В противном случае получаемая информация будет некорректная или в ней не будет смысла, либо вы вообще не получите никаких данных. Нигде в интернете этого я почему-то не нашел, видимо авторы статей не слишком сильно углублялись в мониторинг счетчиков.
Далее. Следующий неприятный момент в этой системе мониторинга — это типы данных элементов мониторинга. В принципе все просто, но вы должны помнить, что тип данных автоматически не определяется и вы должны определить его самостоятельно и, что самое главное, при неправильном выборе вы останетесь без данных, они просто не будут приниматься. В случае со счетчиками производительности вам будет нужен исключительно «Числовой (с плавающей точкой)» как показано на скриншоте ниже:
Чтобы уяснить это простое правило, несколько лет назад у меня ушла куча времени и я дошел почти до отчаяния, ведь не знал ни основные проблемы при настройке, ни методики «траблшутинга». В таких случаях есть одно проверенное средство — zabbix_get, рекомендую использовать его всякий раз. когда вы находитесь в тупике.
В принципе это все, что я и хотел сказать. В интернете куча статей на тему «zabbix счетчики производительности» и копировать я их не намерен, я лишь хочу поделиться основным опытом в решении ранее казалось бы тупиковых проблем. Мало кто ставит целью не изобретение велосипеда, а описание рассуждений и логики мышления при решении обыденных для них задач, но ведь информации в интернете сейчас масса, а вырабатыванию подхода не учит почти никто.
Блог о Linux и Windows
Записки по настройке Debian Ubuntu и Microsoft Windows
Несколько шаблонов для Zabbix для мониторинга Windows
Несколько шаблонов для Zabbix для мониторинга Windows
По следам заметок о ZABBIX- свободная система мониторинга и отслеживания статусов разнообразных сервисов компьютерной сети, серверов и сетевого оборудования.
В системе Zabbix есть возможность привязать шаблон к серверам и компьютерам на базе Windows. Называется Template OS Windows.
В один прекрасный момент я понял: а неплохо бы еще туда прикрутить кучу счетчиков
Практика «Агента»
Если у Вас установлен Zabbix агент, то общаться мы будем с ОС через него.
При просмотра шаблона Template OS Windows обращаем внимание на элемент данных:
Average disk write queue length perf_counter[\234(_Total)\1404].
Что же означают эти цифры \234(_Total)\1404. ?
В ОС Windows эти цифры обозначают внутренние идентификаторы счетчиков производительности. Но если у Вас установлена база Zabbix с кодировкой UTF8, то ничего не мешает нам использовать русские названия в счетчиках.
Получаем счетчики следующим образом:
А если у нас несколько жестких дисков (интерфейсов и т.п.):
Слишком много информации? Фильтруем:
typeperf «\Физический диск(_Total)\»
Другой вариант получить счетчики:
Открыв файл мы увидем идентификаторы и их название в начале на английском, а затем на русском языке.
Практика SNMP
Но что делать, когда нельзя (или нет желания) установить агент?
Для этого, мы будем читать счетчики через SNMP:
snmpwalk -Of -c public -v 2c 192.168.0.1
Если выполнять под ОС Windows, то результат будет вида:
.iso.3.6.1.2.1.1.1.0 = STRING: «Hardware: Intel64 Family 6 Model 44 Stepping 2 AT/AT COMPATIBLE — Software: Windows Version 6.1 (Build 7601 Multiprocessor Free)»
Если выполнять под ОС Linux, то результат будет вида:
.iso.org.dod.internet.mgmt.mib-2.system.sysDescr.0 = STRING: Hardware: Intel64 Family 6 Model 44 Stepping 2 AT/AT COMPATIBLE — Software: Windows Version 6.1 (Build 7601 Multiprocessor Free)
Linux вариант более информативный.
Заключение
Осталось подключить необходмые счетки и можно будет следить за производительностью системы.
Присматриваем за окнами. Windows + Zabbix
Введение
Практика «Агента»
Если у Вас установлен Zabbix агент, то общаться мы будем с ОС через него.
При просмотра шаблона Template OS Windows обращаем внимание на элемент данных:
Average disk write queue length perf_counter[\234(_Total)\1404].
Что же означают эти цифры \234(_Total)\1404. ?
В ОС Windows эти цифры обозначают внутренние идентификаторы счетчиков производительности. Но если у Вас установленна база Zabbix с кодировкой UTF8, то ничего не мешает нам использовать русские названия в счетчиках
Получаем счетчики следующим образом:
typeperf -q
А если у нас несколько жестких дисков (интерфейсов и т.п.):
typeperf -qx
Слишком много информации? Фильтруем:
typeperf «\Физический диск(_Total)\»
Другой вариант получить счетчики:
lodctr /s:perfcount.txt
Открыв файл мы увидем идентификаторы и их название в начале на английском, а затем на русском языке.
Практика SNMP
Но что делать, когда нельзя (или нет желания) установить агент?
Для этого, мы будем читать счетчики через SNMP:
snmpwalk -Of -c public -v 2c 192.168.0.1
Если выполнять под ОС Windows, то результат будет вида:
.iso.3.6.1.2.1.1.1.0 = STRING: «Hardware: Intel64 Family 6 Model 44 Stepping 2 AT/AT COMPATIBLE — Software: Windows Version 6.1 (Build 7601 Multiprocessor Free)»
Если выполнять под ОС Linux, то результат будет вида:
.iso.org.dod.internet.mgmt.mib-2.system.sysDescr.0 = STRING: Hardware: Intel64 Family 6 Model 44 Stepping 2 AT/AT COMPATIBLE — Software: Windows Version 6.1 (Build 7601 Multiprocessor Free)
(Также можно поискать соответствие цифр с названиями на http://support.ipmonitor.com/snmp_center.aspx)
Linux вариант более информативный.
Заключение
Осталось подключить необходмые счетки и можно будет следить за производительностью системы.
Шаблоны ZABBIX
После установки ZABBIX и его настройки пришло время приступить к созданию шаблонов мониторинга. По умолчанию в системе доступно множество готовых к использованию шаблонов и в большинстве случаев они вполне способны решать многие задачи по наблюдению и выявлению неисправностей, а потому вам остается лишь добавить необходимые для наблюдения узлы или устройства, настроить хотя бы небольшую иерархию и логически сгруппировать объекты мониторинга. Интерфейс ZABBIX в принципе позволяет без чтения документации самостоятельно разобраться в настройках, но все же новичка будут сильно раздражать неочевидные моменты и огрехи в разработке интерфейса — надо признать, что он получился далеко не самым удобным, а многие основные элементы управления выглядят просто «слепо» и неопытный администратор не сразу обратит на них внимание. Однако все же стоит сказать большое спасибо разработчикам продукта хотя бы за то, что этот интерфейс все же есть и подавляющее большинство задач администрирования и настройки можно выполнить именно из него.
Если вам интересна тематика ZABBIX, рекомендую обратиться к основной статье — Система мониторинга ZABBIX, в ней вы найдете дополнительную информацию.
Шаблоны ZABBIX
Дефолтные шаблоны ZABBIX покрывают достаточно большую область мониторинга, начиная от unix- и windows- систем, заканчивая сетевыми устройствами. Тем не менее перед системными администраторами часто встает задача ручного допиливания шаблонов, а иногда и вообще создания собственных с нуля. В этом вам помогут мои статьи, ну и конечно же официальная документация.
Найти информацию о шаблонах мониторинга в моем блоге вы сможете в следующих статьях:
- Мониторинг MySQL в ZABBIX — тюнинг СУБД всегда был важной задачей и без отслеживания ключевых показателей вы вряд ли добьетесь в этом деле успеха;
- Мониторинг Apache в ZABBIX — нельзя забывать про отслеживание показателей одного из самых популярных веб-сервисов;
- Мониторинг дисков ZABBIX — дефолтные шаблоны не предоставляют возможности для широкого мониторинга дисков unix-систем, эта статья призвана устранить этот недочет;
- Шаблоны Windows в ZABBIX — мониторинг Windows — это отдельная тематика, а потому я посветил ей целую статью и вероятнее всего на этом дело не кончится.
Тем не менее «затачивание» шаблонов под свои нужды представляет из себя далеко не самую простую задачу и сделать это можно не за один раз и не за короткий временной промежуток. Поскольку большинство системных администраторов вообще не используют системы мониторинга, следовательно каких-то больших сообществ и «клубов по интересам» касательно этих систем в интернете очень мало, либо нет вообще. Все это делает малодоступным свободное перенимание опыта со стороны новичков от их «видавших многое» коллег. И это особо актуально по отношению лучших практик мониторинга критически важных элементов серверов, сетевых устройств. Все это делает достаточно ценным ваши собственные шаблоны мониторинга, которые вы создавали, расширяли и совершенствовали на протяжении многих лет практики системного администрирования. Если кто-то пока не понимает о чем идет речь, то поясню: если единственная цель мониторинга сервера — понять включен он или выключен, то тут все просто и задача упирается во всего лишь один триггер, отвечающий за уведомление в случае отсутствия от сервера признаков жизни; однако если вы ставите целью понимание насколько аппаратное обеспечение сервера отвечает требованиям производительности со стороны ПО и когда может потребоваться сделать апгрейд, либо вашей задачей является тюнинг СУБД и выявление узких мест в работе системы, а может быть предмет вашего мониторинга — сложная система, состоящая из массы связанных друг с другом узлов с множеством служб (например, кластер), то в этих случаях вам придется самостоятельно «допиливать» шаблоны мониторинга под себя и никто с вами ничем не поделится и по-простому проскочить не получится.
Вот и у меня за годы использования ZABBIX накопились некоторые знания и навыки в администрировании этой системы и цель статьи этими знаниями поделиться. По мере изменений я буду выкладывать свои шаблоны ZABBIX и при необходимости их можно будет скачать. Пока основным и наиболее сложным моментом является анализ счетчиков производительности Windows, ведь их надо анализировать в комплексе и эту задачу я решаю следующим образом: по возможности в каждом ключе данных пишу комментарии как этот счетчик можно использовать и с какими другими показателями его надо анализировать. Что-то из этого — личный опыт, а что-то найдено в сети и источники я тоже буду стараться выкладывать.