こんにちは、t.yoshidaです。
今回はOracle CloudのロギングでWindows Server上のログをカスタム・ログとして収集するまでの手順についてまとめました。
具体的にはWindows Server上のWindowsログをOracle Cloudロギング上に収集したいと思います。
※Linux OSのカスタム・ログ収集方法は弊社の過去記事で紹介しています。
是非過去のブログもご参照ください!(過去記事:OCI ロギングでカスタム・ログを収集する)
今回やりたいことのイメージ図
目次
今回検証で使用したサーバ
今回検証にあたり、以下サーバログを使って検証しています。
- Windows OS:Windows Server 2022
- シェイプ・タイプ:VM.Standard.E5.Flex
- OCPU:1
- メモリー:12GB
APIキーの発行
まずは、Windows Server上のエージェントがOracle Cloudに認証を行うためのAPIキーを発行します。
Oracle Cloudコンソールにログインします。
『アイデンティティとセキュリティ』>『アイデンティティ』>『ドメイン』>『Default』>『ユーザー』と遷移し、Windows Serverでログを転送する際に使用するユーザーをクリックします。
※ユーザーが削除されてしまうと認証が行えず、ログが取得できなくなってしまいます。
そのため、使用するユーザーは削除することがないユーザーを使用してください
(参考文献:OCI公式ドキュメント - 「ユーザーの追加」)
『ユーザー』画面に遷移したら、ユーザーが所属するグループを控えておいてください。
(画像のユーザーは『Administrators』に所属しています)
次に、ユーザー画面の左側にあるAPIキーをクリックします。
『APIキーの追加』ボタンをクリックします。
『APIキーの追加』画面にて、APIキーの生成について選択します。
今回は『APIキー・ペアの生成』を選択し,『追加』ボタンをクリックします。
注意:ここで公開キー、秘密キーを必ずダウンロードしておいてください!
ダウンロードし忘れた場合は、再度APIキー・ペアの生成を行う必要があります。
構成ファイルのプレビューが表示されます。
『構成ファイルのプレビュー』欄の構成ファイル情報は控えておいてください。
(こちらは後からでも確認可能です)
ポリシーの作成
次に、Oracle Cloud上でカスタム・ログを収集するためのポリシー設定を行います。
Oracle Cloudコンソールの左上にあるハンバーガーメニューをクリックします。
『アイデンティティとセキュリティ』>『アイデンティティ』>『ポリシー』画面にて、
『ポリシーの作成』ボタンをクリックします。
※ポリシーはルートコンパートメントに作成します
(参考文献:OCI公式ドキュメント - 「ログおよびログ・グループ」)
『ポリシーの作成』画面で名前を入力し、『手動エディタの表示』のトグルをオンにします。
入力項目で以下を入力します。
※画像はユーザがAdministratorsに所属していて、ロギングが所属しているコンパートメントが
「000_Cloudii > 000_SandBox > 034_t.yoshida > Verfication」の場合です。
(設定するポリシー)
Allow group <使用するユーザの所属するグループ> to use log-content in compartment <適用するコンパートメントのパス>
(今回設定した実際のポリシー)
Allow group Default/Administrators to use log-content in compartment 000_Cloudii:000_SandBox:034_t.yoshida:Verfication
カスタム・ログを作成する(OCI側作業)
Windowsログを収集する受け口となるカスタム・ログを作成します。
Oracle Cloudコンソールの左上にあるハンバーガーメニューをクリックします。
『監視および管理』>『ロギング』>『ログ・グループ』画面にて、『ログ・グループの作成』をクリックします。
名前を入力し、作成ボタンをクリックします。
次にログを作成します。
『ログ』画面にて『カスタム・ログの作成』ボタンをクリックします。
名前とログ・グループを選択し、『作成』ボタンをクリックします。
作成後、そのまま『エージェント構成の作成』画面に映ります。
必要な情報を入力します。
ホスト・グループ欄は以下の通り入力します。
グループ・タイプ:ユーザー・グループ
ドメインの選択:今回使用するユーザーが所属するドメイン
グループ:今回使用するユーザーのグループ
※今回検証で使用したユーザーはAdministratorsに所属していたため、画面ではAdministratorsを選択しました
尚、今回はAdministratorsユーザーグループに登録されているユーザーを使用しましたが、動的グループの指定も可能です。
動的グループ、ユーザーグループは以下の特徴があるため、ユースケースによって使い分けてください。
- 動的グループ
認証情報の登録作業が不要となり、設定を簡略化する場合にお勧めです。 - ユーザー・グループ(IAMグループ)
拡張性が高いのが特徴で、コンピュート・インスタンスだけでなく、Base DBも登録可能です。
ただしユーザーグループが同じインスタンスは同じログに出力されてしまうため、設計時には注意する必要があります。
エージェント構成欄では以下の通り入力します。
入力タイプ:Windowsイベント・ログ
名前の入力:カスタムメトリックで表示したい名前
イベント・チャネル:アプリケーション
※収集したいイベントログがアプリケーションとサービスログ配下の場合は、該当のログ名を手入力してください。
例えば、Windows Server Backupのイベントログを収集したい場合は『Microsoft-Windows-Backup』と入力します。
(ここら辺はAWSとも同じですね)
尚、該当ログのログ名はイベントビューワーで該当ログをXML表示することで確認できます。
Provider Nameに書かれている内容がイベントログ名です。
入力が完了したら、『作成』ボタンをクリックし、エージェント構成を作成します。
Windows Serverのエージェント導入
カスタム・ログの設定ができたので、次はインスタンスの設定を行います。
「コンピュート」>「インスタンス」画面にて、ログ収集対象のインスタンスをクリックします。
Oracle Cloudエージェントタブにて、「カスタム・ログのモニタリング」行の「プラグインの有効化」を有効にします。
(有効になっている場合は本対応は不要です)
Windows Serverのエージェント設定
Oracle Coud側の設定が完了したので、Windows Server内の設定を行います。
今回ログ収集を行うWindows Serverにリモードデスクトップ接続します。
接続できたらエクスプローラを開き、「C:\oracle_unified_agent」に移動します。
「.oci」フォルダを作成します。
「.oci」配下に「api_secretkey」と「config」を作成します。(拡張子なしで作成)
「api_secretkey」をメモ帳で開きます。
ファイル内に作成した秘密鍵の内容をペーストします。
「config」をメモ帳で開きます。
構成ファイルのプレビューで控えた内容をペーストします。
key_fileは今回配置した「C:\oracle_unified_agent\.oci\api_secretkey」を指定してください。
これでカスタム・ログを送信する設定が完了です。
カスタム・ログの送信確認
設定が完了したので、カスタム・ログが送信されているかの確認をしましょう。
『監視および管理』>『ロギング』>『ログ』画面にて、今回作成したログを選択します。
※見つからない場合はログ・グループが作成時に指定したログ・グループになっているか確認してみてください
ログの詳細画面にて、アプリケーションログが発生した時間を確認します。
WindowsサーバーのアプリケーションログがOracle Cloud側のログに出力されていました!
まとめ
今回は以下の内容を紹介しました。
・Windowsサーバのイベントログをロギングに出力する
Linuxと手順は大体同じですが、対象がWindowsになることでパスの指定や格納先が変わってややこしいですね。
今回のブログは以上です。
この記事を通じ、皆様の問題解決の一助となれば幸いです。
最後まで読んで頂き、ありがとうございました!