четверг, 19 декабря 2013 г.

Could not verify if current user is in sysadmin role SCOM 2007R2 Data Warehouse setup Error

На дворе конец 2013 года. Большинство заказчиков давно уже перешли на мониторинг ИТ-инфраструктуры с помощью Microsoft System Center Operations Manager 2012. Однако те, кто не владел Software Assurance все еще работают со старыми версиями SCOM 2007R2. Речь пойдет как раз о случае, когда заказчику потребовалось расширение функционала SCOM 2007R2, а вариант коробочного решения - все роли на одном сервере,  не содержал гибкости, а скорее набор подводных камней и препятствий.

Нам требуется установить компонент System Center Operations ManagerData Warehouse DB на отдельный сервер MSSQL, исходя из рекомендаций Microsoft по распределенному развертыванию.
http://technet.microsoft.com/en-us/library/hh298610.aspx

Однако мы не будем использовать кластерный вариант и сфокусируемся только на установке Data Warehouse DB.


Рис.1 Распределенное развертывание SCOM в отказоустойчивом варианте.


Первое с чем мне пришлось столкнуться  это отсутствие сервисных учетных записей для служб SCOM в AD. А это значит, что проигнорирован этап планирования при внедрении системы мониторинга.  Это сразу же нас приводит к проблеме. "Отдельностоящий" сервер MSSQL не может  прочитать SPN атрибут объекта computer Root Management Servrer (RMS) службы ConfigSDKService. Смотрим требования  по развертыванию http://technet.microsoft.com/en-us/library/hh298609.aspx

AccountDescriptionPermissions
Management server action account
This account is used to carry out actions on monitored computers across a network connection.
To save time, specify a domain-based account. We recommend that you create an account for this purpose that has local administrative credentials. You should not use an account that has domain administrative credentials.
System Center Configuration service and System Center Data Access service account
This account is one set of credentials that is used to update and read information in the operational database. Operations Manager ensures that the credentials used for the System Center Data Access service and System Center Configuration service account are assigned to the sdk_user role in the operational database.
This account can be configured as either Local System or as a domain account. The account must have local administrative credentials. For cases where the operational database is hosted on a remote computer that is not a management server, a domain account must be used. For better security, we recommend that you use an account different from the one used for the management server action account.

Применительно к версии SCOM2007R2 это означает, что на RMS служба System Center Data Access (OMSDK) должна работать от имени domain user account если мы хотим развернуть OperationsManager DB или Data warehouse DB  в качестве отдельной роли. В противном случае получим сообщение Could not verify if current user is in sysadmin Role’.


Рис.2 Сообщение об ошибке при установке роли Data warehouse DB.


Решение

Итак причина ошибки это службы System Center Configuration service и System Center Data Access service  на корневом сервере управления (RMS) работающие от Local System.

1.      Создаем  и подсовываем  службе System Center Data Access (OMSDK) доменный аккаунт, если этого не было сделано ранее. Руководствуемся документом KB936220 

Domain\scom-sdk-action  с минимальными привилегиями


Рис.3 Свойства службы System Center Data Access


Important To start the SDK Service and the Config Service, you must use the same account. Therefore, the account that you specify  must be same as the account

2.  Также настраиваем также службу  System Center Management Configuration (OMCFG) на работу от domain account.


Рис.4 Свойства службы System Center Management Configuration


3.   На сервере RMS добавляем Scom-sdk-account в локальные администраторы


Рис.5 Состав группы local administrator компьютера ролью RMS

4.  После изменения запуска указанных служб следует сделать новую роль  пользователя scom-sdk-account для SQL сервера который содержит базу OperationsManager. Руководствуемся статьей http://technet.microsoft.com/en-us/library/cc540384.aspx

·     On the new server hosting the OperationsManager database, add the correct permission for the login of the root management server on which the SDK Account is running, as follows:
  1. Open Microsoft SQL Server Management Studio, and in the Object Explorer pane, navigate to Security and then expandLogins.
  2. Locate the SDK Account, and add the account if it is not listed.
    noteNote
    If the SDK Account is running as LocalSystem, use the format <domain\computername$> in SQL Logins, where <computername> is the name of the root management server.
  3. Right-click the SDK Account, and select Properties.
  4. In the Login Properties dialog box, in the Select a page pane, select User Mapping.
  5. In the Users mapped to this login list, in the Map column, select the box that corresponds to OperationsManager (default name).
  6. In the Database role membership for: OperationsManager list, ensure that the following items are selected:configsvc_usersdb_datareaderdb_datawriterdb_ddladmin, and sdk_users.
  7. Click OK to save your changes and to close the Login Properties dialog box.


Рис.6 Настройка прав SQL role user на базу OperationManager

5.   На сервере RMS назначаем права scom-sdk-account в Local Security Policy – Local Policies – User Rights Assignments – Generate Security Audits


Рис.7 Локальная политика безопасноти. Назначение прав – Generate Security Audits для доменной уч.записи scom-sdk-action

6.    На Сервере RMS выполняем перезапуск  служб System Center Configuration service и System Center Data Access service   

Далее на новом сервере  Datawarehouse DB проверяем доступность чтения атрибута SPN

    "setspn -L <RMS server name>"


Рис.8 Вывод команды setspn l <RMS>

Если видим записи MSOMSdkSvc и MSOMHSvc то радуемся. Записи SPN всегда доступны в пределах границ безопасности домена. Но не всегда есть права у аккаунта на чтение и запись этих атрибутов. Читаем блог всеми любимого Кевина Хольмана J
  • Run ADSIEdit as a domain admin.
  • Find the SDK domain account, right click, properties.
  • Select the Security tab, click Advanced.
  • Click Add.  Type “SELF” in the object box.  Click OK.
  • Select the Properties Tab.
  • Scroll down and check the “Allow” box for “Read servicePrincipalName” and “Write servicePrincipalName”
  • Click OK.  Click OK.  Click OK.
  • Restart your SDK service – if AD has replicated from where you made the change – all should be resolved.
7.    Последнее, что обязательно надо проверить это сетевая доступность базы OperationManager DB. В моем случае роли RMS и MSSQL были совмещены на одном сервере и я потратил время на поиск этой неисправности. Windows Firewall – разрешаем правило SQL TCP IN 1433


Рис.9 Проверка правила windows firewall для SQL сервера с базой OperationManager

Проблема с установкой Datawarehouse DB роли на этом исчерпана J
В моем случае установка роли после вышеописанных действий прошла без проблем. Мораль такова, что любою информационную систему в составе сложных компонентов надо заранее планировать и закладывать масштабируемость.

И это первая запись в моем новом ИТ-блоге!

Комментариев нет:

Отправить комментарий