ClickStack を使用した PostgreSQL ログの監視
このガイドでは、OpenTelemetry Collector を設定して PostgreSQL サーバーログを取り込むことで、ClickStack を使って PostgreSQL を監視する方法を説明します。次の内容を学びます。
- 構造化して解析できるように、PostgreSQL がログを CSV 形式で出力するように設定する
- ログのインジェスト用のカスタム OTel collector 設定を作成する
- カスタム設定を使用して ClickStack をデプロイする
- あらかじめ用意されたダッシュボードを使用して、PostgreSQL ログから得られるインサイト(エラー、スロークエリ、接続状況)を可視化する
本番環境の PostgreSQL を設定する前に連携をテストしたい場合は、サンプルログを含むデモ用データセットを利用できます。
所要時間: 10〜15 分
既存の PostgreSQL との統合
このセクションでは、ClickStack の OTel collector の設定を変更して、既存の PostgreSQL 環境から ClickStack にログを送信する方法について説明します。
既存環境を設定する前に PostgreSQL ログ連携を試したい場合は、"Demo dataset" セクションにあるあらかじめ設定済みのセットアップとサンプルデータを使ってテストできます。
前提条件
- ClickStack インスタンスが稼働していること
- 既存の PostgreSQL 環境(バージョン 9.6 以降)
- PostgreSQL 設定ファイルを変更できるアクセス権限
- ログファイル用の十分なディスク容量
PostgreSQLのログ設定を構成する
PostgreSQLは複数のログ形式をサポートしています。OpenTelemetryで構造化解析を行う場合は、一貫性があり解析可能な出力を提供するCSV形式を推奨します。
postgresql.conf ファイルは通常、以下の場所に配置されています:
- Linux (apt/yum):
/etc/postgresql/{version}/main/postgresql.conf - macOS(Homebrew):
/usr/local/var/postgres/postgresql.confまたは/opt/homebrew/var/postgres/postgresql.conf - Docker: 設定は通常、環境変数またはマウントした設定ファイルで指定します
postgresql.confでこれらの設定を追加または変更してください:
本ガイドでは、信頼性の高い構造化解析を実現するため、PostgreSQLのcsvlog形式を使用しています。stderrまたはjsonlog形式を使用している場合は、OpenTelemetryコレクターの設定を適宜調整してください。
これらの変更を行った後、PostgreSQLを再起動します:
ログが書き込まれていることを確認する:
カスタムOTel collector設定を作成する
ClickStackでは、カスタム設定ファイルをマウントして環境変数を設定することで、ベースのOpenTelemetry Collector設定を拡張できます。カスタム設定は、HyperDXがOpAMP経由で管理するベース設定にマージされます。
以下の設定で postgres-logs-monitoring.yaml という名前のファイルを作成します:
この設定では:
- 標準的な場所から PostgreSQL の CSV ログを読み取ります
- 複数行にまたがるログエントリを適切に処理します(エラーは複数行にわたることがよくあります)
- 標準的な PostgreSQL のすべてのログフィールドを含む CSV 形式を解析します
- 元のログ時刻を保持するためにタイムスタンプを抽出します
- HyperDX でのフィルタリングに使用する
source: postgresql属性を追加します - 専用パイプラインを介してログを ClickHouse エクスポーターに転送する
- カスタム設定では、新しい receiver と pipeline のみを定義します
memory_limiter、transform、batchの各 processor とclickhouseexporter は、ClickStack のベース設定内で既に定義されているため、名前で参照するだけで利用できますcsv_parserオペレーターは、標準的な PostgreSQL の CSV ログフィールドをすべて構造化属性として抽出します- この設定では、コレクター再起動時にログを再度取り込むのを防ぐために
start_at: endを使用します。テストする際は、履歴ログをすぐに確認できるようにstart_at: beginningに変更してください。 includeパスを、PostgreSQL のログディレクトリの場所に合わせて調整してください
ClickStackにカスタム設定を読み込むよう構成する
既存のClickStackデプロイメントでカスタムコレクター設定を有効にするには、次の手順を実行してください:
- カスタム設定ファイルを
/etc/otelcol-contrib/custom.config.yamlにマウントします - 環境変数
CUSTOM_OTELCOL_CONFIG_FILEに/etc/otelcol-contrib/custom.config.yamlを設定します - PostgreSQL のログディレクトリをマウントして、コレクターがログを読み取れるようにします
オプション1: Docker Compose
ClickStackのデプロイメント設定を更新します:
オプション2:Docker Run(オールインワンイメージ)
docker runでオールインワンイメージを使用している場合:
ClickStackコレクターがPostgreSQLログファイルを読み取るための適切な権限を持っていることを確認してください。本番環境では、読み取り専用マウント(:ro)を使用し、最小権限の原則に従ってください。
HyperDXでのログの確認
設定完了後、HyperDXにログインし、ログが正常に送信されていることを確認してください:
- 検索ビューに移動します
- ソースを Logs に設定します
source:postgresqlでフィルタして、PostgreSQL 固有のログだけを表示しますuser_name、database_name、error_severity、message、queryなどのフィールドを含む構造化されたログエントリが表示されるはずです。


デモ用データセット
本番環境を設定する前に PostgreSQL ログ連携を試したいユーザー向けに、実運用に近いパターンを含む事前生成済み PostgreSQL ログのサンプルデータセットを提供しています。
HyperDX でログを確認する
ClickStack が起動したら、次の操作を行います:
- HyperDX を開き、アカウントにログインします(まだアカウントがない場合は、先にアカウントを作成する必要があります)
- Search ビューに移動し、source を
Logsに設定します - 時間範囲を 2025-11-09 00:00:00 - 2025-11-12 00:00:00 に設定します
HyperDX はタイムスタンプをブラウザーのローカルタイムゾーンで表示します。デモデータは 2025-11-10 00:00:00 - 2025-11-11 00:00:00 (UTC) の範囲をカバーしています。広めの時間範囲を指定することで、どの地域からアクセスしていてもデモログを確認できます。ログが表示されたら、可視化を見やすくするために時間範囲を 24 時間に絞り込むことを推奨します。


ダッシュボードと可視化
ClickStack を使って PostgreSQL の監視を始めやすくするために、PostgreSQL ログ向けの基本的な可視化用ダッシュボードを提供しています。
事前構築済みダッシュボードをインポートする
- HyperDX を開き、Dashboards セクションに移動します
- 画面右上の三点リーダー(省略記号)メニューから Import Dashboard をクリックします

postgresql-logs-dashboard.jsonファイルをアップロードし、Finish Import をクリックします

ダッシュボードを表示する
ダッシュボードは、すべての可視化が事前設定された状態で作成されます。

デモデータセットでは、時間範囲を 2025-11-10 00:00:00 - 2025-11-11 00:00:00 (UTC) に設定してください(ローカルタイムゾーンに合わせて調整してください)。インポートしたダッシュボードには、デフォルトでは時間範囲が指定されていません。
トラブルシューティング
カスタム設定が読み込まれない
環境変数が設定されていることを確認してください:
カスタム設定ファイルがマウントされ、読み取り可能であることを確認してください:
HyperDX にログが表示されない
実際に適用されている設定に filelog レシーバーが含まれているか確認します:
コレクターのログにエラーが出ていないか確認します:
デモ用データセットを使用している場合は、ログファイルにアクセスできることを確認してください:
次のステップ
PostgreSQL ログ監視の設定が完了したら、次の作業を行ってください:
- 重要なイベント(接続失敗、遅いクエリ、エラーの急増)に対するアラートを設定する
- 包括的なデータベース監視のために、ログをPostgreSQL メトリクスと相関付ける
- アプリケーション固有のクエリパターン向けにカスタムダッシュボードを作成する
- パフォーマンス要件に応じた遅いクエリを特定するために
log_min_duration_statementを設定する
本番環境への移行
このガイドでは、迅速なセットアップのために、ClickStack に組み込まれている OpenTelemetry Collector を利用した構成について説明します。本番環境へのデプロイでは、独自の OTel Collector を実行し、ClickStack の OTLP エンドポイントにデータを送信することを推奨します。本番環境向けの設定については、OpenTelemetry データの送信 を参照してください。