メインコンテンツまでスキップ
Sumo Logic Japanese

PostgreSQL からのログとメトリクスの収集

PostgreSQL 用の Sumo Logic アプリケーションは、データベースのログおよびメトリクスのモニタリングに使用されます。アプリケーションは、事前定義のダッシュボードでの分析に使用するログ ファイルを、ローカル システムから収集します。ログにより、データベース アクティビティ、ユーザ アクティビティ、被接続数、クエリ実行時間、エラーをモニタリングできます。メトリクスにより、データベース リソースの利用状況とスループットのパフォーマンスをモニタリングできます。

このページでは、ログ収集用の postgres.conf ファイルをカスタマイズする手順と、PostgreSQL が配置されているサーバに collectd をインストールして設定する手順を説明します。リンクをクリックして、直接トピックに移動してください。

ログ タイプ

PostgreSQL 用 Sumo Logic アプリケーションは、データベース サーバ上のローカルのログ ファイルを使用します。詳細については、PostgreSQL のログに関するドキュメント「logging_collector」セクションを参照してください。

ログ メッセージのサンプル

2018-10-29 20:33:44 UTC [15860-27753] user@backend_proc LOG: duration: 0.092 ms statement: SELECT extract(seconds from (now() - pg_last_xact_replay_timestamp())) AS time_lag; 2018-10-29 20:33:44 UTC [15859-27754] user@backend_db LOG: duration: 0.182 ms statement: select datname, numbackends from pg_stat_database; 2018-10-29 20:33:44 UTC [15859-27755] user@backend_db LOG: duration: 1.457 ms statement: SELECT schemaname, relname, indexrelname, idx_scan, idx_tup_read, idx_tup_fetch FROM pg_stat_user_indexes;

クエリのサンプル

このセクションでは、メトリクスとログ両方のクエリのサンプルを示します。

メトリクス クエリ

次に示すのは、PostgreSQL 用 Sumo Logic アプリケーションの [Resource Utilization (リソースの使用状況)] ダッシュボードにある [Number of Server Processes by Data (データ別のサーバ プロセス数)] パネルからのサンプル クエリです。

_sourceCategory="postgres/metrics2" plugin=postgresql type=pg_numbackends

ログ クエリ

次に示すのは、PostgreSQL 用 Sumo Logic アプリケーションの [Security (セキュリティ)] ダッシュボードにある [Geo Location of Incoming Connections (受信接続の地理的場所)] パネルからのサンプル クエリです。

_sourceCategory=postgres/logs connection
| parse "connection received: host=* port=*" as ip,port
| lookup latitude, longitude, country_code, country_name, region, city, postal_code from 
geo://location on ip = ip
| count by latitude, longitude, country_code, country_name, region, city, postal_code
| sort _count

PostgreSQL からのログの収集

このセクションでは、PostgreSQL からログを収集して Sumo Logic に取り込むように設定するプロセスを順を追って説明します。

必要条件:

  • data_directory データベースで PostgreSQL のローカルな postgresql.conf 設定ファイルを見つけます。詳細については、PostgreSQL のファイルの場所に関するドキュメントを参照してください。

  • PostgreSQL の postgresql.conf 設定ファイルのログ パラメータを変更します。

postgresql.conf ファイルを変更するには、次の手順を実行します。

  1. ターミナル ウィンドウでデータベース サーバに接続します。
  2. postgresql.conf 設定ファイルを開きます。
  3. ファイルの ERROR REPORTING AND LOGGING セクションで、次の設定パラメータを使用します。次のパラメータの詳細については、ここをクリックしてください。
log_destination = 'stderr'
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log’
log_truncate_on_rotation = off
log_rotation_age = 1d
log_min_duration_statement = 0
log_connections = on
log_duration = on
log_hostname = on
log_timezone = 'UTC'

   4。postgresql.conf ファイルを保存し、postgres サーバを再起動します。

sudo service postgresql restart

Sumo Logic コレクタをインストールするには、次の手順を実行します。

  1. Sumo Logic アカウントにログインします。
  2. Sumo Logic コレクタをインストールします。
  3. ローカル ファイル ソースを設定します。

以下の例では、次のログ ファイル パスの Ubuntu サーバを使用します。/var/lib/postgresql/9.5/main/pg_log/*.log

 PostgreSQL_CollectionAndSources_Dialog.png

 

PostgreSQL からのメトリクスの収集

このセクションでは、PostgreSQL メトリクスを収集し、データを Sumo Logic に送信するように Collectd を設定する方法を説明します。

Collectd では、次のプラグインを使用して PostgreSQL メトリクスを収集し Sumo Logic に送信します。

  • Collectd 用 PostgreSQL プラグイン - PostgreSQL データベースの SQL ステートメントに接続し、実行します。次に結果を読み取ります。返された値は、設定に応じて collectd の値リストに変換されます。詳細については、PostgreSQL プラグインに関する collectd の Wiki ページを参照してください。

  • Sumo Logic Collectd プラグイン - collectd-python プラグインに基づいて構築されており、collected メトリクスを Sumo Logic HTTP エンドポイントに送信します。

Collectd プラグインのインストールと設定

このセクションでは、Collectd プラグインをインストールして設定するプロセスを順を追って説明します。

Collectd プラグインをインストールして設定するには、次の手順を実行します。

  1. 手順 1、2、3 (オプション 1)、および 4 の手順に従い、Collectd プラグインと Sumo Logic Collectd プラグインをダウンロードしてインストールします。
  2. vi などのエディタで collectd.conf という名前の Collectd 設定ファイル (例: /etc/collectd/collectd.conf) を開き、次の行を非コメント化します。

LoadPlugin python

LoadPlugin postgresql

TypesDB "/usr/share/collectd/types.db" "/etc/collectd/my_types.db"
  1. Collectd 用 PostgreSQL プラグインを設定するには、collectd.conf ファイルで Plugin postgresql を検索し、ここから設定のサンプルをコピーして貼り付け、次の項目を指定します。

    • database_name: モニタリングするデータベースの名前

    • host: postgresql ホストの場所

    • username: クエリを実行する権限を持つデータベース ユーザ  

    • password: データベース ユーザのパスワード

     ここに、私たちの環境で Plugin postgresql 設定がどのようになるかのサンプルがあります。

  1. Sumo Logic Collectd プラグインを設定するには、collectd.conf  ファイルで Plugin python を検索し、ここから設定のサンプルをコピーして貼り付け、次の項目を指定します。
    • URL: 上記の手順 1.4 で設定した Sumo Logic HTTP のエンドポイント URL

    • TypesDB: types.db へのパス。通常 /usr/share/collectd/types.db になります。

      ここに、私たちの環境で Sumo Logic CollectD 設定がどのようになるかのサンプルがあります。

  1. カスタム メトリクスを types.db に追加し、types.db ファイル (通常 /usr/share/collectd/types.db に存在) を開き、pg_db_size を検索して、その行の後に次のカスタム メトリクスを追加します。
pg_db_table_size        value:GAUGE:0:U
pg_replication_lag      value:GAUGE:0:U
pg_backend_connections  value:GAUGE:0:U
pg_index_scan_stat      value:GAUGE:0:U

     ここでサンプルの types.db ファイルを確認できます。

  1.  Collectd を再起動します。
service collectd stop service collectd start
  • この記事は役に立ちましたか?