暇人じゃない

Cacti で nginx を監視する

Cacti をインストールしたついでに、Cacti から nginx を監視できるように設定したメモです。

nginx の状態を取得するスクリプトやグラフのテンプレートについては以下のサイトで配布されている物を使用します。

Cacti • View topic - scripts and templates for nginx
http://forums.cacti.net/about26458.html

nginx の設定

# /etc/nginx/sites-available/test
location /nginx_status {
    stub_status on;
    access_log  off;
    allow       127.0.0.1;
    deny        all;
}

sudo nginx -s reload で設定ファイルをリロードしておきます。

stub_status を使用するには、nginx をコンパイルする時に --with-http_stub_status_module オプションをつける必要がありますが、パッケージからインストールした場合はデフォルトで有効になっています。

スクリプトのセットアップ

Cacti のインストールしたディレクトリにある script ディレクトリに以下のスクリプトを設置します。

$ sudo cp get_nginx_clients_status.pl /var/www/test/public_html/cacti/scripts/
$ sudo cp get_nginx_socket_status.pl /var/www/test/public_html/cacti/scripts/
$ sudo chown cacti:cacti /var/www/test/public_html/cacti/scripts/get_nginx_clients_status.pl
$ sudo chown cacti:cacti /var/www/test/public_html/cacti/scripts/get_nginx_socket_status.pl

nginx の状態が取得できるか確認する:

$ ./get_nginx_clients_status.pl http://localhost/nginx_status
nginx_active:1 nginx_reading:0 nginx_writing:1 nginx_waiting:0
$ ./get_nginx_socket_status.pl http://localhost/nginx_status
nginx_accepts:1004 nginx_handled:1004 nginx_requests:1004

テンプレートを Cacti にインポートする

console の Import Templates を開き、以下のテンプレートをインポートします。

New Graphs を見てみると、テンプレートが追加されています。

それぞれのテンプレートを追加するときに、stub_status にアクセスするための URL を聞かれるので、nginx で設定したように書きます。

ここでは http://localhost/nginx_status としました。

しばらくすると、他のグラフの時と同じように、グラフが生成されると思います。

Munin も良いよ!と聞いたので、試してみたいですね。