3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

この記事誰得? 私しか得しないニッチな技術で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

OCI Logging Analytics でオンプレミスの Oracle Database の監査ログを取得する

Last updated at Posted at 2024-06-26

はじめに

Logging Analytics は、OCI Observability&Managementのサービスの1つです。
Logging Analytics では、OCIのVCNやLoad Balancerなどの各種ログだけでなく、エージェントを使用することで、OSやデータベースなどのログを可視化、分析することができます。
もちろん、オンプレミスの Oracle Database のログの取得も可能です。

今回は、オンプレミスのExadata内のOracle Database の監査ログを管理エージェント、管理ゲートウェイ経由でLogging Analytics にアップロードする手順について説明します。

image.png

【前提条件】

  • ExadataはExadata X8M
  • Oracle Database のバージョンは19c
  • OCI側の必要なコンパートメントユーザーの作成が済んでいること
  • VCNや各種ゲートウェイなどの作成およびネットワークの設定が済んでいること
  • ExadataやOracle Database 側のログ生成などの事前設定については今回は省きます

必要な動的グループとポリシーの作成

  • 動的グループ(動的グループ名は任意)
#管理エージェント用動的グループ
ALL {resource.type = 'managementagent', resource.compartment.id = '[対象のコンパートメントのOCID]'}

#管理ゲートウェイ資格証明用動的グループ
ALL {resource.type='certificateauthority', resource.compartment.id = '[対象のコンパートメントのOCID]'}																												
  • ポリシー(ポリシー名は任意)
#サービス有効化
Allow service loganalytics to READ loganalytics-features-family in tenancy
Allow service loganalytics to READ compartments in tenancy

#管理エージェント用
Allow dynamic-group [管理エージェント用動的グループ名] to MANAGE management-agents in compartment [対象のコンパートメント名]																																									
Allow dynamic-group [管理エージェント用動的グループ名] to USE metrics in compartment [対象のコンパートメント名]																																								
Allow dynamic-group [管理エージェント用動的グループ名] to {LOG_ANALYTICS_LOG_GROUP_UPLOAD_LOGS} in compartment [対象のコンパートメント名]

#管理ゲートウェイ用
Allow dynamic-group [管理エージェント用動的グループ名] to READ certificate-authority-bundle in compartment [対象のコンパートメント名]																																									
Allow dynamic-group [管理エージェント用動的グループ名] to READ leaf-certificate-bundle in compartment [対象のコンパートメント名]								
Allow dynamic-group [管理エージェント用動的グループ名] to MANAGE certificate-authorities in compartment [対象のコンパートメント名] where any{request.permission='CERTIFICATE_AUTHORITY_CREATE', request.permission='CERTIFICATE_AUTHORITY_INSPECT', request.permission='CERTIFICATE_AUTHORITY_READ'}			
Allow dynamic-group [管理エージェント用動的グループ名] to MANAGE leaf-certificates in compartment [対象のコンパートメント名] where any{request.permission='CERTIFICATE_CREATE', request.permission='CERTIFICATE_INSPECT', request.permission ='CERTIFICATE_UPDATE', request.permission='CERTIFICATE_READ'}
Allow dynamic-group [管理エージェント用動的グループ名] to MANAGE vaults in compartment [対象のコンパートメント名] where any{request.permission='VAULT_CREATE', request.permission='VAULT_INSPECT', request.permission='VAULT_READ', request.permission='VAULT_CREATE_KEY', request.permission='VAULT_IMPORT_KEY', request.permission='VAULT_CREATE_SECRET'}
Allow dynamic-group [管理エージェント用動的グループ名] to MANAGE keys in compartment [対象のコンパートメント名] where any{request.permission='KEY_CREATE', request.permission='KEY_INSPECT', request.permission='KEY_READ'}					
Allow dynamic-group [管理エージェント用動的グループ名] to USE certificate-authority-delegates in compartment [対象のコンパートメント名]
Allow dynamic-group [管理エージェント用動的グループ名] to USE key-delegate in compartment [対象のコンパートメント名]			
Allow dynamic-group [管理エージェント用動的グループ名] to MANAGE leaf-certificates in compartment [対象のコンパートメント名] where all{request.permission='CERTIFICATE_DELETE', target.leaf-certificate.name=request.principal.id}

#資格証明用
Allow dynamic-group [管理ゲートウェイ資格証明用動的グループ] to USE certificate-authority-delegates in compartment [対象のコンパートメント名]		
Allow dynamic-group [管理ゲートウェイ資格証明用動的グループ] to USE vaults in compartment [対象のコンパートメント名]					
Allow dynamic-group [管理ゲートウェイ資格証明用動的グループ] to USE keys in compartment [対象のコンパートメント名]

管理ゲートウェイのインストール

(事前に、OSがOracle Linuxのコンピュートを作成し、JDK8をインストールしてください)

  • OCIコンソール画面から、監視および管理 -> 管理エージェント -> ダウンロードとキーから、Linuxのエージェントとゲートウェイをダウンロード
    image.png
  • 同じページの下部にあるキーの作成からキーを作成します
    作成後のキーファイルのダウンロードもお忘れなく!
    image.png
  • コンピュートにダウンロードしたゲートウェイのファイルをインストールします
#管理ゲートウェイが使用する4480ポートの解放
firewall-cmd --zone=public --add-port=4480/tcp --permanent
firewall-cmd --reload

#RPMのインストール
rpm -ivh oracle.mgmt_gateway.231118.1208.1702955171.Linux-Aarch64.rpm

#input.rspファイルの作成
#インストールキーの値は、ダウンロードしたキーファイルにある
#パスワードは任意
vi /tmp/input.rsp
ManagementAgentInstallKey = XXXXXX
CredentialWalletPassword = XXXXXX
GatewayPort = 4480
BatchingEnabled = true

#input.rspファイルの所有者をmgmt_agentに変更
chown mgmt_agent:mgmt_agent /tmp/input.rsp

#インストールを実行
/opt/oracle/mgmt_agent/agent_inst/bin/setupGateway.sh opts=/tmp/input.rsp

管理エージェントのインストール

  • Exadataにダウンロードした管理エージェントのファイルをインストールします
#zipファイルの回答
unzip oracle.mgmt_agent.231118.1208.Linux-x86_64.zip -d

#input.rspファイルの作成
#インストールキーとパスワードは管理ゲートウェイと同様
#ホストは管理ゲートウェイをインストールしたコンピュートのIPアドレス、ポート番号は4480
vi /tmp/input.rsp
ManagementAgentInstallKey = XXXXXX
CredentialWalletPassword = XXXXXX
GatewayServerHost = XXXXXX
GatewayServerPort = XXXXXX
Service.plugin.logan.download=true

#管理エージェントのインストール
/tmp/agent/installer.sh /tmp/input.rsp

ログ取得用のACL設定

#mgmt_aget:mgmt_agentへアクセス権限の付与
 setfacl -R -m u:mgmt_agent:rx /u01/app/oracle/admin/*/adump
 setfacl -d -m u:mgmt_agent:rx /u01/app/oracle/admin/*/adump

Logging Analyticsの設定

ここからは、OCIコンソール側の設定を行います。

エンティティ作成

  • OCIコンソール画面から、監視および管理 -> ログ・アナリティクス -> 管理からエンティティの作成を選択
  • エンティティ・タイプ:Oracle Database Instance
  • 名前:任意
  • 管理エージェント・コンパートメント:管理エージェントを作成したコンパートメントを選択
  • 管理エージェント:インストールした管理エージェントを選択
  • プロパティ
プロパティ名 プロパティ値
AUDIT_FILE_DEST /u01/app/oracle/admin/*/adump

ログ・グループ作成

  • OCIコンソール画面から、監視および管理 -> ログ・アナリティクス -> 管理からログ・グループの作成を選択
  • コンパートメント:選択不可
  • 名前:任意
  • 説明:任意

image.png

XML収集用ソースの追加と関連付け

  • OCIコンソール画面から、監視および管理 -> ログ・アナリティクス -> 管理からソースの数字部分をクリック
  • Database Audit XML Logsをクリック
  • 複製をクリック

image.png

  • 名前:任意

  • ソース・タイプ:File

  • エンティティ・タイプ:Oracle Database Instance

  • パーサー:デフォルトのまま

  • 拡張フィールドをクリック、追加をクリック
    image.png

  • 条件(オプション):新規条件

  • 条件フィールド:Message

  • 演算子:nullでない

  • ベース・フィールド:Message

  • サンプルのベース・フィールド・コンテンツ:Authenticated by: DATABASE;AUTHENTICATED IDENTITY: C##DBLCMUSER; Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=XXX.XXX.XXX.XXX)(PORT=63164))

  • 式の抽出:HOST={IPADDRESS:[\d.]+}

  • テスト定義をクリック

image.png

  • 新規フィールドの作成をクリック

image.png

  • データ型:文字列を選択し、作成をクリック

image.png

  • テスト定義をクリックし、成功となることを確認し、追加をクリック
  • 追加したフィールドの有効にチェックがついていることを確認して、ソースの作成をクリック
  • リソース欄の関連付けられていないエンティティをクリックし、関連付けるエンティティにチェックを入れて、アソシエーションの追加をクリック
  • ログ・エクスプローラの画面を開き、ログが収集されていることを確認する

image.png

さいごに

ログがあまりに大きすぎると、管理ゲートウェイで詰まったりするので、ログ量を事前に把握しておくことで、何らかの対策を打つことができると思います。

また、管理エージェントがログを取り込めない場合は、DBの認証周りであることが多いので、認証認可やポートの解放などを確認してみてください。この時、ログからエラーの原因を確認することができます。

ログ・アナリティクスのストレージ料金は10GBまで無償ですが、その後は若干割高なので、適宜オブジェクト・ストレージに転送することも可能です。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?