要点OTel
filelog receiver を使用して、MongoDB のサーバーログ (4.4 以降の JSON フォーマット) を ClickStack で収集・可視化します。デモデータセットとあらかじめ用意されたダッシュボードが含まれています。既存のMongoDBとのインテグレーション
前提条件
- 稼働中の ClickStack インスタンス
- 既存のセルフマネージド MongoDB 環境 (バージョン 4.4 以降)
- MongoDB のログファイルへのアクセス
1
MongoDB のロギング設定を確認する
MongoDB 4.4 以降では、デフォルトで構造化された JSON 形式のログが出力されます。ログファイルの場所を確認してください。- Linux (apt/yum):
/var/log/mongodb/mongod.log - macOS (Homebrew):
/usr/local/var/log/mongodb/mongo.log - Docker: 多くの場合 stdout に出力されますが、
/var/log/mongodb/mongod.logに書き込むように設定することもできます
mongod.conf を更新してファイルに書き込むよう設定します:2
MongoDB 用のカスタム OTel collector 設定を作成する
ClickStack では、カスタム設定ファイルをマウントし、環境変数を設定することで、ベースの OpenTelemetry Collector 設定を拡張できます。カスタム設定は、HyperDX が OpAMP 経由で管理するベース設定にマージされます。次の内容で、mongodb-monitoring.yaml という名前のファイルを作成します。- カスタムconfigで新たに定義するのは、receiverとパイプラインのみです。プロセッサ (
memory_limiter、transform、batch) とエクスポーター (clickhouse) は、ベースのClickStack設定ですでに定義されているため、名前で参照するだけで構いません。 - このconfigでは、collectorの起動時に既存のlogsをすべて読み込むため、
start_at: beginningを使用しています。本番環境のデプロイメントでは、collectorの再起動時にlogsを再取り込みしないよう、start_at: endに変更してください。
3
ClickStack でカスタム設定を読み込むように構成する
既存の ClickStack デプロイメントでカスタム collector 設定を有効にするには、次の作業が必要です。- カスタム設定ファイルを
/etc/otelcol-contrib/custom.config.yamlにマウントする - 環境変数
CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yamlを設定する - collector が MongoDB のログを読み取れるよう、MongoDB のログディレクトリをマウントする
- Docker Compose
- Docker Run (All-in-One Image)
ClickStack デプロイメントの設定を更新します。
ClickStack collector に MongoDB のログファイルを読み取るための適切な権限があることを確認してください。本番環境では、読み取り専用マウント (
:ro) を使用し、最小権限の原則に従ってください。4
HyperDX でログを確認する
設定が完了したら、HyperDX にログインして、ログが流れてきていることを確認します。デモデータセット
1
2
ダッシュボードと可視化
1
してダッシュボード設定を取得します
2
あらかじめ用意されたダッシュボードをインポートします
- HyperDX を開き、Dashboards セクションに移動します。
- 右上の省略記号メニューから「Import Dashboard」をクリックします。
- mongodb-logs-dashboard.json ファイルをアップロードし、インポートを完了します。
3
ダッシュボードが作成され、すべての可視化があらかじめ設定された状態になります
デモデータセットでは、時間範囲に 2026-03-09 00:00:00 - 2026-03-10 00:00:00 (UTC) が含まれるように設定します。トラブルシューティング
HyperDX にログが表示されない
ログが正しくパースされない
json_parser オペレーターを regex_parser に置き換えるか、MongoDB 4.4以降にアップグレードする必要があります。