IBM Cloudのログ収集・管理サービス、Cloud Logsのご紹介

## はじめに
IBM Cloudのログ・監査イベント収集・管理サービスとして、新しくIBM Cloud Logsが使えるようになりました。

従来のログ収集・管理サービスであるIBM Cloud Log Analysisと、監査イベントの収集・管理サービスであるActivity Trackerは、2025年3月30日に廃止され、Cloud Logsに統合されます。

![スクリーンショット 2024-08-09 15.31.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1396951/f0ca6732-d86e-d9fc-2372-831e48df0c84.png)

この記事では、IBM Cloud Logsの概要や特長、課金体系についてまとめています。
また、従来のサービスをご利用中で、Cloud Logsへの移行を検討されている方向けに、[Log Analysis・Activity Trackerとの機能比較](#従来のサービスとの機能比較)についてもまとめています。

## Cloud Logsの概要
IBM Cloud内外のシステムや、アプリケーションのログデータ・監査イベントの収集、管理ができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1396951/ec9c954e-d67e-7780-e67a-43e630b0e8d6.png)

**特長**
* アプリやサービスのログ・監査イベントを一元的に保管・分析できる
→ [取り扱えるログの種類](#取り扱えるログの種類)を参照
* 重要度に応じてログを効率的に管理・利用できる
→ [ログの重要度に応じた運用](#ログの重要度に応じた運用)を参照
* ログの分析・構造化により検索・フィルター・分析が容易に
* カスタマイズ可能なダッシュボードテンプレート
* クエリ言語（Lucene、SQL、DataPrime）を利用したログの抽出が可能
* ICOS(Object Storage)を利用したログの保管
* Event Notificationsと連携し、重要なイベントやエラーのアラート通知が可能
* Priority insights のログ・データ保管期間は7, 14，30, 60, 90日から選択可能

**利用可能な地域 (2024年11月28日現在)**
IBM Cloud Logsはマルチゾーンリージョンを提供する地域で利用できます。
* 利用可能な地域
フランクフルト、ダラス、ワシントンDC、トロント、マドリード、東京、シドニー、ロンドン、ダラス、サンパウロ、大阪

## 取り扱えるログの種類
**1. プラットフォーム・ログ**
一部のIBM Cloudサービスではプラットフォームログが生成されます。
* [プラットフォームログ対応サービス一覧](https://cloud.ibm.com/docs/logs-router?topic=logs-router-cloud_services&interface=api)
* [Logs Routing](https://cloud.ibm.com/docs/logs-router?topic=logs-router-getting-started&interface=api)にて、どのロケーションのプラットフォームログをルーティングするか設定することでログを収集できます。

**2\. 監査イベント**
一部のIBM Cloudサービスでは監査イベントが生成されます。
* [監査イベント対応サービス一覧](https://cloud.ibm.com/docs/atracker?topic=atracker-cloud_services_atracker)
* [Activity Tracker イベント・ルーティング](https://cloud.ibm.com/docs/atracker?topic=atracker-getting-started)にて、ルーティングとターゲットの設定を行うことでイベントを収集できます。

**3\. インフラ(Kubernetes/Openshiftクラスター・Linux環境)やアプリのログ**
以下の環境のログを収集するには、エージェントの導入が必要です。
* Kubernetes/Openshiftクラスター
    * Logs Routing Agent をデプロイしてクラスター・レベルのログを収集
https://cloud.ibm.com/docs/logs-router?topic=logs-router-agent-std-cluster
    * Logs Routing経由と、Cloud Logsインスタンスに直接ログを送る方法の２パターン設定可能
* Linux環境
    * Logs Routing Agent をデプロイして、アプリケーション・ログを収集
        https://cloud.ibm.com/docs/logs-router?topic=logs-router-agent-linux

## ログの重要度に応じた運用
TCO Optimizerという機能を使い、ログの重要度に応じて、優先度をつけてポリシーを設定することができます。
例えば、重要度の高いログはホットストレージを利用して高速なログ検索を行えるようにしたり、重要度の低いログは検索に時間はかかっても低コストで保管できるようにしたりと、ログの持ち方やコストを調整できます。
以下の表のように、優先度に応じて3つのプラン(パイプライン)があります。
| 優先度の値 | TCOパイプライン| 
|:---------|:------------ |
| High     |Priority Insights (優先順位の洞察)  |
| Medium   |Analyze and Alert (分析とアラート)|
| Low      |Store and Search (保管および検索)  |
|Blocked   |     -        |

※ BlockedにマッチングしたログはTCOパイプラインに送信されません。

それぞれのパイプラインで利用できる機能は以下の通りです。

![スクリーンショット 2024-08-08 13.51.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1396951/aaf7b30c-17bb-3e78-c360-1eaf0cdc1da2.png)



ポリシーを定義することで、どのログにどのパイプラインを適用するかを決定します。
* アプリケーション名(表示例：kubernetes.namespace_name)、サブシステム名(表示例：kubernetes.container_name)、およびログ重大度(表示例：error, criticalなど)に基づいて、振り分けのポリシーを定義
* ポリシー定義には以下の条件を利用
All, Is, Is Not, Includes, Starts With

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1396951/32366556-f6eb-4bb4-27e8-ae3c21a2d4dc.png)

## 課金体系
TCO Optimizerで、各データを以下3つのパイプラインのどこに割り振るかを指定し、それぞれのデータ量に課金されます。
* Store and search（保管および検索）：$0.48/GB
ICOSに対するログ保管・検索が可能
例：監査に必要なログ
* Analyze and alert（分析とアラート）：$0.75/GB
上記機能に加え、アラート通知や処理が必要なログ保管
例：監視や統計分析に使用されるログ
* Priority insights（保管および検索）： $1.20~3.25/GB
ログを期間限定でSSDに保管（7〜90日間で指定）
保管期間に応じて、課金額が変更
上記2つの機能に加え、高速検索・クエリ実行が可能
例：重要度の高いログまたはビジネス・クリティカルなログ

※ICOSと連携してログを保管する場合、ICOSの料金が追加でかかります。
ご参考：[ICOSの価格](https://cloud.ibm.com/objectstorage/create#pricing)

## 従来のサービスとの機能比較
Log Analysisとの比較
|            | Log Analysis | Cloud Logs |
|:-----------|:------------ |:------------ |
| 通知        |ダッシュボードで設定可能 |Event Notificationとの連携が必要|
| ログ収集ソース|・プラットフォームログを生成する一部のIBM Cloudサービス <br> ・エージェントを導入したWindows, Linux, Kubernetes/Openshiftクラスター |・プラットフォームログを生成する一部のIBM Cloudサービス <br> ・エージェントを導入したLinux, Kubernetes/Openshiftクラスター  |
|ログ収集先インスタンス|プラットフォームログはログ収集元のサービスが存在するリージョンに立てたLog Analysisインスタンスにのみ送信可能。|Logs Routingで設定を行うことで、プラットフォームログを任意のCloud Logsインスタンスに送信可能。|
|データ保管期間 | 最大30日間（ICOSにアーカイブは可能）  | ICOSに永続保管 |
|ログ検索機能  |・最大30日分のログはダッシュボードで検索可能 <br>・ICOSにアーカイブしたログをData Engineでクエリ検索可能 |ダッシュボードでクエリ検索可能（Lucene、SQL、DataPrime）|

Activity Trackerとの比較
|            | Activity Tracker| Cloud Logs |
|:-----------|:------------ |:------------ |
| 通知        | ダッシュボードで設定可能| Event Notificationとの連携が必要|
|ログ収集ソース|監査イベントを生成するIBM Cloudサービス|監査イベントを生成するIBM Cloudサービス|
|データ保管期間|最大30日間（ICOSにアーカイブは可能）|ICOSに永続保管|
|イベント検索機能|・最大30日分のイベントはダッシュボードで検索可能 <br>・ICOSにアーカイブしたログをData Engineでクエリ検索可能|ダッシュボードでクエリ検索可能（Lucene、SQL、DataPrime）|


## Index - Cloud Logsに関する記事
* [IBM Cloud Logsを使ってみた](https://qiita.com/aratsu-i/items/376f2e4774429cb01177)
* [IBM Cloud: IBM Cloud Logs Routing 及びLinux Agent設定](https://qiita.com/esakima/items/cfe08a4dd7f158057905)

順次更新予定