現在は Web サーバやメールサーバを お名前.com の VPS サーバ上で動かすようにしているのですが、これが非常に不安定で困っています。
Apache や Postfix, BIND 等のプロセスが突然すべて落ちてしまうというひどい現象が起きてしまっていたのでサポートに問い合わせたところ、メモリーの使用量は500MB以内に調整するように、とのことでした。
契約時には単に基本512MB、最大1GBとだけ書いてあったので1GB まで使えるはずと思っていたのですが、現在は表記が変わって「各VPSには基本メモリとして512MBが割り当てられています。ハードウェアのリソースに余裕がある場合は最大1GBまで割り当てられます。」というかたちになっています。(また、先日、月額1,050円のメモリ追加オプションも加わったようです。)
それにしても普段は free で total 1GB と表示されるのに、リソースが足りなくなったら 512 MB になって、その状態でメモリー不足だとプロセスを強制終了させる、というはちょっとひどい話です。
(そして FAQ が追加されました。
http://www.onamae-server.com/support/faq/vps/common/common_49.php)
そんなわけでいつ落ちるか分からないプロセス(と、メモリー量)を監視するために Zabbix でサーバを監視することにしました。
VPS サーバ自体が落ちてしまっては監視できないので、Zabbix サーバは手元の(事務所内の)サーバに置き、VPS サーバでは Zabbix エージェントのみを動作させて、手元サーバからリモート監視することにしました。
ところが、これまたお名前 VPS の制限で、外部から接続可能なポートはあらかじめ制限されてしまっていて、iptables 等の設定ではどうにもなりません。
http://www.onamae-server.com/support/faq/vps/common/common_28.php
(「今後お客様のご要望を元に弊社にて検討をさせていただきたく存じます」とあるので、一応サポートに要望は書いたのですが、脈なしという印象の返答でした。)
しょうがないので Zabbix サーバ (事務所内) から
$ ssh -f -N -L 20050:localhost:10050 vps-server
といったかたちでトンネルをつくった上で、Zabbix サーバ上から VPS サーバへの 10050 アクセスをローカル 20050 (トンネルのポート)に書き換えるようにして対処しました。
# iptables -t nat -A OUTPUT -p tcp -d vps-server –dport 10050 -j DNAT –to-destination 127.0.0.1:20050
これでリモート監視はできるようになったので、空メモリー量や全メモリー量(これが変わるんだから…)の監視設定を強化して、また障害時には携帯にメールを送るように設定しました(メールサーバも落ちるから!)。
VPS サーバ上でのウィルススキャンを止めるなどしてメモリーをなるべく使わないようにしたので最近はプロセスが止まるまでの異常は起きていないのですが、今日も何度かメモリー不足(total が 512 MB になってた)の警告が届いて、あんまり安心はできない状態です。
メモリーは最近増量オプションも加わったので、これを使えばもう少し安定するのかも、とも思うのですが、やっぱりあまり長くは利用できそうにないなぁ、という印象です。ちょっとでもシリアスな使い方をするなら、これはないよな、というのが分かってきました。
さくらあたりの専用サーバにでも乗り変えないといけないですかねぇ…。
(2010年7月15日追記)
結局 Web サーバの運用には不安定すぎたので、Web サーバ(このブログも)は3月にさくらインターネット(レンタルサーバ スタンダード)に移しています。(メールはDNSはこの VPS に残しています。)
webadmin(10080)を落として
Zabbixを10080でリッスンする手もあります。