zabbixのagentでphp-fpmの監視をどうするかなぁと思ったけど、Google先生に聞いてみたら、テンプレートがあった。php-fpmでステータスを吐き出させるようにしておいて、zabbixエージェントとphp-fpmのステータス表示をつなげるシェルを置いておく、という方式のようで。
Template php-fpm:
https://github.com/jizhang/zabbix-templates/tree/master/php-fpm
ただつらつらと日記が書かれていくようです。
zabbixのagentでphp-fpmの監視をどうするかなぁと思ったけど、Google先生に聞いてみたら、テンプレートがあった。php-fpmでステータスを吐き出させるようにしておいて、zabbixエージェントとphp-fpmのステータス表示をつなげるシェルを置いておく、という方式のようで。
Template php-fpm:
https://github.com/jizhang/zabbix-templates/tree/master/php-fpm
…実にがっかりなことでハマったので記録しておくことにする。
さくらのVPSにnginxとfastcgiのPHPをインストールしてある。要するにHTTPはnginxが受け付けて、PHPのリクエストに関しては、nginxからFastCGIで常駐しているPHP-cgiを呼び出して処理する…そんな構成になっている。
このサーバでは、WordPressが動いているのだが、nginxが軽いせいか、普通にApache httpd+mod_php5の組み合わせよりも体感速度は速い。
nginxとFastCGIで起動してあるphp-cgiは連携はしているものの、起動するプロセスの数を制御する関係にはないので、FastCGIで常駐しているphp-cgiの数以上は同時にリクエストを捌けないという欠点もある。しかし、この欠点が問題になるようなシーンでは、動的にいくつもプロセスを起動すれば解決するような気もしない(結局、山ほどプロセス起動してみても、足りないリソースが増えるわけじゃないし)から、あんまり気にしてない。裏側のphp-cgiが足りなくなったら、nginxがBad Gatewayあたりを返しそうな気がするから、それを見かけたら、リソース見合いでFastCGIで起動するphp-cgiの数を増やすかなぁという感じ。
そんな構成のサーバに対して、久々にメンテナンスでもするかってことで、PHP5のバージョンアップを行うことにした。
いつも通りのPHPのビルドオプションでビルド(…実はコレがまずかったのだが、すぐに気づくこともなく…)に成功。make installでインストールを完了して、CLIのPHPを実行してみたら、普通に動作するのだが、php-cgiを常駐させるために使っているspawn-fcgiがうまく動かない。
メンテナンス前に普通に使えていた起動スクリプトからphp-cgiを常駐させようとしても、なぜか、子プロセスがexitしてしまい、pidファイルがむなしく残る…と。いろんなログを見てみても、何も出力されておらず、ただ、起動直後に子プロセスがexitしていることだけがわかった。
まぁ、PHPを新バージョンにするまでは普通に動いていたわけだから、PHPが問題ってのはわかったので、1バージョン前のPHPをビルドし直してみたり、なぜかspawn-fcgiのバージョンを更新してみたり…ひたすら迷走。
ふと、PHPのビルドオプションを確認し直しているときに、軽いめまいが…。いつものPHPのビルドオプション=Apache httpd + mod_php5用なんだった(涙)端的に言えば、FastCGIで常駐させるってのにPHP5のビルドオプションに「–enable-fastcgi」が追加されてなかった。そりゃ、起動スクリプトで起動しようとしても終了するわけだ(汗)
…というわけで、PHP5を「–enable-fastcgi」付でビルド(実は、ダメ押しで「–with-fastcgi」なんて謎のオプションつけてconfigureかけちゃったのは秘密)したら、何事もなくFastCGIでphp-cgiを常駐させられた…と。
ま、いくらネタがないからってケアレスミス(構成管理ミス…か)をネタにしちゃいけないなぁ…なんて思いながら、しっかり書いちゃった(汗)
© 2024 ただのにっき。
Theme by Anders Noren — 上へ ↑