既存のMongoDBとのインテグレーション
このセクションでは、ClickStack OTel collector の設定を変更して、既存の MongoDB 環境から ClickStack にログを送信するよう構成する方法を説明します。 既存の独自環境を構成する前に MongoDB インテグレーションを試したい場合は、"デモデータセット" セクションにある、事前設定済みの環境とサンプルデータを使ってテストできます。
前提条件
- 稼働中の ClickStack インスタンス
- 既存のセルフマネージド MongoDB 環境 (バージョン 4.4 以降)
- MongoDB のログファイルへのアクセス
MongoDB のロギング設定を確認する
MongoDB 4.4 以降では、デフォルトで構造化された JSON 形式のログが出力されます。ログファイルの場所を確認してください。
cat /etc/mongod.conf | grep -A 5 systemLogMongoDB の一般的なログ出力先:
- 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:
- clickhouseClickStack でカスタム設定を読み込むように構成する
既存の ClickStack デプロイメントでカスタム collector 設定を有効にするには、次の作業が必要です。
- カスタム設定ファイルを
/etc/otelcol-contrib/custom.config.yamlにマウントする - 環境変数
CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yamlを設定する - 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
# ... その他のボリューム ...Docker で all-in-one イメージを使用している場合は、次を実行します。
docker run --name clickstack \
-p 8080:8080 -p 4317:4317 -p 4318:4318 \
-e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
-v "$(pwd)/mongodb-monitoring.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
-v /var/log/mongodb:/var/log/mongodb:ro \
clickhouse/clickstack-all-in-one:latestHyperDX でログを確認する
設定が完了したら、HyperDX にログインして、ログが流れてきていることを確認します。


デモデータセット
本番環境を構成する前に、事前生成済みのサンプルデータセットを使って 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:latestHyperDX でログを確認する
ClickStack の起動後、次の手順を実行します。
- HyperDX を開いてアカウントにログインします (先にアカウント作成が必要な場合があります)
- Search ビューに移動し、source を
Logsに設定します - 時間範囲に 2026-03-09 00:00:00 - 2026-03-10 00:00:00 (UTC) が含まれるよう設定します


ダッシュボードと可視化
ダッシュボード設定をダウンロード
あらかじめ用意されたダッシュボードをインポートします
- HyperDX を開き、Dashboards セクションに移動します。
- 右上の省略記号メニューから「Import Dashboard」をクリックします。

- mongodb-logs-dashboard.json ファイルをアップロードし、インポートを完了します。

ダッシュボードが作成され、すべての可視化があらかじめ設定された状態になります
デモデータセットでは、時間範囲に 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 filelogcollector のログにエラーがないか確認します:
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 データの送信を参照してください。