pg_stats_reporter 3.0.1を導入してPostgreSQL 9.4.10の利用統計情報をグラフィカルレポートで表示する
目次
概要
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
※以下、該当箇所のみ変更※ ;------------------------------------- ; 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
※以下、該当箇所のみ変更※ 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
※以下、該当箇所のみ変更※ 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アドレスです。適宜読み換えてください。
今回は動作させるまでの設定が目的なので、グラフィカルレポートの使い方や見方の詳細は割愛します。