Назад | Перейти на главную страницу

Данные Perfmon в SQL

Простите за стену текста ниже.

На моем рабочем месте у нас довольно много серверов Exchange и поддерживающих контроллеров домена, и все в настоящее время контролируются SCOM. Я установил определенные элементы мониторинга поверх того, что SCOM может делать на веб-сайте ASP.net при поддержке базы данных SQL.

Я очень хочу более внимательно следить за серверами, чтобы мы могли:

Baseline the servers better for historical comparison
If a problem occurs we can pull out more raw data.

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

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

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

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

Exchange 2007 in Domain1.com
Exchange 2010 in Domain2.com

Серверы логически разделены следующим образом для обоих Exchange 2007/2010:

Mailbox Servers
Client Access Servers
Hub Transport Servers
Domain Controllers

Я хотел бы получить счетчики основ со всех серверов, указанных выше, а затем более подробно остановиться на конкретных типах серверов, например, о получении усредненной задержки RPC с серверов почтовых ящиков, количестве подключений с серверов CAS, отправленных сообщений в секунду для HT серверы и т. Д.

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

Должен ли я создавать свои таблицы SQL для каждого класса сервера или просто объединить все записи в одну таблицу?

это ужасная идея запускать локальный сценарий на каждом сервере, который бросает все данные в таблицу SQL? Я рассматривал возможность сбора данных удаленно, но если я просто хочу собирать немного данных каждые несколько минут, я обнаружил, что время сильно различается, что вызвано задержкой в ​​сети или другими факторами, которые сбивают время.

Я также хотел бы услышать о любых возможных решениях для архивирования, например, как вести более частые записи за последние дни (возможно, каждые 5 минут для всех счетчиков в течение 5 дней), но вести менее частые записи, возвращаясь во времени.

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