Завершающая статья о счетчиках производительности. В ней мы затронем некоторые моменты, связанные с анализом журналов производительности, а также рассмотрим создание уведомлений и настройку системы мониторинга на базе счетчиков производительности.
Просмотреть результаты работы группы сборщиков данных на локальном компьютере проще всего из оснастки Performance Monitor. В разделе отчетов (Reports) для каждой группы создается одноименная папка, в которой и содержатся собранные данные. Есть три режима просмотра — графический (Performance Monitor), в виде структурированного отчета (Report) и просмотр файлов (Folder). Для переключения между ними на панели инструментов есть соответствующие значки.
В графическом виде удобнее всего просматривать данные счетчиков производительности. Также, как и при мониторинге текущей активности, можно изменять внешний вид графиков, выделять отдельные графики или убирать лишние. Внизу располагается слайдер, с помощью которого можно задавать просматриваемый отрезок времени.
В режиме отчета вся информация разбивается на блоки по типу собираемых данных и выводится в виде структурированного отчета. Это особенно удобно для просмотра данных конфигурации и трассировки событий. Стоит иметь в виду, что режим отчета доступен только в том случае, если для данной группы в Data Manager была задана генерация html-файла.
Ну а в режиме Folder можно посмотреть содержимое папки.
Форматы файлов
Немного о формате файлов, в которых сохраняются данные. Для каждого типа сборщиков данных используется собственный формат.
Данные счетчиков производительности по умолчанию сохраняются в двоичном файле с расширением .blg (binary log file). Данные в этом формате можно просмотреть только в мониторе производительности, для чего надо в свойствах Performance Monitor указать в качестве источника лог-файл.
Если данных много, то можно вывести не все, а только выбранный отрезок времени, указав его с помощью ползунка.
Кроме двоичного данные счетчиков производительности можно сохранять в формате с разделением табуляцией (tab separated values, tsv) или с разделением запятой (comma separated values, csv). Эти форматы можно открыть в любом текстовом редакторе, либо в редакторе электронных таблиц типа Exel.
Данные отслеживания событий сохраняются в формате .etl (event trace log). Файлы этого типа можно открыть в Event Viewer, для чего надо в поле Actions выбрать пункт Open Saved Log.
Сведения о конфигурации сохраняются в формате XML. Для просмотра файлов этого типа удобно использовать интернет-браузер (IE, Opera и т.п) либо текстовый редактор с подсветкой синтаксиса XML, например Notepad++.
Tracerpt
Tracerpt.exe — утилита командной строки для манипуляций с файлами журналов. Она умеет преобразовывать файлы журналов ETL в формат XML и CSV, объединять файлы журналов, генерировать файл отчета и многое другое. Так следующая команда создаст из файла datacollector02.etl файл дампа dumpfile.xml и файл отчета summary.txt и поместит их в профиль текущего пользователя:
tracerpt datacollector02.etl
Обработать файлы datacollector01.etl и datacollector02.etl и вывести результат в файл dump.xml можно командой:
tracerpt datacollector01.etl datacollector02.etl -o dump.xml -of XML
Для удобства просмотра можно создать файл отчета, для чего надо запустить команду с ключом -report. Следующая команда создаст из файла datacollector02.etl файл дампа dump.xml, текстовый файл dump.txt и файл отчета report.xml:
tracerpt datacollector02.etl -o dump.xml -of XML -summary dump.txt -report report.xml
Вот так выглядит полученный файл отчета report.xml в браузере.
Примечание. Tracerpt.exe может работать и напрямую, получая данные в режиме реального времени. Все возможности этой утилиты можно посмотреть, запустив команду tracerpt -?.
Relog
Relog.exe — еще одна полезная утилита для работы с файлами журналов. С ее помощью можно перобразовывать файлы журналов из двоичного вида в формат CSV или TSV (и наоборот). Например, преобразуем формат файла командой:
relog datacollector01.blg -f csv -o datacollector01.csv
Кроме того, можно взять уже готовый журнал и на его основе создать новый, изменив набор счетчиков, временной интервал и интервал между выборками.
Для примера укажем брать набор счетчиков из файла counters.txt и изменим интервал выборки на 30 сек:
relog datacollector01.blg -o datacollector01_new.blg -cf counters.txt -t 30
И изменим временной интервал, ограничив его 1 часом:
relog datacollector01.blg -o datacollector01_new.blg -b 8/5/2013 6:30:00 -e 8/5/2013 7:30:00
Набор счетчиков указывается в текстовом файле, в формате \\компьютер\объект [экземпляр]\счетчик, по одному в строке. Посмотреть список счетчиков в журнале можно командой relog с ключом -q.
Справку по всем ключам программы можно вывести командой relog -?.
Создание уведомлений
Уведомления или алерты (Alerts) — это еще один, особый вид групп сборщиков данных. Алерты отслеживают показания счетчиков производительности и при достижении заданного предела сигнализируют об этом. Алерты можно использовать для оперативного мониторинга работоспособности сервера.
Создаются алерты практически так же, как и обычные группы сборщиков данных. Запускаем создание новой группы.
Даем группе название и выбираем создание в ручном режиме.
В качестве типа сборщика данных выбираем Performance Counter Alert (Оповещение счетчика производительности).
Выбираем нужные счетчики производительности и в поле Limit задаем предельное значении, по достижении которого алерт должен сработать сработает. Указывать можно как верхний (Above) так и нижний (Below) предел. В качестве примера возьмем счетчик, отслеживающий свободное место на системном диске, и поставим нижний предел 10%. Это значит, что алерт сработает, если свободного места останется меньще 10%.
Сохраняем созданный алерт.
Создав алерт, надо указать для него действие. Переходим к свойствам алерта.
На вкладке Alerts можно добавить\удалить счетчики производительности и изменить пределы срабатывания. Дополнительно здесь можно указать интервал снятия данных.
На вкладке Alert Action задается действие при срабатывании алерта. Можно отметить пункт «Log an entry in the application event log», тогда при срабатывании в системном журнале, в разделе «Applications and Services Logs/Microsoft/Windows/Diagnosis-PLA/Operational» будет сделана запись о событии. Также можно указать запуск одной из имеющихся групп сборщиков данных.
На вкладке Alert Task можно указать задание, которое будет выполнено при срабатывании алерта. О том, как создать это задание, я раскажу поподробнее.
Задание предварительно должно быть создано в планировщике заданий, поэтому запускаем планировщик и в поле Actions выбираем пункт «Create Task».
Даем нашему заданию имя и выбираем опцию Run whether user is logged on or not (Выполнять вне зависимости от регистрации пользователя). Затем отмечаем пункт «Run with highest privileges», что означает запуск задания с повышенными привилегиями.
Переходим на вкладку Actions, нажимаем кнопку «New» и выбираем действие, которое должно произойти при срабатывании алерта. В качестве действия можно указать:
• Start a program — запустить программу или скрипт;
• Send e-mail — отправить почтовое сообщение на указаный адрес;
• Display a message — отобразить на экране сообщение.
Выбираем отправку e-mail, как самый нейтральный вариант. Заполняем необходимые поля, указываем SMTP сервер и жмем OK.
Сохраняем задание и закрываем планировщик. При сохранении потребуется указать логин и пароль пользователя.
Возвращаемся к свойствам алерта и на вкладке Alert Task вписываем имя созданого задания. Обратите внимание, что нужно указать путь, по которому находится это задание в библиотеке планировщика. В нашем случае имя задания будет выглядеть так \Microsoft\Windows\alert.
Остается только сохранить алерт и запустить его. И теперь, как только свободное место достигнет критической отметки, мы тут же получим уведомление по e-mail. Получается довольно неплохая система мониторинга, и главное никаких лишних затрат.
Заключение
На этом пожалуй закончу увлекательное повествование о счетчиках производительности Windows. Надеюсь, что мне удалось описать основные моменты их использования. Более подробную информацию и описание конкретных счетчиков можно найти на сайте Microsoft TechNet.
Подскажите, на что влияет аргумент задачи, как и где его использовать