OSS Fan ~OSSでLinuxサーバ構築~

このエントリーをはてなブックマークに追加

pg_stats_reporter 3.0.1を導入してPostgreSQL 9.4.10の利用統計情報をグラフィカルレポートで表示する

カテゴリ:OSSセットアップ | ソフトウェア:PostgreSQL | タグ:
最終更新日:2021/01/01 | 公開日:2017/01/23

目次

概要

 CentOS 6.8(x86_64) に PostgreSQL 9.4.10 をインストールした環境に、 pg_statinfo 3.0.2 が追加インストールされ、サーバの利用統計情報を定期的に収集・蓄積している状態から本手順は開始します。 今回利用するサーバ環境はこちらの手順でPostgreSQLをインストールした後に、 こちらの手順でpg_statsinfoを設定済みの前提とします。 収集した統計情報を格納するリポジトリDB(PostgreSQL)は監視対象のPostgreSQLサーバと同一インスタンスの データベース内に作成されており、更にPostgreSQLとpg_stats_reporterが稼働するApache HTTP Serverも同一サーバ上で稼働させます。

構成

サーバ構成

OSバージョン

CentOS 6.8 x86_64

ソフトウェア・パッケージ一覧

 以下のパッケージを新規にインストールします。

  • pg_stats_reporter-3.0.1-1.el6.noarch.rpm
  • php-5.3.3-47.el6.x86_64.rpm
  • php-cli-5.3.3-47.el6.x86_64.rpm
  • php-common-5.3.3-47.el6.x86_64.rpm
  • php-pdo-5.3.3-47.el6.x86_64.rpm
  • php-pgsql-5.3.3-47.el6.x86_64.rpm
  • php-intl-5.3.3-47.el6.x86_64.rpm

 以下のパッケージは既にインストール済みの前提とします。

  • pg_statsinfo-3.0.2-1.pg94.rhel6.x86_64.rpm
  • postgresql94-9.4.10-1PGDG.rhel6.x86_64.rpm
  • postgresql94-libs-9.4.10-1PGDG.rhel6.x86_64.rpm
  • postgresql94-server-9.4.10-1PGDG.rhel6.x86_64.rpm
  • httpd-2.2.15-53.el6.centos.x86_64.rpm

クライアント構成

OSバージョン

Windows 10 Pro 64bit

ソフトウェア・パッケージ一覧

  • Microsoft Edge 38.14393.0.0

サーバ構築

インストール

Apache HTTP Serverのインストール確認

 CentOS 6.8をインストールすると自動でインストールされていたので、 ここでは確認のみを行います。

# rpm -qa | grep httpd
httpd-tools-2.2.15-53.el6.centos.x86_64
httpd-2.2.15-53.el6.centos.x86_64 ←インストール済み

PHPのインストール

 PHPのパッケージをCentOS 6.8のインストールDVDからインストールします。 CentOS 6.8はDVD 2枚組になっているので、DVD1をDVDドライブにセットし、以下のコマンドを実行します。

# cd /media/
# mkdir cdrom
# mount -t iso9660 /dev/cdrom /media/cdrom
mount: ブロックデバイス /dev/sr0 は書き込み禁止です、読込み専用でマウントします
# cd /media/cdrom/Packages/
# rpm -ihv php-5.3.3-47.el6.x86_64.rpm php-cli-5.3.3-47.el6.x86_64.rpm php-common-5.3.3-47.el6.x86_64.rpm
警告: php-5.3.3-47.el6.x86_64.rpm: ヘッダ V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
準備中...                ########################################### [100%]
   1:php-common             ########################################### [ 33%]
   2:php-cli                ########################################### [ 67%]
   3:php                    ########################################### [100%]
# rpm -ihv php-pdo-5.3.3-47.el6.x86_64.rpm
警告: php-pdo-5.3.3-47.el6.x86_64.rpm: ヘッダ V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
準備中...                ########################################### [100%]
   1:php-pdo                ########################################### [100%]
# rpm -ihv php-pgsql-5.3.3-47.el6.x86_64.rpm
警告: php-pgsql-5.3.3-47.el6.x86_64.rpm: ヘッダ V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
準備中...                ########################################### [100%]
   1:php-pgsql              ########################################### [100%]
# cd /
# umount /media/cdrom

 DVDドライブからDVD1を取り出し、DVD2をセットして以下のコマンドを実行します。

# mount -t iso9660 /dev/cdrom /media/cdrom
mount: ブロックデバイス /dev/sr0 は書き込み禁止です、読込み専用でマウントします
# cd /media/cdrom/Packages/
# rpm -ihv php-intl-5.3.3-47.el6.x86_64.rpm
警告: php-intl-5.3.3-47.el6.x86_64.rpm: ヘッダ V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
準備中...                ########################################### [100%]
   1:php-intl               ########################################### [100%]
# cd /
# umount /media/cdrom

pg_stats_reporterのインストール

 pg_stats_reporterのパッケージを1つインストールします。 下記URLよりファイルをダウンロードして /media/installer/postgresql9410/ に配置した前提でインストールを開始します。

【関連サイト】
 pg_stats_reporter 3.0.1ダウンロードURL

以下のコマンドを実行します。

# cd /media/installer/postgresql9410/
# ls -l pg_stats*.rpm
-rw-r--r-- 1 root root 2791456  1月 21 23:05 2017 pg_stats_reporter-3.0.1-1.el6.noarch.rpm
-rw-r--r-- 1 root root  109308  1月 21 23:07 2017 pg_statsinfo-3.0.2-1.pg94.rhel6.x86_64.rpm
# rpm -ihv pg_stats_reporter-3.0.1-1.el6.noarch.rpm
準備中...                ########################################### [100%]
   1:pg_stats_reporter      ########################################### [100%]

設定

pg_stats_reporterの設定変更

 pg_stats_reporterの設定を行います。 設定するのはデータベースの利用統計情報が格納されているリポジトリDBに対する接続情報です。 リポジトリDBがpg_stats_reporterと同一サーバ上の場合はパスワードだけ設定すれば良いです。 なお、/etc/pg_stats_reporter.iniファイルが存在しない場合は、 /var/www/pg_stats_reporter_lib/pg_stats_reporter.ini.sample をコピー・リネームして利用してください。

# cd /etc/
# vi pg_stats_reporter.ini
ファイル名:/etc/pg_stats_reporter.ini
※以下、該当箇所のみ変更※
;-------------------------------------
; repository DB setting section
;-------------------------------------
[sample]
   ↓変更
[TestReport] ←名前は必須だが、任意のもので可。変更しなくても良い

;-------------------------------------
; database connection
;-------------------------------------
;password =
   ↓変更
password = password ←PostgreSQLのpostgresユーザのパスワード

hostsファイルの設定

 pg_stats_reporterがリポジトリDBと同一サーバ上で稼働しているので、接続先をループバックアドレスであるlocalhost(127.0.0.1のつもり)で 設定していましたが、リポジトリDB(PostgreSQL)への接続で失敗しました。 ログを調べると、どうやら localhost が ::1(IPv6) に名前解決されて接続しようとして失敗しているようでした。 hostsファイルのIPv6のアドレスをコメントアウトすると正常にリポジトリDB(PostgreSQL)に接続できるようになったので、 ここでその設定を行っておきます。

# cd /etc/
# vi hosts
ファイル名:/etc/hosts
※以下、該当箇所のみ変更※
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
↓
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 ←コメントアウト

Apache HTTP Serverの起動

 Apacheの設定には色々あり、本番運用するのであればセキュリティ上好ましくない設定は 外した方が良いのですが、今回はpg_stats_reporterの動作確認を行うことが目的なので、 デフォルトのままとしました。pg_stats_reporter的には特に問題ないようでした。

# service httpd start
httpd を起動中: httpd: apr_sockaddr_info_get() failed for pgstatsdb
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName ←警告は出るが動く
                                                           [  OK  ]

クライアント認証の設定追加

 pg_stats_reporterがリポジトリDB(PostgreSQL)に接続するための設定を追加します。 同一サーバ上で動いている場合でもTCP/IP接続してきますので、「host」で設定し、 リポジトリDBとした「postgres」という名称のデータベースに対して「postgres」ユーザがループバックアドレス「127.0.0.1/32」から 接続してきたときに、パスワード認証(md5で暗号化してパスワードを送信)する設定とします。

# su - postgres
$ cd /data/pgdata1/
$ vi pg_hba.conf
ファイル名:/data/pgdata1/pg_hba.conf
※以下、該当箇所のみ変更※
host    postgres        postgres        127.0.0.1/32            md5 ←この行を追加
local   all             postgres                                peer
local   all             all                                     md5
host    all             all             192.168.0.0/24          md5

PostgreSQLインスタンスの再起動

 PostgreSQLインスタンスを再起動して、クライアント認証の設定変更を反映させます。

-bash-4.1$ pg_ctl stop -m fast ←停止
サーバ停止処理の完了を待っています....2017-01-22 19:57:19 JST [3800] LOG:  pg_statsinfo launcher shutting down
LOG: shutdown
完了
サーバは停止しました
-bash-4.1$ pg_ctl start -w ←起動
サーバの起動完了を待っています....2017-01-22 19:57:26 JST [4008] LOG:  redirecting log output to logging collector process
2017-01-22 19:57:26 JST [4008] HINT:  Future log output will appear in directory "pg_log".
完了
サーバ起動完了
-bash-4.1$ 2017-01-22 19:57:27 JST [4008] LOG:  pg_statsinfo launcher started
LOG: start

-bash-4.1$

 以上で最低限の設定は完了です。

動作テスト

ブラウザでのグラフィカルレポート表示確認

 ブラウザを起動し、pg_stats_reporterのグラフィカルレポート画面を表示します。 URLは以下の形式となります。

【URL】
 http://192.168.0.83/pg_stats_reporter/pg_stats_reporter.php
 ※192.168.0.83は今回使用したサーバのIPアドレスです。適宜読み換えてください。

 今回は動作させるまでの設定が目的なので、グラフィカルレポートの使い方や見方の詳細は割愛します。