(」・ω・)」うー!(/・ω・)/にゃー!

Nginx + Nagios at Debianの設置

| Comments

今回のサーバにはまだ監視を入れていなかったので、Nagiosを入れる。 例のごとくWebサーバがnginxなのだが、debianのNagiosパッケージは勝手にApacheとmod_phpを入れるので却下。

ソースからinstallして、php-fpmとfcgiwrapを使う。

nagiosユーザの準備

まずはnagios管理用のuserを作る。nginxもnagiosのあれこれをいじれるようにwww-dataユーザもグループに追加。

1
2
3
% sudo useradd nagios
% sudo usermod -a -G nagios www-data
$ sudo usermod -d /usr/local/nagios

nagiosのインストール

必要ライブラリから。 nagiosをインストールするのだが、こいつのコンパイルにはgdのheaderが推奨される。 自分の環境では、libgd2-noxpmが入っていたので、これの-devを入れた。

1
% sudo apt-get install libgd2-noxpm-dev

あとは普通に進める。coreとpluginsをいれればOKなので、本家サイトから取ってくる

1
2
3
4
% wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.3.1.tar.gz
% wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz
% tar xvzf nagios-3.3.1.tar.gz
% tar xvzf nagios-plugins-1.4.15.tar.gz

コンパイル。configureの際、prefixが元々/usr/local/nagiosに、userもnagiosになっているので、特に指定なしでok

1
2
3
% cd nagios
% ./configure
% make all

make allが終わると、install用の各種コマンドが表示される。 今回は、Apache用の設定とかいらないので、以下の4つ。

1
2
3
4
% sudo make install 
% sudo make install-init
% sudo make install-commandmode
% sudo make install-config

これでインストール完了。次にpluginを入れる。 configureしたときにperlがperlbrewの中の物を見ちゃってほんのり心配だったので、rootで作業に切り替えた。

1
2
3
# cd nagios-plugins-1.4.15
# ./configure
# make && make install

なお、自分がこれでstartしようとしたときには/usr/local/nagios/var/spool/checkresultsのディレクトリがなくて怒られていたので、これも作った。

1
% sudo -u nagios mkdir -p /usr/local/nagios/var/spool/checkresults

これでstart

1
% sudo /etc/init.d/nagios start

Snoopyを入れておく

なんでか、nagiosを持ってきたらMagpieRSSの中で使われているSnoopyが空でエラーをはいていたので、別途入れてやる。

1
2
% cd /usr/local/nagios/share/includes/rssextlib/
% wget -O Snoopy.class.inc http://snoopy.cvs.sourceforge.net/viewvc/snoopy/Snoopy/Snoopy.class.php

nginxの設定

PHPの実行にはphp-fpm、cgiの実行にはfcgiwrapを使う。

1
2
3
% sudo apt-get install php5-fpm fcgiwrap
% sudo /etc/init.d/php5-fpm
% sudo /etc/init.d/fcgiwrap

もしかすると、元々起動してるかも。 php-fpmはデフォルトではinet socketで9000番を使うようになっているが、個人的にunix socket経由で使いたかったので、これを変更する。

1
2
% sudo vi /etc/php/fpm/php-fpm.conf
listen = /var/run/php5-fpm.sock

あとは、site-availableに以下のような内容で作る。 ログディレクトリの作成も忘れずに。

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
% sudo vi /etc/nginx/site-available/nginx

server {
    root /usr/share/nginx/www;
    index index.php index.html index.htm;

    server_name nagios.example.com;
    access_log /var/log/nginx/nagios/access.log;
    error_log  /var/log/nginx/nagios/error.log;

    location / { 
        try_files $uri $uri/ /index.php;
    }   

    location /nagios/ {
        alias /usr/local/nagios/share/;
    }   

    location ~ /nagios/(.*\.php)$ {
        alias /usr/local/nagios/share/$1;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
    }   

    location ~ \.cgi$ {
        root /usr/local/nagios/sbin/;
        rewrite ^/nagios/cgi-bin/(.*)\.cgi /$1.cgi break;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/fcgiwrap.socket;
    }   

}

これをsite-enabledにsymlinkを張って、nginxをrestart

1
% sudo /etc/init.d/nginx restart

以上で完了。

Comments