Zabbix perf counter windows

Шаблоны 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

Но тут меня ждал сюрприз: на некоторых серверах с использованием большого количества ролей я находил в этом файле несколько ключей данных! Какой из них выбрать, какой будет правильным? Я определил для себя следующие правила: поскольку счетчик состоит из двух параметров, надо найти сначала первый (ваш Кэп), запомнить примерное месторасположение в файле, а потом найти второй и если он будет выше первого по месторасположению, то игнорировать его; если же сразу после месторасположения первого мы найдем ниже него несколько одинаковых вторых ключей, то нам будет нужен ближайший к первому второй ключ. Подобная логика должна вам помочь выбрать правильный ключ данных. В противном случае получаемая информация будет некорректная или в ней не будет смысла, либо вы вообще не получите никаких данных. Нигде в интернете этого я почему-то не нашел, видимо авторы статей не слишком сильно углублялись в мониторинг счетчиков.

Читайте также:  Canon mf237w driver windows 10

Далее. Следующий неприятный момент в этой системе мониторинга — это типы данных элементов мониторинга. В принципе все просто, но вы должны помнить, что тип данных автоматически не определяется и вы должны определить его самостоятельно и, что самое главное, при неправильном выборе вы останетесь без данных, они просто не будут приниматься. В случае со счетчиками производительности вам будет нужен исключительно «Числовой (с плавающей точкой)» как показано на скриншоте ниже:

Чтобы уяснить это простое правило, несколько лет назад у меня ушла куча времени и я дошел почти до отчаяния, ведь не знал ни основные проблемы при настройке, ни методики «траблшутинга». В таких случаях есть одно проверенное средство — zabbix_get, рекомендую использовать его всякий раз. когда вы находитесь в тупике.

В принципе это все, что я и хотел сказать. В интернете куча статей на тему «zabbix счетчики производительности» и копировать я их не намерен, я лишь хочу поделиться основным опытом в решении ранее казалось бы тупиковых проблем. Мало кто ставит целью не изобретение велосипеда, а описание рассуждений и логики мышления при решении обыденных для них задач, но ведь информации в интернете сейчас масса, а вырабатыванию подхода не учит почти никто.

Zabbix + Windows + Perfect Counter ( Zabbix Windows client configuration. )

30 марта 2010 (обновлено 27 мая 2017)

OS: Windows 2000 / XP / 2003 / Vista / 2008 / 7.

Настраиваем сбор показателей операционных систем Windows агентами Zabbix путём использования “счётчиков производительности “ операционной системы.

Для начала поборемся с результатами добрых деяний разработчиков системы Windows и её «локализаторов». Приведём наименования параметров счётчиков производительности к общему знаменателю, то есть, переименуем их всех в англоязычный вид, такой, какой они изначально имеют. Для этого нужно пройти в редакторе реестра в ветку со следующим адресом ”HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Perflib/009”, скопировать содержимое параметра ”Counter”, перейти в ветку ”HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Perflib/019” и заменить содержимое параметра ”Counter” тем, что мы перед этим получили из другой ветви.

Теперь у нас имена параметров на английском языке и нам не нужно будет извращаться, выискивая соответствие локализованных вариантов оригинальным.

Запросим у системы список имеющихся в наличии счётчиков производительности:

В ответ получим список, начинающийся примерно так:

Можно удовлетворить любопытство более подробным выводом данных о имеющихся счётчиках:

Для начала нас будут интересовать следующие показатели:

Наименование сетевого интерфейса можно узнать из вывода следующей команды:

В результате получаем нечто вроде следующего:

Если мы увидели в имени сетевого адаптера символы не латинского алфавита, то весьма возможно, мы имеем проблемы; некоторые версии Zabbix агентов не могли отрабатывать запросы к параметрам с не латинскими символами. Единственное, что я смог придумать, так это переименование оборудования сетевого интерфейса с заменой символов не латинского алфавита на латинские. Хотя, можно проверить, вдруг уже пофиксили эту проблему на вашей версии агента. У меня версии 1.6 вполне отрабатывали русские имена устройств.

Читайте также:  Windows installer program problems

Сформируем запрос следующего вида:

В итоге получаем нечто вроде следующего:

Создаем в конфигурационном файле агента Zabbix пользовательский параметр, где последним показателем является частота обновления параметра в секундах:

Значением первых двух счётчиков является количество проходящих, в том или ином направлении, байт в секунду. Третий параметр указывает нам на пропускную способность интерфейса, это нам пригодится при построении графиков.

Настраиваем Zabbix сервер для приёма данных от счётчиков производительности Windows.

Настроим мониторинг загрузки Ethernet интерфейса.

Создаем параметр «in.eth0» шаблона «t_win»:

Создаем параметр «out.eth0» шаблона «t_win»:

Создаем параметр «band.eth0» шаблона «t_win»:

Создаем график «util.eth0»:

В результате мы получим график утилизации сетевого интерфейса.

Под конец ещё одна «затыка». Необходимо активировать собираемые нами параметры счётчиков производительности кроме шаблона ещё и в списках параметров каждого хоста. Такой вот мелкий нюанс, способный попортить немало крови, если не знать про него.

[ уже посетило: 15953 ]

Поблагодарить автора ( сделайте свой денежный вклад в хорошее настроение )

Блог белорусского сисадмина

полезные записки

Zabbix и счетчики производительности (perf counters)

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

Стоит начать с того, что имя счетчика пишется в двойных кавычках, начиная с бэкслэша (\). В точности так, как выводит его команда typeperf -qx. Т.е. правильный вид для мониторинга загрузки всех ядер CPU будет выглядеть примерно так:

Все бы ничего, но при вводе такого счетчика и довольных мыслях («ща всё замониторю с красивыми графиками») мы получаем ответ от заббикса в виде Not supported. Начинаем долго и нудно гуглить по этому вопросу и никак не натыкаемся на ответ. В качестве одной из предполагаемых причин такого поведения может быть запуск 32-битного агента на 64-битном хосте. Но даже при запуске правильного, 64-битного клиента, мы не получаем удовлетворения и видим Not supported.

А все потому, что по умолчанию, у вновь создаваемых элементов (item) мониторинга выставлен тип информации (type of information) — numeric(unsigned). Казалось бы, ничего в этом страшного нет. Загрузка процессора не может быть отрицательной. Так и есть. Но почему-то, разработчики заббикса посчитали, что под понятие numeric(unsigned) попадают ТОЛЬКО целые числа. О чем, в принципе, они честно сообщают в доках: Numeric (unsigned) — 64bit unsigned integer. Выставляем numeric(float) и тихо радуемся работающему мониторингу.

Zabbix и счетчики производительности (perf counters) : 8 комментариев

Добрый день!
Мне этот способ не помог. Странно то, что у меня очень много Windows-серверов на мониторинге и небольшая часть из них не реагирует на это ключ, остальные работают нормально. Что я только уже не делал. Идеи у меня закончились.
Может есть ещё какие-нибудь нюансы по данной проблеме?

Здравствуйте!
Какой именно ключ не помог? Загрузка процессора? Если используется локализованная винда (русская или любая другая), то ключ в таком виде работать не будет, т.к. его нет в системе. Надо подбирать вместо этого цифровое значение ключа. Например, ключ для получения процента использования файла подкачки выглядит так:
perf_counter[\700(_Total)\702]

Читайте также:  Включение камеры mac os

Да, Windows на русском.
Использую вот этот ключ:
perf_counter[«\Processor(_Total)\% Processor Time»]
он не работает.
Пробовал вот этот:
perf_counter[\Процессор(_Total)\% общей загруженности процессоров]
тоже не работает.
Пробовал такой:
perf_counter[\238(_Total)\240]
тоже не поддерживается.
Во всех трёх случаях пишет: «Not supported».
Причём, я непосредственно на сервере, где нужно мониторить нагрузку на CPU из командой строки вытянул счётчики с помощью команды:
lodctr /s:perfcount.txt
и ориентировался при построении ключа для Zabbix именно по ним.
Даже не знаю что делать.

Для русской винды надо использовать только цифровое значение. Zabbix далеко не сразу пытается проверять «Not supported» счетчики после их изменения. Самый верный вариант — перезапустить сервис заббикса и агент. Опять же, можно попробовать включить дебаг-лог — он может сказать что именно ему не нравится.
Я встречал такие случаи, когда заббикс писал «Not supported» на часть айтемов на разных серверах, а на следующий день уже все работало. Можно попробовать просто оставить правильное значение для счетчика (цифровое) и подождать.

Согласен, просто понять бы какое всё-таки правильное значение. Не подскажете правильное числовое значение для общей нагрузки процессора, аналог: perf_counter[«\Processor(_Total)\% Processor Time»]
Заранее спасибо!

Найдено решение.
Для локализованной русской версии Windows аналогом ключа:
perf_counter[«\Processor(_Total)\% Processor Time»]
является ключ:
perf_counter[\Процессор(_Total)\Процент времени бездействия]

Надеюсь кому-то типа меня поможет не так долго мучаться с проблемой.
Всем большое спасибо за помощь!

Zabbix Documentation 5.2

Table of Contents

7 Windows performance counters

Overview

You can effectively monitor Windows performance counters using the perf_counter[] key.

For more information on using this key or its English-only equivalent perf_counter_en , see Windows-specific item keys.

In order to get a full list of performance counters available for monitoring, you may run:

You may also use low-level discovery to discover multiple object instances of Windows performance counters and automate the creation of perf_counter items for multiple instance objects.

Numeric representation

Windows maintains numeric representations (indexes) for object and performance counter names. Zabbix supports these numeric representations as parameters to the perf_counter , perf_counter_en item keys and in PerfCounter , PerfCounterEn configuration parameters.

However, it’s not recommended to use them unless you can guarantee your numeric indexes map to correct strings on specific hosts. If you need to create portable items that work across different hosts with various localized Windows versions, you can use the perf_counter_en key or PerfCounterEn configuration parameter which allow to use English names regardless of system locale.

To find out the numeric equivalents, run regedit, then find HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009.

The registry entry contains information like this:

Here you can find the corresponding numbers for each string part of the performance counter, like in ‘\System\% Processor Time’:

Then you can use these numbers to represent the path in numbers:

Performance counter parameters

You can deploy some PerfCounter parameters for the monitoring of Windows performance counters.

For example, you can add these to the Zabbix agent configuration file:

With such parameters in place, you can then simply use UserPerfCounter1 or UserPerfCounter2 as the keys for creating the respective items.

Remember to restart Zabbix agent after making changes to the configuration file.

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