さくらのクラウドの「モニタリングスイート」で多様なシステムを統合監視しよう!

現代のシステムはクラウド化やマイクロサービス化により構成が複雑になっており、単に「動いているか」を監視するだけでは問題の本質に辿り着けません。「どこで」「何が起きたのか」を明らかにするには、システムの「オブザーバビリティ(Observability:可観測性)」を高める3つの主要なデータ(ログ・メトリクス・トレース)を通じて内部状態を把握することが不可欠です。これらのデータを活用することで、障害復旧の短縮、安定運用、継続的な改善が容易になります。

さくらのクラウドが提供する「モニタリングスイート」は、多様なシステム環境の監視を一元化できるオブザーバビリティのプラットフォームです。さくらのクラウドだけでなく、データセンターのサーバーやオンプレミスのサーバー、他社クラウドサービスといった多様なシステム環境を集中監視できます。

この場合のスイート(suite)は英語で「ひとそろい」や「一式」の意味で、甘い物(sweet)とは別物です。モニタリングスイートは、その名のとおり、システム監視で必要となる機能をひとつにまとめたマネージドサービスです。

この記事では、モニタリングスイートの特長と、基本的な利用方法を解説します。

多様なシステムと連携できるモニタリングスイート

モニタリングスイートには次のような特長があります。

  • ログ・メトリクス・トレースを収集して、専用ダッシュボードで可視化
  • さくらのクラウドだけでなく、多様なシステム環境を集中監視
  • アラート機能によりシンプル通知EventBusと連携

次図に、モニタリングスイートの主な機能を示します。

機能の中心になるのは、ログ・メトリクス・トレースという基本的なテレメトリデータの収集機能です。ログ・メトリクス・トレースごとにストレージを用意しており、用途に応じて使い分けできるよう、アクセス制御やデータ保持ポリシーをそれぞれに設定できます。

モニタリングスイートが対応するデータソースは大きく2つに分かれています。

1つは、モニタリングスイート連携に対応した「さくらのクラウド」のマネージドサービスです。AppRunやデータベースアプライアンス・エンハンスドロードバランサなどが対応しており、各サービスのログとメトリクスを簡単にモニタリングスイートに連携できます。

もう1つは「さくらのクラウド」の仮想サーバーやさくらのVPS、他事業者のクラウドサービス、自社のオンプレミス環境などのシステムです。送信用エージェントプログラムを導入することで、モニタリングスイートにデータ送信が可能になります。

Prometheus、fluentbit、opentelemetry-collectorといったオープンソースの監視・アラートツールにも対応しています。

収集したデータはモニタリングスイートのダッシュボードで可視化できるのはもちろんのこと、アラートルールによるアラートをトリガーにして、「シンプル通知」でSlackやメールに送信したり、「EventBus」を介して特定のジョブを実行したりと、さくらのクラウドの他サービスと連携できます。

モニタリングスイートの操作画面

モニタリングスイートの基本的な操作について解説しましょう。モニタリングスイートは、次の2つの画面で設定・操作します。

まず、さくらのクラウドで標準となるコントロールパネルです。ストレージ・ダッシュボード・アラートなど、モニタリングスイートの基本リソースをコントロールパネルで追加・編集します。

もう1つは、モニタリングスイートの専用UIです。ここでは、収集したテレメトリデータを閲覧・操作できます。専用UIは、コントロールパネルから次のように呼び出します。

  1. コントロールパネルで、リソースの詳細画面を開く
  2. 「内容を閲覧」をクリックする

どんな機能がモニタリングスイートにあるか

モニタリングスイートにはさまざまな機能があります。それぞれ機能ごとに紹介していきましょう。

ログストレージ ─ システムで発生した出来事を収集する

システムで発生した出来事をログとして収集し、専用UIで検索・可視化します。テキスト検索やフィールド値で絞り込みが可能です。

OTLP/HTTPプロトコルに対応しており、fluentbit、opentelemetry-collectorなどのツールと連携できます。

保存期間はデフォルトで40日で、ログストレージごとに最長2年まで延長可能です。これにより、監査ログなど法令上一定の保持期間が必要といったユースケースに対応します。

メトリクスストレージ ─ 定量的な時系列データを記録する

サーバーやネットワークの稼働状態などの定量的な時系列データを記録します。クエリ言語としてPromQL(Prometheus Query Language)に対応しており、専用UIおよびダッシュボードで可視化できます。

プロトコルとしてPrometheus Remote Write 1.0に対応しており、ツールとしてはPrometheus、opentelemetry-collectorなどと連携できます。保存期間はデフォルトで40日です。

トレースストレージ ─ 処理の流れを時系列で把握できる

処理の流れを時系列で把握するため、分散トレーシングのデータを収集し、専用UIで可視化できます。

トレースしたデータは、スパンという処理単位で継続時間や属性を絞り込めます。また、スパンツリーでトレースを可視化できます。これにより、マイクロサービス構成のアプリケーションでボトルネック・パフォーマンス分析を可能にします。

OTLP/HTTPプロトコルに対応しており、opentelemetry-collectorと連携できます。保存期間はデフォルトで40日で、トレースストレージごとに最長2年まで延長可能です。

ダッシュボード ─ Persesベースで自由にカスタマイズ可能

PersesというOSSを採用したデータ表示機能で、メトリクスを可視化します。PromQLによりメトリクスをクエリして、豊富な可視化表現により自由にカスタマイズ可能なダッシュボードを提供します。

ダッシュボードプロジェクト単位で、複数のダッシュボードを作成できます。

アラート ─ 他サービスと連携する

アラートは、メトリクスの変化をトリガーにして、さくらのクラウドの他サービスと連携するための機能です。「アラートルール」として条件を設定し、それをもとに「シンプル通知」でWebhock・メールを送信したり、「EventBus」で特定のジョブを実行したりできます。

アラートプロジェクトという単位で、複数のアラート設定を管理できます。

「ログ計測ルール」を利用することで、ログストレージに保存されているログをもとにメトリクスを生成することも可能です。フィルタ設定に一致するログの行数をカウントし、指定されたメトリクスストレージへ保存します。

ログルーティングとメトリクスルーティング

「ログルーティング」と「メトリクスルーティング」では、さくらのクラウドの各種サービスからのログやメトリクスを、どのストレージに転送するかを指定できます。コントロールパネルで設定が可能です。

データエクスポート

「データエクスポート」は、ログ・メトリクス・トレースの各ストレージに保管されているデータをファイル出力する機能です。

専用UIから、NDJSON(JSON Lines)形式でファイルを出力します。

モニタリングスイートを利用してみよう

実際にモニタリングスイートをどのように使うのか、その手順を簡単に紹介しましょう。

モニタリングスイートを利用する際には、ログ・メトリクス・トレースごとにストレージを追加します。ログストレージ・メトリクスストレージには、ユーザ領域とシステム領域を作成できます。

ユーザ領域には、利用者が設定したログ・メトリクスを蓄積します。ルーティング機能を使うことで、さくらのクラウドの各種サービスが提供するログ・メトリクスもユーザ領域に保存されます。

システム領域には、さくらのクラウドの各種サービスが無償で提供するログ・メトリクスを蓄積します。今後、各種サービスを使う上で最低限必要となるログ・メトリクスがシステム領域に保存されるようになる予定です。システム領域はストレージの削除・アクセスキーの発行・保存期間の変更等の操作はできません。

利用する際には、最初に「システム領域」を作成します。それ以降は「ユーザ領域」を作成します。トレースストレージは「ユーザ領域」のみを作成します。なお、ストレージのユーザ領域には利用料が発生しますのでご注意ください。

他サービスと連携する

AppRunやデータベースアプライアンス・エンハンスドロードバランサなど、さくらのクラウドの各マネージドサービスのメトリクスを自動収集する手順は次のようになっています。この方法では、コントロールパネルの設定だけで、モニタリングスイートを利用できます。

  1. コントロールパネルでモニタリングスイートの設定画面を呼び出す
  2. メトリクスストレージを一括追加する(初回設定時)
  3. メトリクスルーティングを追加する
    • 連携サービス:(例:AppRun共用型)
    • 種別:(例:アプリケーションメトリクス)
    • 対象リソース範囲:(例:指定リソース)
    • 対象リソースID
    • 保存先:(メトリクスストレージのユーザ領域)
  1. 必要があればマネージドサービス側でモニタリングスイート連携を有効にする

これで、メトリクスルーティングで指定したメトリクスストレージのユーザ領域に、連携したサービスのメトリクスが格納されます。

ストレージが1つも作成されていない場合は、一括作成ボタンが表示されます。クリックすると、「ログストレージ」と「メトリクスストレージ」にそれぞれ「システム」「デフォルト」の2つのストレージが自動作成されます(トレースストレージは対象外です)。初回設定時に活用してください。

ログを収集する場合は、ログストレージの追加とログルーティングの追加を同様に行います。

エージェント経由で送信する

「さくらのクラウド」の仮想サーバーやさくらのVPS、他社のクラウドサービス、自社のオンプレミス環境などでログ・メトリクスを収集するには、各環境に送信用エージェントプログラムを導入します。

送信用エージェントとして、sacloud-otel-collectorをオープンソースで提供しています。また、rpm/debパッケージには、systemdファイル、サーバの基本的なメトリクス収集とモニタリングスイートへの送信設定を含んだconfigファイルを同梱しています。

仮想サーバーのログを自動収集する手順は次のようになっています。

  1. コントロールパネルでモニタリングスイートの設定画面を呼び出す
  2. ログストレージのユーザ領域を追加する
  3. 追加したログストレージの詳細を呼び出し、「アクセスキー」タブでアクセスキーを追加する
  1. 仮想サーバー側で、sacloud-otel-collectorをインストールする

アクセスキーを追加すると、アクセスキーの詳細で、IDとエンドポイントを確認できます。これを送信用エージェントにセットします。

以下のコマンド例では、Ubuntu 22.04 LTSにsacloud-otel-collectorをインストールしています。

  1. パッケージをインストールする
$ wget https://github.com/sacloud/sacloud-otel-collector/releases/download/v0.5.1/sacloud-otel-collector_0.5.1_linux_amd64.deb
$ sudo dpkg -i sacloud-otel-collector_0.5.1_linux_amd64.deb
  1. 設定ファイル(config.yaml)から、利用しないテレメトリ送信用のpipelineをコメントアウトする( 例:トレースを利用しない場合)
$ sudo vi /etc/sacloud-otel-collector/config.yaml
.
.
.
service:
  pipelines:
    metrics:
      receivers:
        - hostmetrics
      processors:
        - resourcedetection
      exporters:
        - sacloud
        - debug
    logs:
      receivers:
        - filelog
      processors:
        - resourcedetection
      exporters:
        - sacloud
        - debug
#     traces:
#       receivers:
#         - otlp
#       processors:
#         - resourcedetection
#       exporters:
#         - sacloud
#         - debug
  1. 送信したいログファイルのパスを指定する(例:nginxのアクセスログ)
$ sudo vi /etc/sacloud-otel-collector/config.yaml
.
.
.
  filelog:
    start_at: end
    exclude: []
    include:
      - /var/log/nginx/access.log
.
.
.

なお、サービスのプロセスは sacloud-otelcol ユーザーで起動するため、対象ファイルを読むために必要な権限が付与されている必要があります。例えば、nginxのアクセスログのgroupが adm のとき、sacloud-otelcoladm groupを追加するには以下のコマンドを実行します。

$ ls -l /var/log/nginx/access.log
-rw-r----- 1 www-data adm 1008 Jan 13 14:45 /var/log/nginx/access.log
$ sudo usermod -aG adm sacloud-otelcol
$ id sacloud-otelcol
uid=999(sacloud-otelcol) gid=999(sacloud-otelcol) groups=999(sacloud-otelcol),4(adm)
  1. 認証情報を環境変数で設定する(設定値はアクセスキーの詳細情報をもとに設定)
$ sudo vi /etc/default/sacloud-otel-collector
OTELCOL_OPTIONS="--config=/etc/sacloud-otel-collector/config.yaml"
SACLOUD_METRICS_ENDPOINT=123456789012
SACLOUD_METRICS_TOKEN=met-xxxx
SACLOUD_LOGS_ENDPOINT=123456789012
SACLOUD_LOGS_TOKEN=log-xxxx
#  SACLOUD_TRACES_ENDPOINT=123456789012
#  SACLOUD_TRACES_TOKEN=trc-xxxx
  1. サービスを有効化して起動する
$ sudo systemctl enable sacloud-otel-collector
$ sudo systemctl start sacloud-otel-collector

これで、指定したユーザ領域のストレージに、仮想サーバーのログとメトリクスが格納されます。

アラート機能を設定してシンプル通知を呼び出す

メトリクスの変化を自動検出して、他のサービスを呼び出すには「アラート」を利用します。

ここでは、例として「シンプル通知」を呼び出す手順を説明します。あらかじめメトリクスを収集できる状態にしておきます。また、シンプル通知も別途設定が必要です。

  1. コントロールパネルでモニタリングスイートの設定画面を呼び出す
  2. アラートプロジェクトを選択して、アラートプロジェクトを追加する
  3. 追加したアラートプロジェクトの詳細を呼び出し「ルールの確認」をクリック
  4. 専用UIのアラートプロジェクトページが開いたら、「アラートルール」タブをクリック
  5. 「+ルール追加」をクリックして、アラートルールを追加する(Queryには、ルールの条件を定義するPromQL形式のクエリを入力)

  1. 左側のメニューで「Alert」を選択する
  2. 作成したアラートプロジェクトを選択する
  3. 通知ルーティング設定で、「+ルーティング追加」をクリックする
  4. 「通知先」として「シンプル通知」を選択する

アラートルールのQueryでは、ルールの条件を定義するPromQL形式のクエリを入力します。PromQL形式については、さくらのナレッジの次の記事で解説しているので参考にしてください。

👉 Prometheusのクエリ機能とアラート機能 | さくらのナレッジ

またアラートルール・ログ計測ルールは、ルール作成数により料金が発生しますのでご注意ください。

モニタリングスイートのアラートをEventBusで検知するには、次のように設定します。

  1. アラートルールの「通知先」で「EventBus」を選択する
  2. EventBus側のトリガーとして、ソースに次の値を設定する
    • モニタリングスイートのAlert:
      //eventbus.sakura.ad.jp/monitoringsuite/alert

詳細はマニュアルの「EventBus:トリガーの登録方法」を参照してください。

モニタリングスイートの利用料金

モニタリングスイートでは、機能の利用により以下の料金が発生します。

機能課金要素
ログストレージ基本料金+書き込みリクエスト料金+保存料金
トレースストレージ基本料金+書き込みリクエスト料金+保存料金
メトリクスストレージ基本料金+書き込みリクエスト料金
アラートプロジェクトアラートルール件数+ログ計測ルール件数

たとえば小〜中規模サービスの場合で、月額利用料をシミュレーションすると次のようになります。

データ種別想定する条件
ログアクセスログ・アプリケーションログを1GB/day程度
トレース分散トレーシング導入済のアプリケーションからサンプリングした上で数百MB/day程度
メトリクス10台のサーバー×300種メトリクス×15秒間隔の送信で、約1700万sample/day
アラートルール15件
ログ計測ルール2件

この条件をもとに月額利用料をシミュレーションすると、次のように1万円弱の利用料となります(価格は2026年1月現在のもの)。

項目使用量/月単価月額料金
ログ30GB110円/GB3,300円
トレース10GB110円/GB1,100円
メトリクス5.2億sample33円/1000万sample1,716円
アラートルール15件220円/件3,300円
ログ計測ルール2件220円/件440円
合計9,856円

利用条件によっても変動しますので、詳細はモニタリングスイートのサービスページおよび料金シミュレーションを参照してください。

まとめ

さくらのクラウドが提供するモニタリングスイートの機能の特長と、基本的な利用方法を解説してきました。

優れたパフォーマンスを出しながら安定したシステム運用を実現するには、メトリクス・ログ・トレースといったデータを統合的に収集・分析・可視化し、予期せぬ問題の根本原因を迅速に特定・対処していくオブザーバビリティが不可欠です。モニタリングスイートは、そのための重要なプラットフォームになります。これを機会にぜひ活用してください。

関連リンク