Oracle Enterprise Manager(OEM) メトリック収集エラーの解消
対応バージョン
Oracle Enterprise Manager 12.1.0
2016-02-16全体的に文の補足をしました
2015-01-13記事公開
Oracle Enterprise Manager Cloud Controlにて発生するメトリック収集エラーの解消方法について、よく行うものを記載します。
発生原因
設定の間違い、構成失敗、通信の失敗などメトリック収集エラーは色々な要因をもって発生する可能性があります。OEMを扱うことがあれば必ずと言っていいほど目にするエラーです。
状態の確認
基本的な状態の確認を行います。状態に異常がある場合、解消を試みます。
各Agentの起動状態確認
まずは各Agentの起動状態の確認をします。
OMSへの最後のアップロードが直近になっていることを確認し、手動アップロードにてエラーが発生しないことを確認します。
1 2 |
$ [AGENT_INSTANCE_HOME(agent_inst)]/bin/emctl status agent $ [AGENT_INSTANCE_HOME(agent_inst)]/bin/emctl upload agent |
Agentに異常がある場合は一度再起動を試みます。起動後、解消されているか確認してみてください。
1 2 3 4 |
$ [AGENT_INSTANCE_HOME(agent_inst)]/bin/emctl stop agent $ [AGENT_INSTANCE_HOME(agent_inst)]/bin/emctl start agent $ [AGENT_INSTANCE_HOME(agent_inst)]/bin/emctl status agent $ [AGENT_INSTANCE_HOME(agent_inst)]/bin/emctl upload agent |
ターゲットデータベースがメトリック収集エラーとなっている場合
まずリスナーの起動状態を確認します。
起動およびインスタンスをリスニングしていることを確認してください。
1 |
$ lsnrctl status [リスナー名] |
リスナーが停止していた場合は以下のコマンドを実施し、リスナーを起動後に解消されているか確認してみてください。
1 2 |
$ lsnrctl start [リスナー名] $ lsnrctl status [リスナー名] |
リスナーにインスタンスが登録されていなかった場合は以下の登録コマンドを対象のインスタンスで実施し、解消されているか確認してみてください。
1 2 |
$ sqlplus / as sysdba SQL> ALTER SYSTEM REGISTER; |
DBSNMPユーザのロック状態を確認します。
1 |
SQL> select username, account_status from dba_users where username = 'DBSNMP'; |
DBSNMPがロックされている場合はロックの解除および、必要であればOEMに登録したパスワードを変更する必要があります。
1 2 3 4 |
SQL> -- ロックの解除 SQL> alter user DBSNMP account unlock; SQL> -- 再インストールなどで OEM に登録したパスワードが不明で一致していない場合はパスワードの変更 SQL> alter user DBSNMP identified by [パスワード]; |
OEMへ登録したパスワードはOEMの画面から各データベースのターゲット画面を開き、「ターゲット名」>「構成」>「監視構成」から変更が出来ます。
OEMの再同期による解消
上記の対応を行った場合でもうまくいかない場合、OMA(Agent)とOMSの同期がうまくいっていない可能性があります。
OMSにて以下を実行
1 2 3 4 |
CLI(コマンドラインインターフェース)にて OEM を操作するためにログインを行います。 $ <OMS_HOME(oms)>/bin/emcli login -username=SYSMAN -password=<パスワード> 管理エージェント・リカバリを実行します。 $ [OMS_HOME(oms)]/bin/emcli resyncAgent -agent="[エージェント名]" |
[各エージェントサーバーホスト名]:[監視ポート]
エージェントにて以下を実行
1 2 3 4 |
$ <AGENT_INSTANCE_HOME(agent_inst)>/bin/emctl reload agent $ <AGENT_INSTANCE_HOME(agent_inst)>/bin/emctl reload agent dynamicproperties [Target_name]:[Target_Type] $ <AGENT_INSTANCE_HOME(agent_inst)>/bin/emctl clearstate agent $ <AGENT_INSTANCE_HOME(agent_inst)>/bin/emctl upload |
$ [AGENT_INSTANCE_HOME(agent_inst)]/bin/emctl config agent listtargets
ターゲットの動的プロパティを再計算して、ターゲットの動的プロパティを生成します。
次に、oracle_databaseの動的プロパティ生成の例を示します。
$ emctl reload agent dynamicproperties database:oracle_database
このコマンドは、emd.propertiesファイルを変更する場合に使用できます。たとえば、アップロード間隔を変更するには、emd.propertiesを変更した後、emctl reloadを実行できます。このコマンドは、管理エージェント構成ファイル(.XML)が手動で編集されたときに使用できます。たとえば、管理対象ターゲットの属性を定義しているtargets.xmlファイルに対して変更が行われた場合、変更されたターゲット情報がこのコマンドによって管理サービスにアップロードされ、管理サービスでは管理リポジトリ内の情報が更新されます。
注意: 手順が明確に文書化されている場合またはオラクル社カスタマ・サポート・センターからユーザーに指示があった場合を除いて、手動によるtargets.xmlファイルの編集はサポートされていません。
状態ディレクトリの内容をクリアします。このコマンドを実行すると、$ORACLE_HOME/sysman/emd/stateにあるファイルが削除されます。状態ファイルは、管理エージェントによって対応する.xmlファイルに変換されるのを待機しているファイルです。
管理対象ホストから管理サービスに対する現在の管理データの即時アップロードを強制実行するには、このコマンドを使用します。
その他の補足
メトリックを手動で再評価するコマンド
1 |
$ [AGENT_INSTANCE_HOME(agent_inst)]/bin/emctlcontrol agent runCollection [targetName]:[targetType] [colletionItemName] |
上記コマンドで指定するcollectionItemNameは、以下の手順にてXMLファイルから取得します。
https://docs.oracle.com/cd/E26854_01/doc.121/b65081/emctl_cmds.htm#CHDJCEBA
ターゲット名及びターゲットタイプを一覧で確認するコマンドできます
1 |
$ [AGENT_INSTANCE_HOME(agent_inst)]/bin/emctl config agent listtargets<br/> |
メトリックの可用性ステータス一覧
https://docs.oracle.com/cd/E26854_01/doc.121/b65081/appdx_target_avail.htm
Enterprise Manager Cloud Control管理者ガイド
A Enterprise Managerのディレクトリ構造の理解
https://docs.oracle.com/cd/E26854_01/install.12103/b65085/appdx_directory_structure.htm
OEM emctl コマンド
http://docs.oracle.com/cd/E26854_01/doc.121/b65081/emctl_cmds.htm
OEM CLI(コマンドラインインターフェース)
http://docs.oracle.com/cd/E26854_01/em.121/b70512/toc.htm