OCIコンピュートのLinuxやWindowsのログやその上で動作するミドルウェア、アプリケーションのログを取集・分析するサービスとしてOCIでは2つのサービスを使う事ことができます。
- Loggingのカスタム・ログ
- Logging Analytics
下記のようにそれぞれ違いがありますが、機能的にはLogging Analyticsのほうが汎用的・高機能のログ管理サービスといえます。また、既にログ管理製品やサービスを使用している場合は、LoggingからService Connector Hubなどを経由しログ連携するなどのケースも良くあるのではないか思います。
今回は、基本的なLogging Analyticsの設定手順をLinux/WindowsのOSログを対象に収集する方法からご紹介します。
Logging Analyticsは、管理エージェントというプログラムが必要ですが、OCIのコンピュートインスタンス(Linux)の場合は、Cloud Agentからプラグインという方法でインストールすることが可能です。
Windowsの場合は、管理エージェントを手動でインストールする必要があります。
オンプレミスの場合など、管理エージェントを直接サーバーにインストールしてクラウドと通信させたくないという場合は、ゲートウェィという方式が利用できます。ゲートウェイはこちら
まず初めに、対象となるVMが管理エージェントのインストール要件を満たしているか確認します。
IAMポリシーの作成
サービスに必要となるIAMポリシーはこちらを参照
Linuxの場合の設定手順
-
OCIメニューから、監視及び管理 -> 管理エージェント -> エージェントで、有効にしたインスタンスの管理エージェントが表示されるまで10分ほど待つ
-
OCIメニューから、監視及び管理 -> ログ・アナリティクス -> 管理 -> エンティティにタイプ Host(Linux)で有効化したVMインスタンスが作成されていることを確認
-
関連付られていないエンティティから該当のLinuxエンティティを選択し、アソシエーションの追加。ログ・グループがない場合は、新規で作成する
-
同様の手順でLinux Secure Logsもアソシエーションの追加を行う
-
Cloud Agentは、oracle-cloud-agentユーザで動作しているので、対象ファイルのRead権限が必要。VMにログインし、ファイルアクセスするパーミッションをsetfaclで割り当てる
sudo setfacl -m u:oracle-cloud-agent:r /var/log/messages*
sudo setfacl -m u:oracle-cloud-agent:r /var/log/secure*
# oracle-cloud-agentユーザでファイルがアクセスできていればOK
sudo -u oracle-cloud-agent head -5 /var/log/messages
sudo -u oracle-cloud-agent head -5 /var/log/secure
ログに含まれるIPアドレスからジオロケーション、脅威インテリジェンスを取得する
-
Linux Secure LogのHost IP Addressには、以下のようにVMインスタンスにアクセスしたクライアントのIPアドレスが記録されている。このIPアドレスを引用してジオロケーションや脅威分析の情報を取得するようにLinux Secure Logsのソースを拡張する
-
ファンクションをジオロケーション、IPアドレスをHost IP Address(Client)とマッピング、脅威インテリジェンスをチェックし、追加、変更の保存を行う
-
ソースの変更後に取得されたログ・レコードにはClient Host CountryやCity、Threat IPsという新しいフィールドが追加される
※このジオロケーションや脅威インテリジェンスは、他のログのIPアドレスのフィールドでも同様に指定可能
Windowsの場合の設定手順
-
OCIメニューから、監視及び管理 -> 管理エージェント -> ダウンロードとキーからWindowsの管理エージェントをダウンロードする
-
エージェントファイルの下記のパラメータに任意の値を記述
AgentDisplayName = XXXXXXXXXXX
CredentialWalletPassword = XXXXXXXXXXX -
エージェントを展開し、ダウンロードしたキーファイルをWindowsにコピーする。管理者としてコマンド・プロンプトを起動しインストール
# installer.bat エージェントファイル(絶対パス)で実行
installer.bat c:\agent\oracle.mgmt_agent.230427.2233.Windows-x86_64\agentkey.txt
-
OCIメニューから、監視及び管理 -> 管理エージェント -> エージェントにインストールした管理エージェントが表示されていることを確認
-
OCIメニューから、監視及び管理 -> ログ・アナリティクス -> 管理 -> エンティティにタイプ Host(Windows)で有効化したVMインスタンスが作成されていることを確認
-
関連付られていないエンティティから該当のVMエンティティを選択しアソシエーションの追加。ログループがない場合は、新規で作成する
-
同様にWindows System Events, Windows Application Eventsも行う
OS以外のミドルウェア、アプリケーションの追加
OSログの設定をした後、動作するWEBサーバやデータベースのログを収集する場合の流れは、対象エンティティの追加 -> ログソースのアソシエーションの追加という手順になります。
例えば、Oracle Databaseの場合、こちらの手順にようにOracle Databaseのエンティティを追加し、そのエンティティに対してアラートログやUnified Auditのソースに割り当てます。
エンティティには、Apache, Node.js, Weblogic等のWebアプリに関連するものや、MySQLやPostgreSQL等のOracle Database以外のデータベース、kubernetesやEBSやSiebel等のアプリケーションのログなど対応しています。
対応していないものは、自身のパーサーとソースを作成できますので、こちらを参照下さい。