Исправляем Hearbeat Discovery в SCCM 2007

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

В один прекрасный день, зайдя в консоль SCCM, я совершенно случайно  заметил, что у меня подозрительно много компьютеров со статусом Client=No. После недолгого изучения выяснилось, что из 700 зарегистрированных компьютеров, клиент видится на четырех. Сказать, что я испугался — значит ничего не сказать. В это время на фирме шел процесс разворачивания Office 2007, и если бы SCCM перестал работать, скорее всего перестал бы работать и я.

Сразу хочу сказать большое спасибо Александру Петлевому за моральную поддержку и несколько полезных ссылок.

Итак, я приступил к нервному изучению логов. Первое, что проверили — когда агенты последний раз сообщали о себе через Heartbeat Discovery. Для этого необходимо открыть в любой коллекции любой компьютер, открыть его свойства и по Agent Name найти соответствующую запись Agent Time. 

image

На скрине видно, что Heartbeat Discovery имеет номер 1, и последний раз агент сообщал сведения 29.04.2010 в 08:07:48.

В моем случае разбор “полетов” проходил 28го числа, а дата последнего Heartbeat Discovery была датирована 14м числом. Удостоверившись, что настройка Clear Insatall Flag стоит в 10 дней (это можно сделать здесь: Site Database –> Site management –> %SITE_CODE% –> Site Settings –> Site Maintance –> Tasks –> Clear Instal Flag –> Properties), причина удаления флага IsClient стала понятна: heartbeat не приходил, задача Clear Instal Flag честно сделала своё дело. Оставалось “малое” – найти причину, по которой агенты не сообщали о своем состоянии.

После беглой проверки логов, выяснилось, что весь функционал SCCM работает штатно – за день до этого на несколько десятков компьютеров был успешно развернут Office, OSD работало штатно, все другие Discovery тоже работали штатно. Т.е. сломано была только Heartbeat Discovery.

Пришлось углубиться в понимание того, как работает Heartbeat Discovery. Тут пригодились несколько ссылок – первая (разница между SMS2003 и SCCM2007 в этом плане минимальна) и вторая. Вкратце, процесс происходит следующим образом:

1. Согласно расписанию, агент формирует XML-файл. Файл сохраняется в примерно таком виде: %windir%\system32\CCM\Inventory\Temp\d0c06056-6363-41ce-9a2e-5409e7702cbe.xml
2. После формирование файл отправляется с помощью BITS на сервер SCCM (Management Point). На севере все XML-файлы попадают в папку %SCCM_DIR%\inboxes\auth\ddm.box\
3. После этого сервер обрабатывает полученные файлы и записывает полученные данные в базу.

Все процессы, связанные в Heartbeat Discovery можно посмотреть в лог-файлах, на строне агента это %windir%\system32\CCM\Logs\InventoryAgent.log, на стороне сервера это %SCCM_CCM%\Logs\MP)Ddr.log.

После изучения логов, я просто впал в ступор – как на агентах, так и на сервере в логах были только записи об успешной обработке файлов. Ни одной ошибки в них не было. Пришла идея посмотреть, что же там в папке inboxes\auth\ddm.box\. И вот тут меня ждал сюрприз – в этой папке находилось порядка 140000 файлов. Самый ранний файл был как раз датирован временем последнего сообщения агентов о себе. При этом в папке inboxes\auth\ddm.box\BAD_DDRS, куда попадают сбойные пакеты, ничего не было. Быстрый поиск в гугле особой информации не дал.

Явной причиной проблемы было нарушения процесса обработки пакетов DDR, поэтому появилась идея удалить несколько самых ранних файлов из папки inboxes\auth\ddm.box\. После удаление примерно 100 файлов и перезапуска службы SMS_EXECUTE на сервере, произошло чудо – процесс обработки файлов DDR стал вновь работать, и число файлов в inboxes\auth\ddm.box\ достаточно быстро сократилось до нуля. Версию о том, что процесс нарушился из-за сбойных файлов DDR подтвердило появление в папке inboxes\auth\ddm.box\BAD_DDRS порядка 1500 файлов.

Профит!

Реклама

System Center Service Manager 2010 RTM

Новость одной строкой: Сегодня на MMS был представлен System Center Service Manager 2010 RTM. Поехали!
Когда полная версия станет доступна всем пока не сообщается.