Reporting Service用のデータベースがいるとかいろいろあって、レポートサーバーはインストール見送り。
今回の本題は、"OMとSQL Serverを別サーバーとし、それぞれWindows FWを有効にしている場合、インストール時にシステム要件に記載のないポートを開けておく"ということです!それ以外にもいくつかポイントがありました。
それではどうはまったのかを再現していきます。
Report Viewer 2012をインストールしようとしたら、
というメッセージが。。。
ということで、SQL Server 2012 Feature PackのMicrosoft System CLR Types for Microsoft SQL Server 2012である"SQLSysClrTypes.msi"をダウンロードします。
SQLSysClrTypes.msiをインストールします。
ようやく、Report Viewer 2012をインストールします。
ようやくOprations Managerをインストールします。
しかし、この画面の後
のデータベース選択で、正しいコンピュータ名、ポート番号を指定しているにもかかわらず、先に進めなくなります(本画像は後で取り直したものですので、あしからず)。
@kishima67さん、gogotea3さんのアドバイスを基にSQL Native Clientをインストールしたり、SQL Server側のWindows FWでSQL Browserサービスのポート"1334/UDP"を開けてみたりしたものの効果なく。。。
インストールウィザードで問題が発生しているタイミングで、OM側にてnetstat -nしてみたところ、SQL Server側の135,445へアクセスしていました。。。これを基に調べてみたところ、どうやら
SCOM 2012 - Installing Operations Manager Database on server behind a firewall http://t.co/wNUv4Jfcd7に該当する模様。
OpsMgrSetupWizard.logを探し出して、内容を確認してみたところ、下記の通りエラーが発生していました。
[21:45:56]: Always: :DatabaseConfigurationPage: Attempting to connect to database using server\instance g2sql2012a1. If we need it, the port is 1433
[21:46:39]: Error: :Error in Forcing Service to Running state.: Threw Exception.Type: System.InvalidOperationException, Exception Error Code: 0x80131509, Exception.Message: 'g2sql2012a1' コンピューターのサービス コントロール マネージャーを開けません。このオペレーティング システムには他の特権が必要です。
[21:46:40]: Error: :StackTrace: 場所 System.ServiceProcess.ServiceController.GetDataBaseHandleWithAccess(String machineName, Int32 serviceControlManaqerAccess)
場所 System.ServiceProcess.ServiceController.GetDataBaseHandleWithConnectAccess()
場所 System.ServiceProcess.ServiceController.GenerateNames()
場所 System.ServiceProcess.ServiceController.get_ServiceName()
場所 System.ServiceProcess.ServiceController.GenerateStatus()
場所 System.ServiceProcess.ServiceController.get_Status()
場所 Microsoft.EnterpriseManagement.OperationsManager.Setup.Common.SetupValidationHelpers.ForceSqlServiceToRunningState(String sqlServerInstance)
[21:46:40]: Error: :Inner Exception.Type: System.ComponentModel.Win32Exception, Exception Error Code: 0x80131509, Exception.Message: RPC サーバーを利用できません。
[21:46:40]: Error: :InnerException.StackTrace:
[21:46:40]: Warn: :Could not start the SQL Service g2sql2012a1 but we will attempt to connect anyway.
[21:46:40]: Info: :Info:Opening/Testing Sql Connection on g2sql2012a1, port:
[21:46:40]: Debug: :Connection was not open. We will try to open it.
[21:46:41]: Debug: :SqlConnectionReady returned True.
ということで、135,445周り(つまりMS-RPC、NetBIOS、CIFS)のポートをSQL Server側のWindows FWで開けてみました。
それでも、ダメでした。とりあえずSQL Server側のWindows FWを一旦無効
にすると、問題無い。。。まだポートを開けないとダメなようです。
SQL Server側のWindows FWでDropしている通信を探知すべく、
手順 5: ファイアウォール ログの表示 http://technet.microsoft.com/ja-jp/library/cc753781(v=WS.10).aspxにしたがって、ログを構成しました。
結果、OM側からSQL Server側の49154へアクセスしていることがわかりました。
#Fields: date time action protocol src-ip dst-ip src-port dst-port size tcpflags tcpsyn tcpack tcpwin icmptype icmpcode info path
2013-11-16 23:23:35 DROP TCP 192.168.1.75 192.168.1.67 51587 49154 52 S 734206486 0 8192 - - - RECEIVE
2013-11-16 23:23:38 DROP TCP 192.168.1.75 192.168.1.67 51587 49154 52 S 734206486 0 8192 - - - RECEIVE
2013-11-16 23:23:44 DROP TCP 192.168.1.75 192.168.1.67 51587 49154 48 S 734206486 0 8192 - - - RECEIVE
※192.168.1.75がOM側IPアドレス、192.168.1.67がSQL Server側IPアドレスです。
49154を加味して、検索すると
SQL Server 2008 R2 Express リモート接続用のポート番号について http://ap.atmarkit.co.jp/bbs/core/fdb/24614
が見つかりました。Windows Management Instrumentation (WMI)も開けないとダメです。。。
つまり、OMのインストール時には、Windows Management Instrumentation (WMI)とファイルとプリンターの共有をSQL Server側のWindows FWで開けておく必要があります。(繰り返しになりますが)開けていないと、下記の画面から先に進みません。
解決の方法がわかりましたので、インストールを進めます。
SQL Server側でWindows FWが正しく構成されていると、こうなります!
データウェアハウスのデータベース構成もきちんと表示されます。
で毎度のことながら忘れてしまうサービスアカウントを追加します。
How to Install the First Management Server in a Management Group http://technet.microsoft.com/en-us/library/hh301922.aspxの15番です。
Operations Manager Accounts http://technet.microsoft.com/library/hh212808.aspx
どういう権限が必要かは、Security Considerations http://technet.microsoft.com/library/hh487288.aspxのService Accounts配下を確認します。Data Warehouse Write accountとData Reader accountは、Deploying System Center 2012 - Operations Manager http://technet.microsoft.com/en-us/library/hh298609.aspxのRequired Accountsの表にある"Note"部分を確認すると良いです。System Center Configuration service and System Center Data Access service accountは、OMのローカル管理者権限が必要である旨も、ここに書かれています。
Operations Manager Accounts http://technet.microsoft.com/library/hh212808.aspxも参考になります。
作成したサービスアカウントを指定します。
System Center Configuration service and System Center Data Access service accountにOM管理サーバーのローカル管理者権限が無いとこうなります。。。
System Center Configuration service and System Center Data Access service accountにOM管理サーバーのローカル管理者権限を追加します。
SQL Server Management StudioでData Warehouse Write accountとData Reader accountのログイン権限を付与します。
後は、ウィザードに従ってインストールを進めます。
管理サーバーのインストールで警告が出ているので、何かを確認したところ、プロダクトキーを設定しろということでした。インストールウィザード中では、設定する箇所がないので、この後設定します。
プロダクトキーを設定するため、Operations Manager Shellを起動します。
Set-SCOMLicense http://technet.microsoft.com/en-us/library/hh920237(v=sc.20).aspxを使って、プロダクトキーを設定します。
ライセンスの状態を確認します。まだ評価版の状態。これを解消するにはOMのとあるサービスを再起動すればよかったはずですが、OS再起動でしのぎます。
OS再起動後に、ライセンスの状態を確認すると、"Retail"になっています。
以上で、無事にSystem Center 2012 R2 Operations Managerのインストール完了です。