Новые часовые пояса и подписки в Operations Manager

Обновление от 09.10.2014: В данную статью внесены дополнения, в связи с выпуском пакета обновлений KB2998527 для корректировки часовых поясов. См. конец статьи.

С принятием Федерального закона Российской Федерации от 21.07.2014г. № 248-ФЗ «Об исчислении времени» на территории Российской Федерации осуществляется перевод часов и устанавливаются соответствующие новые часовые зоны и значения времени. В связи с этим, в данной статье я бы хотел привлечь внимание к одной особенности Operations Manager, которая может проявится при изменении часовых поясов.

Речь пойдет о подписках (Subscriptions). Как известно, подписки используются для отправки информации о создании и изменении алёртов (Alerts) через внешние каналы информации, такие как электронная почта, мгновенные или короткие сообщения. В передаваемом сообщении, содержится информация об алёрте – название, описание, источник, ссылка на веб-консоль. Также для оповещений, доступна следующая информация по дате и времени:

  • Время создания (Alert Raised Time)
  • Время разрешения (Alert Resolution Time)
  • Время последнего изменения (Alert Last Modified Time)

Все эти данные хранятся в формате всемирного времени UTC в базе данных Operations Manager, то есть без смещения по часовым поясам. Преобразование в нужный часовой пояс происходит при непосредственном выводе информации консолью Operations Manager в соответствии с текущими настройками часового пояса компьютера.

В чём же собственно проблема с подписками? Оказывается, что для подписок преобразование времени работает по-другому. Дело в том, что в момент создания подписки Operations Manager сохраняет текущий часовой пояс компьютера, на котором работает консоль Operations Manager, вместе с самой подпиской в пакете управления. В этом можно легко убедиться, если выгрузить пакет управления с подписками Notifications Internal Library (файл будет иметь название Microsoft.SystemCenter.Notifications.Internal.xml), и найти в нём тэг <TimeZone> . Ниже приводится пример подписки, в которой присутсвует информация о часовом поясе.

image

Таким образом, каждая подписка имеет часовой пояс, который был зафиксирован в момент создания. При этом любые изменения настроек часовых поясов на уровне операционной системы НЕ ПОВЛЕКУТ за собой изменения в подписках Operations Manager. Другими словами: вы можете менять настройки часовых поясов в операционной системе как угодно, но в оповещениях вся информация о дате и времени по алёрту будет приведена к часовом поясу, который был установлен НА МОМЕНТ СОЗДАНИЯ ПОДПИСКИ.

После выхода и установки соответствующих обновлений для операционной системы с новыми часовыми поясами, можно предложить следующие варианты исправления подписок в Operations Manager:

  1. Пересоздание подписки.
  2. Изменение часового пояса в XML.

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

Второй вариант придется по вкусу тем, у кого большое количество подписок со сложными фильтрами. Давайте рассмотрим необходимые шаги:

  1. Необходимо создать одну временную подписку, чтобы скопировать из неё “правильное” значение для тэга <TimeZone> , поэтому первым этапом необходимо просто создать подписку с любыми настройками. В качестве примера, я попытаюсь поменять часовые пояса у существующих подписок на часовую зону острова Фиджи (UTC+12).

    image

  2. Далее экспортируем пакет Notifications Internal Library из консоли Operations Manager, в разделе Administration –> Management Packs. Обязательно сделайте резервную копию данного файла, так как в следующих шагах мы будем выполнять его редактирование.

    image

  3. Следующий этап – открываем в любом текстовом или XML редакторе пакет управления, и ищем по тэгу <TimeZone> как выглядить информация о новом часовом поясе. В моём случае, часовой пояс нашёлся по имени (Fiji).

    image

  4. Теперь необходимо заменить все вхождения тэга <TimeZone> со старым часовым поясом, на новый. Это можно выполнить с помощью функционала Search and Replace, в моём случае это выглядело следующим образом:

    image

  5. Сохраняем изменения и импортируем пакет управления обратно в Operations Manager

    image

Более подробнее о подписках, их формате и настройке можно узнать по следующим ссылкам:

Дополнение от 09.10.2014:

В сентябре 2014 года, выпущен официальный пакет с обновлением KB2998527 (https://support.microsoft.com/kb/2998527), корректирующий часовые пояса в операционной системе. При этом, как и ожидалось, при установке данного обновления, значения часовых поясов в подписках Operations Manager не изменяется. То есть, после установки обновления и наступления даты перевода времени (26 октября 2014 года), информация по дате и времени в ранее созданных подписках будет приводится с учётом "старого" часового пояса.

Например, в часовом поясе Москвы, даже после установки обновления KB2998527 (до наступления даты перевода времени), подписки продолжают создаваться с идентификатором, который использовался и ранее. Данный идентификатор отражает часовой пояс UTC+4:

<TimeZone>10FFFFFF00000000C4FFFFFF0000000000000000000000000000000000000000000000000000000000000000|Russian Standard Time</TimeZone>

При этом, после перевода времени 26.10.2014, подписки создаются с новым, правильным идентификатором часовой зоны UTC+3:

<TimeZone>4CFFFFFF00000000C4FFFFFF00000A0000000500020000000000000000000100030001000000000000000000|Russian Standard Time</TimeZone>
Естественно, все созданные до 26.10.2014 подписки будут иметь "старый" идентификатор часового пояса, и приводить время на час опережающее реальное время.

Таким образом, необходимые действия:

  1. До 26.10.2014 - установить обновления на все серверы Operations Manager, а также компьютеры на которых работают консоли Operations Manager;
  2. После 26.10.2014 - выполнить действия приведённые в данной статье для корректировки часового пояса в подписках Operations Manager.

Данная статья носит информационный характер, ссылки на веб-сайты предоставляются для удобства пользователей. Корпорация Майкрософт не несет никакой ответственности за содержание веб-сайтов, не предоставляет никаких гарантий относительно точности, полноты или законности их содержания, ссылки на которые используются в данной статье. Ссылка на внешний узел не подразумевает одобрения мнений, информации или продукции представленной на таких веб-сайтах.