‘Server’ カテゴリーのアーカイブ
Japan AWS User Group (JAWS-UG) – Nagasaki勉強会#01 行ってきた
【長崎】Japan AWS User Group (JAWS-UG) – Nagasaki勉強会#01 行って来ました。
いい刺激をうけました。
そして、懇親会から帰って寝て起きたら一緒にいったuchida君はインスタンスあげてました。
はやっ!
やったー!Apache起動して固定IP設定するとこまでいけた!http://54.248.119.22/ #jawsug
— yuichi0301さん (@yuichi03011) 3月 30, 2012
なんと記事までまとめてくれてました。この記事の前です。
Japan AWS User Group 長崎勉強会にいってきたので実際に使ってみた!
すばらしい! しかし、なぞの敗北感。
懇親会も楽しかった。後藤さんの誕生日サプライズとかあったり。
後藤さん誕生日ケーキ #jawsug twitter.com/ayakomuro/stat…
— 小室 文 Aya Komuroさん (@ayakomuro) 3月 30, 2012
最後に、今回のヒットtweet!
EC2インスタンスタイプのイメージ図(長崎版) twitpic.com/937fxx/full #jawsug
— 片山 暁雄 (@c9katayama) March 30, 2012
Popularity: 2% [?]
Japan AWS User Group 長崎勉強会にいってきたので実際に使ってみた!
①登録方法
以下のサイトに詳しく載っていたので省略
http://www.slideshare.net/kentamagawa/3aws
(ちなみに・・、電話の部分すごいと思いました・・。電話とWebが同期してる・・。)
②インスタンスの作り方とサーバ設定
以下のサイトに詳しく載っていたので省略
http://www.slideshare.net/kentamagawa/3amazon-ec2
※ちなみに、AWS Management Console のリンクの場所が右下になってるみたいです。ご注意を。

以下感動ポイント
インスタンスが出来たときちょっと感動・・。
sshで接続できて感動・・。
Apacheがインストール出来て感動・・。
Apacheが起動できて感動・・。
あとMACのsshのコマンドはこうなるみたい
1)秘密鍵のアクセス権変更
chmod 400 ローカルの秘密鍵へのパス
2)sshでアクセス
ssh -i ローカルの秘密鍵へのパス ec2-user@グローバルアドレス
③そして実際に出来たページ
http://54.248.119.22/
まだ何もないです。
④感想
この勉強会はAWSを使ってみたくなるような勉強会で楽しかったです。
(家に帰って早速登録するくらいなので・・・。)
Popularity: 2% [?]
CORESERVERからdotCloudにWordPressをお引っ越し
dotCloudがプライベートベータから正式リリースに至り、ベータの頃からのユーザには1年間のProアカウントを発行してくれるということで、PaaSの運用テストを兼ねて、引っ越してみることにしました。個人ではお高いのでずっとは使えませんが。。。
CORESERVERでやること
まずは、CORESERVER側のWordpressを本体、プラグインともに最新にアップデートしました。
この状態でCORESERVERの管理画面からWordpressデータベースのダンプを取ってローカルに持ってきます。
また、CORESERVER上のWordpressディレクトリもごっそりローカルに持ってきました。
dotCloud基本設定
ここからがdotCloudに対して行う作業です。
ここではアプリケーション名をwordpressとしています。
dotCloudにアプリケーションを作成します。
dataich:dev dataich$ dotcloud create wordpress
Created application "wordpress"ローカルにディレクトリを作成します。
dataich:dev dataich$ mkdir blog.dataich.comここにサービスの設定や、ソースコード等を置いていきます。
WordPressに必要なサービスPHP、MySQLの設定を行います。dotcloud.ymlに記述します。
dataich:dev dataich$ vi blog.dataich.com/dotcloud.yml
まずはこの状態で動きを確認してみます。 dotcloud pushコマンドでアプリケーションのソースコード(とはいってもこの段階ではdotcloud.ymlのみ)をPushします。
dataich:dev dataich$ dotcloud push wordpress blog.dataich.com # upload blog.dataich.com ssh://dotcloud@uploader.dotcloud.com:21122/wordpress # rsync Pseudo-terminal will not be allocated because stdin is not a terminal. Warning: Permanently added '[uploader.dotcloud.com]:21122,[184.73.14.49]:21122' (RSA) to the list of known hosts. building file list ... done ./ dotcloud.yml sent 188 bytes received 54 bytes 9.88 bytes/sec total size is 52 speedup is 0.21 Deployment for "wordpress" triggered. Will be available in a few seconds. 2011-08-01 23:04:54 [api] Waiting for the build. (It may take a few minutes) 2011-08-01 23:04:54 [www.0] Deploying... 2011-08-01 23:04:54 [data.0] Deploying... 2011-08-01 23:05:25 [www.0] Service booted 2011-08-01 23:05:35 [data.0] Service booted 2011-08-01 23:05:35 [api] All the services are ready. Beginning the build. 2011-08-01 23:05:36 [data.0] The build started 2011-08-01 23:05:36 [data.0] This service type does not support build method, ignoring... 2011-08-01 23:05:36 [data.0] The build finished successfully 2011-08-01 23:05:36 [www.0] The build started 2011-08-01 23:05:36 [www.0] Fetched code revision rsync-1312214692.31 2011-08-01 23:05:37 [www.0] Updating channel "doc.php.net" 2011-08-01 23:05:37 [www.0] Update of Channel "doc.php.net" succeeded 2011-08-01 23:05:37 [www.0] Updating channel "pear.php.net" 2011-08-01 23:05:38 [www.0] Channel "pear.php.net" is up to date 2011-08-01 23:05:38 [www.0] Updating channel "pecl.php.net" 2011-08-01 23:05:38 [www.0] Update of Channel "pecl.php.net" succeeded 2011-08-01 23:05:38 [www.0] -su: line 0: cd: current: No such file or directory 2011-08-01 23:05:39 [www.0] -su: line 0: cd: current: No such file or directory 2011-08-01 23:05:39 [www.0] Reloading nginx configuration: nginx. 2011-08-01 23:05:42 [www.0] php5-fpm: stopped 2011-08-01 23:05:42 [www.0] php5-fpm: ERROR (abnormal termination) 2011-08-01 23:05:42 [www.0] The build finished successfully 2011-08-01 23:05:42 [api] Deploy finished Deployment finished. Your application is available at the following URLs www: http://xxxxxxxx.dotcloud.com/
最後の行にサービスwww(PHP)のURLが発行されているので、アクセスしてみます。当然何のリソースもPushしていないので、404が返ってくるかと思います。
データの移行
CORESERVERからとったデータベースダンプをdotCloud上のMySQLにロードします。そのためにdotCloudにデータベース、ユーザの作成をしておきます。
まずは、dotcloud infoでMySQLサービスの情報を取得します。ここでは書きませんが、rootパスワードその他情報が表示されるはずです。
dataich:dev dataich$ dotcloud info wordpress.data
次のコマンドでMySQLのシェルにログインします。
dataich:dev dataich$ dotcloud run wordpress.data -- mysql -u root -p # mysql -u root -p Warning: Permanently added '[xxxxxxxx.dotcloud.com]:12428,[174.129.17.131]:12428' (RSA) to the list of known hosts. Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 34 Server version: 5.1.41-3ubuntu12.10-log (Ubuntu) Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
DBを作成します。
mysql> CREATE DATABASE wordpress; Query OK, 1 row affected (0.00 sec)
ユーザを作成し、権限を与えます。
mysql> GRANT ALL ON wordpress.* TO 'dataich'@'%' IDENTIFIED BY 'XXXXXXXXXX'; Query OK, 0 rows affected (0.00 sec)
念のため
mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec)
では、データをロードします。 データをアップし
dataich:dev dataich$ dotcloud run wordpress.data "cat > data.sql" < ~/Desktop/mysql_wp.dump # cat > data.sql Pseudo-terminal will not be allocated because stdin is not a terminal. Warning: Permanently added '[xxxxxxxx.dotcloud.com]:12428,[174.129.17.131]:12428' (RSA) to the list of known hosts.
SSHログインし
dataich:dev dataich$ dotcloud ssh wordpress.data # $SHELL Warning: Permanently added '[xxxxxxxx.dotcloud.com]:12428,[174.129.17.131]:12428' (RSA) to the list of known hosts. mysql@wordpress-default-data-0:~$
ロードします。
mysql@wordpress-default-data-0:~$ mysql -u dataich -p wordpress < data.sql
WordPressソースの移行
アプリケーションのディレクトリにwwwというディレクトリを作り、そこにCORESEVERから持ってきたソースを置きます。
DBの設定を行うため、wp-config.phpを編集します。
dotcloudでは/home/dotcloud/environment.jsonに各種サービスの設定が書かれます。それを読むようにしてあげればOKです。
dataich:dev dataich$ vi blog.dataich.com/www/wp-config.php
nginxの設定
パーマリンク設定をp=123の形から変えている場合は、nginxの設定が必要になります。それにはnginx.confを置いてあげればOKです。
dataich:dev dataich$ vi blog.dataich.com/www/nginx.conf
wp-contentディレクトリの扱い
このままだと1回目以降にPushした際にwp-content以下が消えてしまいます。それではまずいので、すでにwp-contentディレクトリが存在する場合は何もしないようにpostinstallスクリプトを書いておきます。(dotcloudのヘルプそのまんま)
dataich:dev dataich$ vi blog.dataich.com/www/postinstall
dataich:dev dataich$ chmod +x blog.dataich.com/www/postinstall
dotCloudへWordpressソースをPush
これで、動くはず!さあ、Push!!!
dataich:dev dataich$ dotcloud push wordpress blog.dataich.com # upload blog.dataich.com ssh://dotcloud@uploader.dotcloud.com:21122/wordpress # rsync Pseudo-terminal will not be allocated because stdin is not a terminal. Warning: Permanently added '[uploader.dotcloud.com]:21122,[184.73.14.49]:21122' (RSA) to the list of known hosts. building file list ... done ./ www/ .. .. .. www: http://xxxxxxxx.dotcloud.com/
上記、URLに正しくアクセスできました。
カスタムドメインの設定
まずはdotCloud側を設定します。aliasコマンドを使います。
dataich:~ dataich$ dotcloud alias add wordpress.www blog.dataich.com
Ok. Now please add the following DNS record:
blog.dataich.com. IN CNAME gateway.dotcloud.com.CNAMEでgateway.dotcloud.com.を設定するように言われるので、VALUE-DOMAIN側のドメイン設定を行います。
http://blog.dataich.com/
上記にアクセスし、動作確認。無事上記ブログをdotCloudで動かすことに成功しました。
ざっと確認したところ問題なし。これで暫く運用テストしてみます。
ここまでやっといてアレなのですが、そう負荷のない個人ブログを運用するにはちょっとお値段が辛いです。
もう少しリーズナブルなプランがあればいいのですが。。
Popularity: 10% [?]
MacでPPTP(VPN)接続しつつ、通常の接続も行えるようにする方法
MacでPPTP使ってVPN接続するようになって、いろいろと面倒だったことが解決して良かった。
と思っていたのですが、PPTPの方の優先度を上げないといけない場合は、通常の接続が駄目になってしまうようです。
VPN側にインターネットへの制限が掛かっていたりしたら、残念なことになります。
ローカルなネットワークにPPTPに繋ぎながら、それ以外は通常の経路で通信ということで下記にて解決しました。
方法としては、PPTPの優先度は通常のインターネット接続より下げておいて、特定のネットワークアクセスの場合のみPPTPインターフェースを使うようにしてあげればいいようです。VPNを接続した後、ターミナルで下記コマンドを実行すればOK。
sudo route -nv add -net 192.168.13 -interface ppp0
ただ毎回ターミナル上げるのは面倒臭いです。 ちょっと調べると、PPTPが開始するときに実行されるスクリプト(参考)があるじゃないですか。ということで
sudo vi /etc/ppp/ip-up #!/bin/sh if [ "$1" = "ppp0" ]; then /sbin/route -nv add -net 192.168.13 -interface ppp0 /sbin/route -nv add -net 192.168.15 -interface ppp0 fi
のような感じで、route add するスクリプトを書きました。
sudo chmod 744 /etc/ppp/ip-up
するのをお忘れなく。
もっと楽、シンプルな方法があったら教えてください。
Popularity: 19% [?]
Pacemakerが(いろんな意味で)スゴイ
といいますか、Linux-HA Japanがスゴイ。
webラジオペースメーカーには大変に心(のおもにダメなところ)を揺り動かされました。
そんで、オープンソースカンファレンス 2010 Fukuoka でとったメモ公開してなかったなぁ、と思い出したのでした。
プレゼンテーション資料を公開(http://linux-ha.sourceforge.jp/wp/archives/741)してくださってるので合わせてご覧ください。スライドだけで十分って気もしますが。
ラジオはともかく(好きですけども)、動画のかんたんペースメーカー入門はいいコンテンツですなー。
Popularity: 8% [?]
Wowza Media Server 2 でiPhoneへのオンデマンドストリーミング、ライブストリーミング
Wowza Media Serverのバージョン2が先日リリースされたのですが、Apple HTTP Live StreamingによるiPhoneへの配信が可能になりました。ということで試してみましたのでついでにCentOS5でのセットアップの手順を書きました。
Javaのインストール
[root@localhost ~]# yum install java
Wowza ServerのRPMインストール
WowzaサイトからLinux RPM版のURLを取得します。
また、実行に必要なシリアルNoも取得しておきます。(今回はWowza Server Developer Editionを取得しました。)
$ mkdir work $ cd work $ wget http://www.wowzamedia.com/downloads/WowzaMediaServer-2-0-0/WowzaMediaServer-2.0.0.rpm.bin $ chmod +x WowzaMediaServer-2.0.0.rpm.bin $ ./WowzaMediaServer-2.0.0.rpm.bin
Wowza Serverのライセンスキー設定及び実行
$ cd /usr/local/WowzaMediaServer/bin $ ./startup.sh Configure logging: file:///usr/local/WowzaMediaServer/conf/log4j.properties Please enter serial number: XXXXX-XXXXX-XXXXX-XXXXX-XXXXX #ここでシリアルNoを入力
サーバが起動しますので、一旦Ctrl+Cで停止します。
自動起動の設定
$ chkconfig WowzaMediaServer on $ chkconfig WowzaMediaServer --list WowzaMediaServer 0:off 1:off 2:on 3:on 4:on 5:on 6:off $ /etc/rc.d/init.d/WowzaMediaServer start #再度、Wowzaを起動
サンプルのインストール
$ cd /usr/local/WowzaMediaServer/examples/ $ ./installall.sh
オンデマンドをiPhoneで試す
オンデマンドアプリケーションの作成、設定
$ cd /usr/local/WowzaMediaServer/conf/ $ mkdir vod $ cp Application.xml vod/
http://hostname:1935/vod/mp4:Extremists.m4v/playlist.m3u8 にアクセスすると動画のストリーミングが開始されます。
ライブストリーミングをiPhoneで試す
ライブストリーミングアプリケーションの作成、設定
$ cd /usr/local/WowzaMediaServer/conf/ $ mkdir live $ cp Application.xml live/ $ vi live/Application.xml #Streams/StreamTypeをliveに変更 #Streams/LiveStreamPacketizersをcupertinostreamingpacketizerに変更(WowzaのドキュメントではStreamタグ内と書いてありませんでしたが、こちらに設定しないとうまくいきませんでした) #RTP/Authentication/PlayMethodをnoneに変更 #RTP/Authentication/PublishMethodをnoneに変更
ウェブキャストアプリケーションのインストール、放送
ここではWireCastを使用します。
こちらからWireCastをダウンロード、インストールし起動
ウィンドウ下部で使用するカメラを選択
メニュー > 放送 > 放送セッティングを選択し下記セッティングを用意する
- エンコーダープレ
エンコーダプレコンボボックスから編集を選択。ここでは下記のようにしました。 - デスティネーション
QuickTime ストリーミングサーバに知らせる。 - ホスト名
hostname:1935 - ロケーション
live/myStream.sdp(myStream部分は別名可) - ユーザ名、パスワード
なし(認証は試していません) - TCP経由ブロードキャスト
なし
上記で保存。
ウィンドウ左上の放送アイコンをクリック。これで放送が開始されます。
http://hostname:1935/live/myStream.sdp/playlist.m3u8 にアクセスするとライブストリーミングが開始されます。
Popularity: 70% [?]
OpenGrokをCentOS5にインストール
MOONGIFTさん経由で知ったのですが、OpenGrokはSCM(Subversion、Git、Mercurial等)上のソースコードを関数名、変数名その他で検索できるエンジンで、CDDLでオープンソースとして公開されています。この検索エンジンを使用する状況としては、「この関数ってどんな使い方?」、「某言語の某関数にバグがあるみたいなんだけど、うちのコードで使ってなかった?」といった時が考えられます。便利そうでしたのでCentOS5にインストールしてみました。
OpenGrokの動作に必要なctags、tomcat等をインストール
yum install ctags tomcat5 tomcat5-webapps
chkconfig tomcat5 onOpenGrok用ディレクトリを作成
mkdir /var/opengrok/ mkdir /var/opengrok/bin mkdir /var/opengrok/src #ここに解析対象のソースを置くことに mkdir /var/opengrok/data mkdir /var/opengrok/etc
OpenGrokをダウンロード・展開
mkdir work cd work wget tar xzvf opengrok-0.9-rc1.tar.gz mv opengrok-0.9-rc1/* /var/opengrok/
source.warを一度展開し、web.xmlを編集する
mkdir source cd source unzip /var/opengrok/lib/source.war vi WEB-INF/web.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #下記を追加 <web-app> ... <context-param> <param-name>DATA_ROOT</param-name> <param-value>/var/opengrok/data</param-value> <description>REQUIRED: Full path of the directory where data files generated by OpenGrok are stored</description> </context-param> <context-param> <param-name>SRC_ROOT</param-name> <param-value>/var/opengrok/src</param-value> <description>REQUIRED: Full path to source tree</description> </context-param> <context-param> <param-name>SCAN_REPOS</param-name> <param-value>false</param-value> <description>Set this variable to true if you would like the web application to scan for external repositories (Mercurial)</description> </context-param> ... </web-app> |
zip -r source.war ./ mv source.war /var/opengrok/lib/ cp /var/opengrok/lib/source.war /var/lib/tomcat5/webapps/
何かソースを取得しておく
cd /var/opengrok/src svn co file:///home/svn/project #何かチェックアウトしてみる
インデックス作成用スクリプトの編集
vi /var/opengrok/doc/run.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | #!/bin/sh #変更 PROGDIR=/var/opengrok # REQUIRED The root of your source tree #変更 SRC_ROOT=${PROGDIR}/src # REQUIRED The directory where the data files like # Lucene index and hypertext cross-references are stored #変更 DATA_ROOT=${PROGDIR}/data # OPTIONAL A tab separated files that contains small # descriptions for paths in the source tree PATH_DESC=${PROGDIR}/doc/paths.tsv # A modern Exubrant Ctags program # from http://ctags.sf.net #変更 EXUB_CTAGS=/usr/bin/ctags # If you need to set properties (Ex. override the mercurial binary) #PROPERTIES=-Dorg.opensolaris.opengrok.history.Mercurial=/home/trond/bin/hg # Uncomment the following line if your source contains Mercurial repositories. # SCAN_FOR_REPOS="-S" # You might want to add more available memory, and perhaps use a server jvm? #JAVA_OPTS="-server -Xmx1024m" LOGGER="-Djava.util.logging.config.file=logging.properties" #変更 java ${JAVA_OPTS} ${PROPERTIES} ${LOGGER} -jar ${PROGDIR}/lib/opengrok.jar ${SCAN_FOR_REPOS} -c ${EXUB_CTAGS} -W ${PROGDIR}/etc/configuration.xml -P -S -v -s ${SRC_ROOT} -d ${DATA_ROOT} # OPTIONAL java ${LOGGER} -classpath ${PROGDIR}/lib/opengrok.jar org.opensolaris.opengrok.web.EftarFile ${PATH_DESC} ${DATA_ROOT}/index/dtags.eftar |
chmod +x /var/opengrok/doc/run.sh
インデックス作成スクリプトの実行
/var/opengrok/doc/run.sh #このスクリプトをcron等で定期実行する
Tomcatの起動
/etc/rc.d/init.d/tomcat5 start
http://hostname:8080/source/ にアクセスし確認
Popularity: 37% [?]
yum の Proxy 設定でハマった
前回の Mac の Web 共有で Proxy で設定した Macbook 経由で CentOS 5 のサーバーで yum を使おうとして少しハマったのでメモ。
「export で proxy 設定してもダメ!」だったのでした。
http_proxy やら ftp_proxy やら設定しまくって、やっぱりだめで、ところが yum.conf を編集したらあっさり、さっくり、うまくいってしまったのでした。一時的に繋ぎたいだけなので yum.conf を触りたくなかったのですがしょうがないですね。
一般的にそうなのかはわからないのですが、そういうことがあったということで。
ちなみに、apt の場合は export で http_proxy (と必要なら ftp_proxy )環境変数を設定すれば OK。
Popularity: 16% [?]
Mac の Web 共有で Proxy
インターネットからは普段隔離しているお客様のサーバーに yum でソフトを入れたいという状況になりました。メンテナンスなどでインターネットに接続しなければならないときには別ネットワークのLANケーブルと差し替えるという運用なのですが、クライアントに影響が出るためお客様がクライアントを使用している時間帯には作業ができません。
しょうがないので「夜間に作業させてもらうようにお話しようかと思います」と弊社、峰松に相談したら「インターネットに接続したノートPCに Proxy 立ててネットワークに接続させてもらってそれ経由でインストールしたらどうかな?」と。
その手があったか!
ってなわけで、私の Macbook は3G回線でインターネットに接続できるのでコイツに Proxy を立てることします。Mac だと Web 共有で Apache2 が起動するのでこれを利用することにしました。
設定ファイル、/etc/apache2/httpd.conf を眺めるとProxy関係の module はロードされるようになっていました。
1 2 3 | LoadModule proxy_module libexec/apache2/mod_proxy.so LoadModule proxy_ftp_module libexec/apache2/mod_proxy_ftp.so LoadModule proxy_http_module libexec/apache2/mod_proxy_http.so |
追加の必要はなさそう。
最後に他の設定ファイルを読み込む
1 | Include /private/etc/apache2/other/*.conf |
という記述がありましたので Proxy の設定、 /private/etc/apache2/other/proxy.conf を作成しました。/private/etc/apache2/ と /etc/apache2/ って同じ場所を指してるみていですね。
proxy.conf はこんな感じ。
1 2 3 4 5 6 7 8 9 10 | <IfModule mod_proxy.c> ProxyRequests On ProxyVia On <Proxy *> Order deny,allow Deny from all Allow from 192.168.1 </Proxy> </IfModule> |
192.168.1.* からフルオッケーという漢らしい設定です。「システム環境設定」→インターネットとワイヤレスの「共有」で Web 共有を起動(起動済みの場合は再起動)すると Proxy が有効になります。
漢らしすぎるので普段はこの設定が読み込まれないように proxy.conf_ とかにしておいたほうがいいですね。Web 共有自体普段は切っていますが 、念のため。
Popularity: 12% [?]
Munin で PostgreSQL を監視する
- 2010/04/06
- murabe
- Munin
- PostgreSQL
- Ubuntu
PostgreSQL 大好きっ子なので PostgreSQL を監視するプラグインを追加するんだぜー。
PostgreSQL 監視用のプラグインはパッケージを導入した際にいくつか入ってます。
1 2 3 4 5 6 | $ ls -l /usr/share/munin/plugins/postgres* -rwxr-xr-x 1 root root 5377 2009-10-18 19:53 /usr/share/munin/plugins/postgres_block_read_ -rwxr-xr-x 1 root root 7777 2009-10-18 19:53 /usr/share/munin/plugins/postgres_commits_ -rwxr-xr-x 1 root root 2159 2009-10-18 19:53 /usr/share/munin/plugins/postgres_locks -rwxr-xr-x 1 root root 6118 2009-10-18 19:53 /usr/share/munin/plugins/postgres_queries_ -rwxr-xr-x 1 root root 7243 2009-10-18 19:53 /usr/share/munin/plugins/postgres_space_ |
もちろん /usr/share/munin/plugins/ には、PostgreSQL 用だけじゃなくていろんなプラグインが入ってます。いっぱい、いっぱい。
PostgreSQL のコネクション数の監視をするプラグインは残念ながらここにはないので
http://munin-monitoring.org/wiki/plugin-pg__connections
から取ってきました。
こいつも /usr/share/munin/plugins/ に置いて、実行できるようにしておきましょう。
1 | $ sudo chmod +x /usr/share/munin/plugins/pg__connections |
プラグインの設定方法はプラグインのファイルを開いて読むと書いてありますので、そのようにしていきます。
Munin のプラグインは /etc/munin/plugins/ ディレクトリにあるかどうかで管理されています。まずは、取ってきた pg__connections のシンボリックリンクを作成。
1 | $ sudo ln -s /usr/share/munin/plugins/pg__connections /etc/munin/plugins/pg_5432_connections |
プラグインのファイルの Usage には pg_
用意されているプラグインからも監視したい対象のプラグインをセットアップ。
1 2 | $ sudo ln -s /usr/share/munin/plugins/postgres_block_read_ /etc/munin/plugins/postgres_block_read_5432 $ sudo ln -s /usr/share/munin/plugins/postgres_space_ /etc/munin/plugins/postgres_space_5432 |
この2つにしました。
シンボリックリンクの最後にデータベース名を付けるように書いてありましたがこれらについてもポート番号の5432にしてみました。これらのプラグインでは付けた文字列がグラフのタイトルで使用されるのでちゃんと考えて付けましょう。
ちなみに postgres_block_read_5432 だとグラフのタイトルが「:: Postgres data reads from 5432」となります。postgres_space_5432 の方は「:: Postgres database 5432」となって、データベースの容量に関するグラフのタイトルとしてはイマイチな感じになっちゃいました。
PostgreSQLのプラグインについては設定ファイルに記述がないので設定を追記する必要があります。
1 | $ sudo vi /etc/munin/plugin-conf.d/munin-node |
私の実験環境での設定ですが、次のように追記しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 | [postgres_*] env.PGHOST 127.0.0.1 env.PGPORT 5432 env.PGDATABASE postgres env.PGUSER postgres env.PGPASSWORD trust [pg_5432_connections] env.dbhost 127.0.0.1 env.dbport 5432 env.dbname postgres env.dbuser postgres env.dbpass trust |
[postgres_*] は postgres_ が頭に付いているプラグインの設定、すなわち、用意されているプラグインの設定です。
[pg_5432_connections] はパラメータ名なども異なりますし別途書く必要があります。
実験環境の PostgreSQL の 接続設定は 127.0.0.1 からは trust にしています。よって、データベースの接続にパスワードは不要なのですが、何か書いていないとエラーなったので仮に trust としています。
PostgreSQL 側でやらなければならない設定として「postgresql.conf の stats_start_collector = true として統計情報収集器を有効にせよ」的なことも書いてありますが、PostgreSQL 8.3 以降、この設定は削除され、UDP ソケットの作成に成功したら必ず統計情報収集器が起動するようになったようです(http://www.sraoss.co.jp/technology/postgresql/8.3/ 参照)。
あとは Munin-Node を再起動すればOK、と言いたいところですが、実はこれでは動かない場合があります。 libdbd-pg-perl が入っていない場合です。プラグインが PostgreSQL にアクセスするのに使っているのです。
Ubuntu に Munin をインストールする時には入りませんでしたので、libdbd-pg-perl が入っていない場合には別途インストールする必要があります。
1 | $ sudo aptitude install libdbd-pg-perl |
こんどこそ、準備OK。Munin-Node を再起動します。
1 2 3 4 5 | $ sudo /etc/init.d/munin-node restart * Stopping Munin-Node ...done. * Starting Munin-Node ...done. |
再起動完了。
1 | $ tail -n 20 /var/log/munin/munin-node.log |
ってな感じで、 Munin-Node のログを見てエラーが出てないか確認すると良いでしょう。データがないせいで正常動作をしていてもエラーが出ていたりする場合もあります。内容で判断するしかないですね。
しばらく待つと、こんな感じに PostgreSQL のリソースのグラフが追加されたページが生成されます。
.png)
Popularity: 38% [?]




1.png)
