Новые часовые пояса и подписки в 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> . Ниже приводится пример подписки, в которой присутсвует информация о часовом поясе.
Таким образом, каждая подписка имеет часовой пояс, который был зафиксирован в момент создания. При этом любые изменения настроек часовых поясов на уровне операционной системы НЕ ПОВЛЕКУТ за собой изменения в подписках Operations Manager. Другими словами: вы можете менять настройки часовых поясов в операционной системе как угодно, но в оповещениях вся информация о дате и времени по алёрту будет приведена к часовом поясу, который был установлен НА МОМЕНТ СОЗДАНИЯ ПОДПИСКИ.
После выхода и установки соответствующих обновлений для операционной системы с новыми часовыми поясами, можно предложить следующие варианты исправления подписок в Operations Manager:
- Пересоздание подписки.
- Изменение часового пояса в XML.
Первый вариант подойдёт для тех, у кого создано одна-две простых подписки, которые можно быстро пересоздать. Всё что необходимо сделать, это удалить и создать аналогичную подписку. Новая подписка, в свою очередь, будет иметь корректный часовой пояс.
Второй вариант придется по вкусу тем, у кого большое количество подписок со сложными фильтрами. Давайте рассмотрим необходимые шаги:
Необходимо создать одну временную подписку, чтобы скопировать из неё “правильное” значение для тэга <TimeZone> , поэтому первым этапом необходимо просто создать подписку с любыми настройками. В качестве примера, я попытаюсь поменять часовые пояса у существующих подписок на часовую зону острова Фиджи (UTC+12).
Далее экспортируем пакет Notifications Internal Library из консоли Operations Manager, в разделе Administration –> Management Packs. Обязательно сделайте резервную копию данного файла, так как в следующих шагах мы будем выполнять его редактирование.
Следующий этап – открываем в любом текстовом или XML редакторе пакет управления, и ищем по тэгу <TimeZone> как выглядить информация о новом часовом поясе. В моём случае, часовой пояс нашёлся по имени (Fiji).
Теперь необходимо заменить все вхождения тэга <TimeZone> со старым часовым поясом, на новый. Это можно выполнить с помощью функционала Search and Replace, в моём случае это выглядело следующим образом:
Сохраняем изменения и импортируем пакет управления обратно в Operations Manager
Более подробнее о подписках, их формате и настройке можно узнать по следующим ссылкам:
- Проверка работы оповещений: https://support.microsoft.com/kb/934756
- Рекомендации по настройке оповещений: https://blogs.technet.com/b/kevinholman/archive/2008/06/26/using-opsmgr-notifications-in-the-real-world-part-1.aspx
https://blogs.technet.com/b/kevinholman/archive/2012/04/28/opsmgr-2012-configure-notifications.aspx - Обзор XML-формата настроек оповещений: https://blogs.technet.com/b/kevinholman/archive/2008/10/12/creating-granular-alert-notifications-rule-by-rule-monitor-by-monitor.aspx
Дополнение от 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 подписки будут иметь "старый" идентификатор часового пояса, и приводить время на час опережающее реальное время.
Таким образом, необходимые действия:
- До 26.10.2014 - установить обновления на все серверы Operations Manager, а также компьютеры на которых работают консоли Operations Manager;
- После 26.10.2014 - выполнить действия приведённые в данной статье для корректировки часового пояса в подписках Operations Manager.
Данная статья носит информационный характер, ссылки на веб-сайты предоставляются для удобства пользователей. Корпорация Майкрософт не несет никакой ответственности за содержание веб-сайтов, не предоставляет никаких гарантий относительно точности, полноты или законности их содержания, ссылки на которые используются в данной статье. Ссылка на внешний узел не подразумевает одобрения мнений, информации или продукции представленной на таких веб-сайтах.
Comments
- Anonymous
January 01, 2003
Спасибо за информацию. - Anonymous
January 01, 2003
Хотели как лучше, а получилось как всегда. :) На самом деле идея была в поддержке пользователей, которые находятся в разных часовых поясах. Например, эксплуатируя один Operations Manager в Москве и Новосибирске, каждый пользователь может создать собственную подписку и получать оповещения с нужным преобразованием времени. Собственно, так и работает, но как я написал, учитывается это только в момент создания. В дальнейшем, при изменении часовых поясов, приходится выкручиваться. - Anonymous
January 01, 2003
Пожалуйста! :) Внёс небольшие дополнения в связи с выходом пакета обновлений KB2998527. - Anonymous
October 24, 2014
не осилили индусы глобально UTC...