Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

ClickStack による MongoDB ログの監視

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

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

前提条件

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

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 を再起動します。

# For systemd
sudo systemctl restart mongod

# For Docker
docker restart <mongodb-container>

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

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
      # ... その他のボリューム ...

HyperDX でログを確認する

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

MongoDB ログの検索ビュー
MongoDB ログの詳細ビュー

デモデータセット

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

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

サンプルのログファイルをダウンロードします。

curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/mongodb/mongod.log

テスト用の 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

デモ設定で 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) が含まれるよう設定します
MongoDB ログの Search ビュー
MongoDB ログの詳細ビュー

ダッシュボードと可視化

ダッシュボード設定をダウンロード

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

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

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

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

MongoDB ログダッシュボード

トラブルシューティング

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 データの送信を参照してください。

Navigation