Facebook Twitter
お問い合わせ
TOPICS
更新情報
ホーム > ブログ > Oracle Cloud > OCI ロギングでカスタム・ログを収集する

OCI ロギングでカスタム・ログを収集する

ブログ
Oracle Cloud
2024.02.14

皆さま、こんにちは!y.takanashiです。

  

今回はOCI ロギングで、収集したログをカスタム・ログとしてOCIコンソール画面に表示する方法についてご紹介します。


実行環境

  • OS:Oracle Linux 9
    ※他のLinux OS でも同様の流れで設定可能です。
     Windows OS で設定を行う場合は、以下のドキュメントをご覧ください。
     OCI公式ドキュメント - 「ログの作成」
  • シェイプ・タイプ:VM.Standard.E5.Flex
  • 文字コード:UTF-8

作業手順

  • カスタム・ログの作成
    • IAMユーザー、IAMグループ、ポリシーの作成
    • RPMファイルの取得
    • エージェントの導入
    • 認証情報の配置
    • カスタム・ログの作成
  • カスタム・ログの設定変更
    • 設定変更
    • 動作確認

カスタム・ログの作成

IAMユーザー、IAMグループ、ポリシーの作成

最初にIAMユーザー、IAMグループ、ポリシーの作成を行います。

IAMユーザーは、サーバに認証情報を渡す際に必要となる、APIキーを登録するために作成します。

以下のドキュメントを参考にユーザー作成を行い、ここではユーザー名を「logging-user」とします。

OCI公式ドキュメント - 「ユーザーの追加」

作成後、サーバに認証情報を登録するためのAPIキーを生成する必要があります。

ユーザー詳細画面の「APIキー」から「APIキーの追加」を選択します。

ここでは「APIキー・ペアの生成」を選択、秘密キーと公開キーのダウンロードを行い、「追加」を選択します。

※「認証情報の配置」でAPIキー・ペアを使用しますので内容を控えます。

追加後、以下の構成ファイルが生成されますので、「コピー」を選択して内容を控えます。

※構成ファイルも「認証情報の配置」で使用します。

次にIAMグループの作成を行います。

IAMグループはログのエージェントを作成する際に、「ホスト・グループ」という項目があり、今回はユーザー・グループを指定するため、参照元のIAMグループの作成を行う必要があります。

ここではグループ名を「logging-group」とし、以下のドキュメントを参考に作成を行った後、IAMユーザーの登録も行います。

OCI公式ドキュメント - 「グループの作成」

ログのエージェントを作成する際に必要となるホスト・グループについて、ユーザー・グループ以外にも動的グループを選択することができます。

動的グループを選択する場合は、動的グループに以下のルールを付与することで、ホスト・グループとして使用可能となります。

instance.compartment.id = ‘<サーバが配置されているコンパートメントのOCID>’

ホスト・グループで指定可能である動的グループとユーザー・グループのユースケースについて、以下のフェーズで使用することができます。

  • 動的グループ
    認証情報の登録作業が不要となり、設定を簡略化する場合にお勧めです。
  • ユーザー・グループ(IAMグループ)
    拡張性が高いのが特徴で、コンピュート・インスタンスだけでなく、Base DBも登録可能です。

IAMユーザーとIAMグループの作成後、カスタム・ログ用のポリシーも作成する必要があります。

ここでは以下のドキュメントを参考にしてポリシーを作成します。

OCI公式ドキュメント - 「ログおよびログ・グループ」

Allow group logging-group to use log-content in tenancy
※このポリシーはテナンシレベルでアクセス制御を行なっており、
 コンパートメント毎に制御を行う場合は「tenancy」をコンパートメント名に置き換えてください。

IAMユーザーとIAMグループ、ポリシーの作成は以上です。


RPMファイルの取得

上記のリソースを作成後、エージェント用のRPMファイルの取得を行います。

RPMファイルの取得を行う前に、RPMファイルが必要か否かの事前確認を実行します。

対象のコンピュート・インスタンス、もしくはBase DBのOSにログイン後、以下のコマンドを実行して確認します。

sudo systemctl status unified-monitoring-agent.service

ステータスが「active(running)」状態の場合、エージェントが導入済でRPMファイルのインストールは不要となります。

※エージェントを既に導入している場合は「認証情報の配置」から操作を行なってください。

以下のメッセージが表示された場合は、エージェントがインストールされておらず、RPMファイルの取得が必要です。

RPMファイルの取得はociコマンドを使用するため、クラウド・シェルもしくはOCI CLIを使用して取得を行います。

クラウド・シェルを使用する場合は、OCI CLIのセットアップ作業が不要となるため、今回はクラウド・シェル上でRPMファイルの取得を行います。

クラウド・シェルに接続後、以下のコマンドで取得可能なRPMファイル一覧を表示します。

oci os object list --namespace axmjwnk4dzjv --bucket-name unified-monitoring-agent-ol-bucket --all | grep name
※ネームスペース名とバケット名の変更は不要です。

取得するRPMファイルについては、対象リソースのOSやシェイプ・タイプによって選定する必要があります。

今回はunified-monitoring-agent-ol-8-0.1.25.rpmを使用します。

以下のコマンドでRPMファイルの取得を行います。

oci os object get --namespace axmjwnk4dzjv --bucket-name unified-monitoring-agent-ol-bucket --name unified-monitoring-agent-ol-8-0.1.25.rpm --file unified-monitoring-agent-ol-8-0.1.25.rpm --profile DEFAULT
※"--profile"はクラウド・シェル内の「/etc/config」の定義した内容に応じて変更する必要があります。

RPMファイルの取得後、右上の歯車アイコンから「ダウンロード」を選択してRPMファイルのダウンロードを行います。

ダウンロード完了後は右上のポップアップが表示されます。

その後、RPMファイルを対象のリソースに転送し、この作業は完了となります。


エージェントの導入


RPMファイルを対象のリソースに転送した後、再びOSにログインし、以下のコマンドを使用してRPMファイルをインストールし、エージェントの導入を行います。

sudo dnf install -y unified-monitoring-agent-ol-8-0.1.25.rpm

インストール完了後、以下のコマンドでunified-monitoring-agent.serviceのステータスを確認し、ステータスが「active(running)」状態になれば作業は完了です。

sudo systemctl status unified-monitoring-agent.service

認証情報の配置

次に「IAMユーザーの作成」時に取得した構成ファイルとAPIキー・ペアの配置を行います。

以下のドキュメントを参考に、ここでは /etc/unified-monitoring-agent 配下に.ociディレクトリを作成し、各ファイルを以下の形で配置します。

OCI公式ドキュメント - 「エージェントのインストール」

APIキー・ペアの生成」で作成した秘密キーは「oci_api_key.pem」として、公開キーは「oci_api_key_public.pem」として格納しております。

config」は構成ファイルの内容を元に、「key_file」の箇所を秘密キーがあるパスに書き換えております。


カスタム・ログの作成

エージェントの導入と認証情報の配置後、OCIコンソール画面でカスタム・ログの作成を行います。

OCIコンソール画面左上のナビゲーション・メニューから「監視および管理」→「ログ」を選択します。

カスタム・ログの作成」から以下の項目を入力を行い、ログを作成します。

  • カスタム・ログ名:任意(ここでは「logging-test」)
  • ログ・グループ:任意(ここでは「logging-group2」
    ※ログ・グループが未作成の場合、「新規グループの作成」から作成を行う必要があります。

カスタム・ログの作成後、エージェントの作成も行います。

以下の項目を入力後、「作成」を選択します。

  • 構成名、説明:任意(ここでは「logging-agent」)
  • ホスト・グループ
    • グループ・タイプ:ユーザー・グループ
    • グループ:任意(ここでは「logging-group」)
  • エージェント構成
    • 入力タイプ:ログ・パス
    • 名前の入力:任意(ここでは「logging-all」)
    • ファイル・パス:任意(ここでは /var/log/* )

作成後、カスタム・ログを選択することで詳細画面が表示されます。

カスタム・ログの作成後に対象ログ(ここでは/var/log 配下の全ファイル )の収集が開始され、5分から10分程度経過した後に収集したログを確認できます。

カスタム・ログの作成については以上です。


カスタム・ログの設定変更

設定変更

ここでは収集するログのファイル・パスを「/var/log 配下の全ファイル」から「/var/log/messages」に変更し、手動で設定内容を更新する手順についてご紹介します。

エージェントの「編集」から以下の項目を変更、「変更の保存」を選択します。

  • ログ名:「logging-messages」
  • ファイル・パス:「/var/log/messages」

エージェントのステータスが「更新中」→「アクティブ」に遷移後、設定が変更されます。


動作確認

通常はカスタム・ログ上で設定変更後、OS側のエージェントが変更を検知をして設定内容を自動更新します。

しかし、OS側のエージェントはマネージドで動いており、自動更新に30分以上かかる場合があるため、今回は手動で設定内容を更新します。

以下がOS側のエージェントの主なコンポーネント一覧です。

  • /opt/unified-monitoring-agent/etc/systemd/unified-monitoring-agent.service:メインのエージェント・サービス
  • /opt/unified-monitoring-agent/etc/systemd/unified-monitoring-agent_config_downloader.service:構成自動アップデータ・サービス
  • unified-monitoring-agent_config_downloader.timer:指定された(ランダム化された)間隔で自動ダウンローダ・サービスをトリガー
  • unified-monitoring-agent_restarter.path:変更が検出された場合、エージェントによる構成のリロードをトリガー

今回はunified-monitoring-agent.serviceunified-monitoring-agent_config_downloader.serviceの手動更新を行います。

対象リソースのOSから以下のコマンドで、unified-monitoring-agent_config_downloader.serviceの起動を行います。

sudo systemctl start unified-monitoring-agent_config_downloader.service
※起動完了までに最大30秒以上かかる場合があります。

その後に以下のコマンドで、unified-monitoring-agent_config_downloader.serviceのログを確認します。

journalctl -u unified-monitoring-agent_config_downloader.service

unified-monitoring-agent_config_downloader.serviceに、以下のログが出力されている事を確認します。

  • <source>内のpath:収集対象のファイル・パス
    ※設定変更後のファイル・パスになっている事を確認
  • fluentd outputが"true":Fluentd(※後述)への出力が完了
    ※"false"と表示される場合は、エージェント構成の設定が間違っている可能性が高く、再度構成の見直しを推奨します。

次に以下のコマンドで、Fluentdの設定内容を確認します。

cat /etc/unified-monitoring-agent/conf.d/fluentd_config/fluentd.conf
※Fluentdはログデータの収集、転送、処理を行うオープンソースのデータエージェントです。

unified-monitoring-agent_config_downloader.serviceと同様に、<source>内の「path」が変更後のファイル・パスとして表示されることを確認します。

ファイル・パスの変更を確認後、以下のコマンドでunified-monitoring-agent.serviceの再起動を行った後、 以下のパスにあるunified-monitoring-agent のログを確認します。

sudo systemctl restart unified-monitoring-agent.service
/var/log/unified-monitoring-agent/unified-monitoring-agent.log

unified-monitoring-agent.logに、以下のログが出力されている事を確認します。

  • file DEFAULT_CONFIG_FILE, <認証ファイルを格納しているパス>:認証情報が配置されているパスを表示
    ※ここでは「/etc/unified-monitoring-agent/.oci/config」を使用
  • <source>内のpath:収集対象のファイル・パス
    ※設定変更後のファイル・パスになっている事を確認
  • following tail of /var/log/messages:ファイル・パスで設定したログの収集を開始

上記のログを確認後、以下のコマンドで /var/log/messages にログを出力します。

logger "This is a test message."

再度、unified-monitoring-agent のログを表示、以下のログが出力されている事を確認します。

  • put_logs request with log_object_id <収集したログのOCID>:収集したログをカスタム・ログに転送
  • response 200 id:転送が成功

5分程度経過した後、カスタム・ログにloggerコマンドで出力したログが表示され、設定変更が完了します。

カスタム・ログの設定変更については以上となります。


まとめ

今回はOCI ロギングで、収集したログをカスタム・ログとしてOCIコンソール画面に表示する方法についてご紹介しました。

手順はやや煩雑ですが、上記の設定を実施することでOCIコンソール画面から収集したログを視覚的に表示できます。

上記の手順でOCIコンソール上でログを表示することができますが、検索できるログの範囲が収集から2週間以内に制約されており、また特定の文字列での検索が難しいといった制約が存在します。

ログの詳細な調査や分析が必要な場合は、OCIのログ・アナリティクスを活用することをお勧めします。

以前に当方でログ・アナリティクスに関する記事を執筆しており、参考として以下の記事をご覧いただければ幸いです。

Cloudiiブログ - 「【Oracle Cloud】ログ・アナリティクスに各種ログを転送する」

Cloudiiブログ - 「【Oracle Cloud】ログ・アナリティクスでログを詳しく分析する」

※ログ・アナリティクスは月間10GBまで無料で提供されていますが、10GBを超えると追加課金が発生します(2024年2月現在)。

 そのため、定期的にログをパージ(削除)することをお勧めします。

出典:https://www.oracle.com/jp/cloud/price-list/

以上となります。

この記事を通じて読者の皆様の問題解決の一助となれば幸いです。

最後まで読んで頂き、ありがとうございましたm(_ _)m


この記事が気に入ったら
「いいね!」

この記事を書いた人


関連コンテンツ

CONTACT お問い合わせ

Cloudiiのサービスやプロダクトについて
興味をお持ちの方は、
お気軽にお問い合わせください。