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)とエクスポータ(clickhouse)は、ベースの 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」に設定する
- PostgreSQL 固有のログを表示するには、
source:postgresqlでフィルタリングします user_name、database_name、error_severity、message、queryなどのフィールドを含む構造化されたログエントリを確認できるはずです。


デモ用データセット
本番環境を設定する前に PostgreSQL ログのインテグレーションを試したいユーザー向けに、実際に近いパターンを含むあらかじめ生成された PostgreSQL ログのサンプルデータセットを提供しています。
HyperDX でログを確認する
ClickStack が起動したら、次の手順を実行します:
- HyperDX を開き、アカウントにログインします(まだアカウントがない場合は作成してください)
- Search ビューに移動し、ソースを
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 データの送信 を参照してください。