初めまして、t.yoshidaです。初めての投稿です。よろしくお願いします。
※当記事はOracle Cloud Infrastructure Advent Calendar 2024のシリーズ3 Day18記事です。
今回はOCIモニタリングでカスタム・ログを監視してアラーム発報するまでの手順についてまとめました。
具体的には、Windows上でApplicationログが出力されたら自分宛にメール発報してみます。
やりたいことのイメージ図
事前に行った設定
今回ログ監視を行うにあたり、以下設定を事前に行っています。
- インスタンスへの監視エージェント導入および設定
- Oracle Cloud上でのロギング設定(カスタム・ログ)
- 空のポリシー「monitoringPolicy」作成(この後出てくるポリシー移し替え先として使用します)
※Linux OSのカスタム・ログ収集方法は過去の記事で紹介しています。
是非過去のブログもご参照ください!(過去記事:OCI ロギングでカスタム・ログを収集する)
今回検証で使用したサーバ
今回検証にあたり、以下サーバログを使って検証しています。
- Windows OS:Windows Server 2022
- シェイプ・タイプ:VM.Standard.E5.Flex
- OCPU:1
- メモリー:12GB
サービスコネクタの設定
ログに収集されたログをモニタリングで監視するため、まずはサービス・コネクタの設定を行います。
コネクタ画面(『監視および管理』>『ロギング』>『コネクタ』)より、
『サービス・コネクタの作成』をクリックします。
『コネクタの編集』画面で、サービス・コネクタ作成のために必要な情報を入力していきます。
『コネクタの構成』:『ロギング』、ターゲットで『モニタリング』をそれぞれ選択します。
『ソース接続の構成』:監視したいロググループおよびログを指定します。
『ログ・フィルタ・タスク』:監視したいカスタムログの内、ターゲットに送信したいログ指定します。
(画像では例として、対象のログからApplicationログのみターゲットに送信する設定を行なっています)
ログ・フィルタ・タスクで設定可能なプロパティは、実際にログを確認することでわかります。
(Windowsログの種類は赤枠内のdata.Channelに書かれています)
『ターゲットの構成』:フィルタしたログをモニタリング上でどこに出力するかを選択します。
既存のメトリック・ネームスペースに出力したくない場合は、任意のメトリック・ネームスペース名を入力してください。
画像では新規作成したいので、「verf_win_log」というメトリック・ネームスペースを入力し出力する設定を行なっています。
ログの有効化の上部に、「このコネクタによるコンパートメント<コンパートメント名>のモニタリングへの書込みを許可するデフォルト・ポリシーを作成します。」というメッセージが表示されます。
『作成』をクリックし、サービス・コネクタがモニタリングに書き込みを行うためのポリシーを作成しましょう。
作成ボタンをクリックすると、下記のようなポリシーが作成されます。
allow any-user to use metrics in compartment id <メトリックの配置されているコンパートメントOCID> where all {request.principal.type='serviceconnector', target.metrics.namespace='<メトリック・ネームスペース名>', request.principal.compartment.id='<メトリックの配置されているコンパートメントOCID>'}
『ポリシーが作成されました』の文言を確認したら、『作成』ボタンをクリックしてサービス・コネクタを作成します。
作成したポリシーの移し替え
先程作成したポリシー内容は必要な設定ですが、今回の設定だけの個別ポリシーとして作成されています。
(例えば複数のサービス・コネクタを作成した際は、その分ポリシーが作成されるため煩雑化します)
そのため、管理しやすくなるようにユーザーが管理しやすいポリシーに移しましょう。
※特にこのままで差し支えない方はポリシーの移し替えは不要です
ポリシー画面(『アイデンティティとセキュリティ』>『アイデンティティ』>『ポリシー』)を開きます。
サービス・コネクタを作成したコンパートメントに先ほど作成したポリシーが配置されています。
ポリシー内容を別のポリシーに移し替えます。
ポリシーをコピーした後、事前作業で作成した「monitoringPolicy」ポリシーを編集します。
編集画面でコピーしたポリシーを貼り付けます。
ポリシーの移し替えが完了次第、Oracle Cloudにより作成されたポリシーは削除してしまいましょう。
モニタリングの出力確認
モニタリングで監視が行えているか、確認をしてみましょう。
メトリック・エクスプローラ画面(『監視および管理』>『モニタリング』>『メトリック・エクスプローラ』)にて、
下部にある『Query』を表示させます。
『Metric namespace』欄に、サービス・コネクタで指定したメトリック・ネームスペースを選択してください。
メトリック名を選択し、『Update Chart』ボタンをクリックします。
『Metric Explorer』に、サービス・コネクタでフィルタした内容がモニタリングに出力されました!
モニタリングを使ったメール発報
これでモニタリングでインスタンス上のログ監視ができました。
ただ、このままでは件数が表示されるだけなので、トピックとアラーム定義を設定し、モニタリングでログが検知されたらメールが発報されるようにしたいと思います。
通知画面(『開発者サービス』>『アプリケーション統合』>『通知』)にて、『トピックの作成』ボタンをクリックします。
名前を入力し、『作成』ボタンをクリックします。
作成されたトピックをクリックし、トピックの詳細画面で『サブスクリプションの作成』ボタンをクリックしましょう。
メール発報したい電子メールを入力し、サブスクリプションを作成します。
サブスクリプションを作成すると、サブスクリプションの欄にメールアドレスが追加されます。
(ステータスは現時点で保留中のままで大丈夫です)
追加したメールアドレスにサブスクリプション認証メールが届いていますので、『Confirm subscription』をクリックして認証を行います。
クリックするとブラウザが開かれ、認証完了した旨のページが開きます。
サブスクリプションを再度確認すると、認証中からアクティブにステータスが変更されています。
次に、トピックに対して発報を行うアラーム定義の設定を行います。
アラーム定義画面(『監視および管理』>『モニタリング』>『アラーム定義』)より、『Create Alarm』ボタンをクリックします。
アラームを設定します。
『Metric description』:発報条件のメトリックを指定します。
画像は対象メトリックに対し、5分平均で発報の判定を行うことを示しています。
『Metric dimensions』:対象のリソースを指定します。
指定方法を『Dimension name』で選択できます。
※「⚪︎⚪︎Name」と書かれているDimension nameを選択した場合、一度リソースを削除しても、
同じリソース名を再作成することでアラーム定義を再定義する必要がなくなります。
『Trigger rule 1』:『Metric description』で検知する閾値を指定します。
「greater than or equal to」を選択することで、「⚪︎⚪︎以上」が設定できます。
『Destination』:発報する対象のトピックとメールの件名を設定します。
『Message grouping』:ストリーム単位でメールを送信するかどうかを選択します。
『Message Format』:メールの形式を選択します。
『Repeat notification?』:チェックを外しておきます。
これにより、検知後、検知が解除されるまではメールが発報されません。
『Suppress notifications』:チェックを外しておきます。
チェックを入れると、メール発報抑止を行う期間を設定できます。
『Enable this alarm?』:チェックを入れておきます。
ここまで設定が完了したら、『Save Alarm』ボタンをクリックします。
インスタンス上で該当ログに書き込みを行うと、トピックに設定したメールが飛んできました。
アラーム定義の設定確認もできました!
まとめ
今回は以下の内容を紹介しました。
・サービス・コネクタを用いることで、ロギングから指定したログをモニタリングで監視することができる。
・アラーム定義、トピックを設定することで、モニタリングに収集されたログを検知してメール発報が行える。
監視設定は色々なサービスが出てきてややこしいのですが、
私は、各サービスの立ち位置を理解してイメージがしやすいかな?と思っています。
ロギング :ログが出力されている サービス・コネクタ:ソース(今回はロギング)からターゲット(今回はモニタリング)へ検知したい内容を送る モニタリング :検知した件数を表示する トピック :メーリングリスト アラーム定義 :モニタリングで検知した内容を基にアクションを行う(今回はメール発報)
サービス・コネクタは各サービスを繋ぐ使い方ができるので、癖がありますが頼りになるサービスですね。
今回のブログは以上です。
この記事を通じ、皆様の問題解決の一助となれば幸いです。
最後まで読んで頂き、ありがとうございました!