メインコンテンツへスキップ
要点OTel filelog receiver を使用して、MongoDB のサーバーログ (4.4 以降の JSON フォーマット) を ClickStack で収集・可視化します。デモデータセットとあらかじめ用意されたダッシュボードが含まれています。

既存のMongoDBとのインテグレーション

このセクションでは、ClickStack OTel collector の設定を変更して、既存の MongoDB 環境から ClickStack にログを送信するよう構成する方法を説明します。 既存の独自環境を構成する前に MongoDB インテグレーションを試したい場合は、“デモデータセット” セクションにある、事前設定済みの環境とサンプルデータを使ってテストできます。

前提条件

  • 稼働中の ClickStack インスタンス
  • 既存のセルフマネージド MongoDB 環境 (バージョン 4.4 以降)
  • MongoDB のログファイルへのアクセス
1

MongoDB のロギング設定を確認する

MongoDB 4.4 以降では、デフォルトで構造化された JSON 形式のログが出力されます。ログファイルの場所を確認してください。
cat /etc/mongod.conf | grep -A 5 systemLog
MongoDB の一般的なログ出力先:
  • Linux (apt/yum): /var/log/mongodb/mongod.log
  • macOS (Homebrew): /usr/local/var/log/mongodb/mongo.log
  • Docker: 多くの場合 stdout に出力されますが、/var/log/mongodb/mongod.log に書き込むように設定することもできます
MongoDB が stdout にログを出力している場合は、mongod.conf を更新してファイルに書き込むよう設定します:
systemLog:
  destination: file
  path: /var/log/mongodb/mongod.log
  logAppend: true
設定を変更したら、MongoDB を再起動します。
# systemdの場合
sudo systemctl restart mongod

# Dockerの場合
docker restart <mongodb-container>
2

MongoDB 用のカスタム OTel collector 設定を作成する

ClickStack では、カスタム設定ファイルをマウントし、環境変数を設定することで、ベースの OpenTelemetry Collector 設定を拡張できます。カスタム設定は、HyperDX が OpAMP 経由で管理するベース設定にマージされます。次の内容で、mongodb-monitoring.yaml という名前のファイルを作成します。
receivers:
  filelog/mongodb:
    include:
      - /var/log/mongodb/mongod.log
    start_at: beginning
    operators:
      - type: json_parser
        parse_from: body
        parse_to: attributes
        timestamp:
          parse_from: attributes.t.$$date
          layout: '2006-01-02T15:04:05.000-07:00'
          layout_type: gotime
        severity:
          parse_from: attributes.s
          overwrite_text: true
          mapping:
            fatal: F
            error: E
            warn: W
            info: I
            debug:
              - D1
              - D2
              - D3
              - D4
              - D5

      - type: move
        from: attributes.msg
        to: body

      - type: add
        field: attributes.source
        value: "mongodb"

      - type: add
        field: resource["service.name"]
        value: "mongodb-production"

service:
  pipelines:
    logs/mongodb:
      receivers: [filelog/mongodb]
      processors:
        - memory_limiter
        - transform
        - batch
      exporters:
        - clickhouse
  • カスタムconfigで新たに定義するのは、receiverとパイプラインのみです。プロセッサ (memory_limitertransformbatch) とエクスポーター (clickhouse) は、ベースのClickStack設定ですでに定義されているため、名前で参照するだけで構いません。
  • このconfigでは、collectorの起動時に既存のlogsをすべて読み込むため、start_at: beginningを使用しています。本番環境のデプロイメントでは、collectorの再起動時にlogsを再取り込みしないよう、start_at: endに変更してください。
3

ClickStack でカスタム設定を読み込むように構成する

既存の ClickStack デプロイメントでカスタム collector 設定を有効にするには、次の作業が必要です。
  1. カスタム設定ファイルを /etc/otelcol-contrib/custom.config.yaml にマウントする
  2. 環境変数 CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml を設定する
  3. collector が MongoDB のログを読み取れるよう、MongoDB のログディレクトリをマウントする
ClickStack デプロイメントの設定を更新します。
services:
  clickstack:
    # ... 既存の設定 ...
    environment:
      - CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml
      # ... その他の環境変数 ...
    volumes:
      - ./mongodb-monitoring.yaml:/etc/otelcol-contrib/custom.config.yaml:ro
      - /var/log/mongodb:/var/log/mongodb:ro
      # ... その他のボリューム ...
ClickStack collector に MongoDB のログファイルを読み取るための適切な権限があることを確認してください。本番環境では、読み取り専用マウント (:ro) を使用し、最小権限の原則に従ってください。
4

HyperDX でログを確認する

設定が完了したら、HyperDX にログインして、ログが流れてきていることを確認します。

デモデータセット

本番環境を構成する前に、事前生成済みのサンプルデータセットを使って MongoDB インテグレーションをテストできます。
1

サンプルデータセットをダウンロードする

サンプルのログファイルをダウンロードします。
curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/mongodb/mongod.log
2

テスト用の collector 設定を作成する

以下の設定内容で、mongodb-demo.yaml という名前のファイルを作成します。
cat > mongodb-demo.yaml << 'EOF'
receivers:
  filelog/mongodb:
    include:
      - /tmp/mongodb-demo/mongod.log
    start_at: beginning
    operators:
      - type: json_parser
        parse_from: body
        parse_to: attributes
        timestamp:
          parse_from: attributes.t.$$date
          layout: '2006-01-02T15:04:05.000-07:00'
          layout_type: gotime
        severity:
          parse_from: attributes.s
          overwrite_text: true
          mapping:
            fatal: F
            error: E
            warn: W
            info: I
            debug:
              - D1
              - D2
              - D3
              - D4
              - D5

      - type: move
        from: attributes.msg
        to: body

      - type: add
        field: attributes.source
        value: "mongodb-demo"

      - type: add
        field: resource["service.name"]
        value: "mongodb-demo"

service:
  pipelines:
    logs/mongodb-demo:
      receivers: [filelog/mongodb]
      processors:
        - memory_limiter
        - transform
        - batch
      exporters:
        - clickhouse
EOF
3

デモ設定で ClickStack を実行する

デモ用のログと設定を使用して ClickStack を実行します。
docker run --name clickstack-demo \
  -p 8080:8080 -p 4317:4317 -p 4318:4318 \
  -e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
  -v "$(pwd)/mongodb-demo.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
  -v "$(pwd)/mongod.log:/tmp/mongodb-demo/mongod.log:ro" \
  clickhouse/clickstack-all-in-one:latest

HyperDX でログを確認する

ClickStack の起動後、次の手順を実行します。
  1. HyperDX を開いてアカウントにログインします (先にアカウント作成が必要な場合があります)
  2. Search ビューに移動し、source を Logs に設定します
  3. 時間範囲に 2026-03-09 00:00:00 - 2026-03-10 00:00:00 (UTC) が含まれるよう設定します

ダッシュボードと可視化

1

してダッシュボード設定を取得します

2

あらかじめ用意されたダッシュボードをインポートします

  1. HyperDX を開き、Dashboards セクションに移動します。
  2. 右上の省略記号メニューから「Import Dashboard」をクリックします。
  1. mongodb-logs-dashboard.json ファイルをアップロードし、インポートを完了します。
3

ダッシュボードが作成され、すべての可視化があらかじめ設定された状態になります

デモデータセットでは、時間範囲に 2026-03-09 00:00:00 - 2026-03-10 00:00:00 (UTC) が含まれるように設定します。

トラブルシューティング

HyperDX にログが表示されない

有効な設定に、使用している filelog receiver が含まれていることを確認してください。
docker exec <container> cat /etc/otel/supervisor-data/effective.yaml | grep -A 10 filelog
collector のログにエラーがないか確認します:
docker exec <container> cat /etc/otel/supervisor-data/agent.log

ログが正しくパースされない

MongoDB が JSON 形式のログを出力していることを確認してください (4.4+) :
tail -1 /var/log/mongodb/mongod.log | python3 -m json.tool
出力が有効なJSONでない場合は、お使いのMongoDBのバージョンで従来のテキストログ形式 (4.4より前) が使用されている可能性があります。その場合は、json_parser オペレーターを regex_parser に置き換えるか、MongoDB 4.4以降にアップグレードする必要があります。

次のステップ

  • エラーの急増やスロークエリのしきい値超過など、重要なイベントに対するアラートを設定します
  • レプリカセットの監視や接続状況の追跡など、特定のユースケース向けに追加のダッシュボードを作成します

本番環境への移行

このガイドでは、迅速にセットアップできるよう、ClickStack に組み込まれた OpenTelemetry Collector を拡張して使用します。本番環境でのデプロイメントでは、独自の OTel Collector を実行し、データを ClickStack の OTLPエンドポイントに送信することを推奨します。本番環境向けの構成については、OpenTelemetry データの送信 を参照してください。
最終更新日 2026年6月10日