読者です 読者をやめる 読者になる 読者になる

ブログ?

もうだめぽ

nginx + Nagios のインストール(後編)

前編に続き、今回はNagiosのWebコンソール表示に必要な設定をしていきます。
configureスクリプトを実行した時に表示されていたように、/nagiosへのエイリアスを設定します。

これです。

 Web Interface Options:
 ------------------------
                 HTML URL:  http://localhost/nagios/
                  CGI URL:  http://localhost/nagios/cgi-bin/
 Traceroute (used by WAP):  /bin/traceroute

nginxのコンフィグに下記の通り追記します。

$ sudo vi /etc/nginx/conf.d/default.conf

server {
....
....
....
  location /nagios {
    alias /usr/local/nagios/share;
    index index.php;
    auth_basic            "Nagios Access";
    auth_basic_user_file  /usr/local/nagios/etc/htpasswd.users;
  }
}

Basic認証設定

Basic認証のパスワードファイルを作成します。
なお、ここで設定したユーザIDについてはWebコンソールでのアクセス制御に用います。

# sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
New password: 
Re-type new password: 
Adding password for user nagiosadmin

ちなみに、ディストリビューションのバージョンによってはデフォルトでCryptを使った暗号化がされるので気をつけてください。
長いパスワードを設定しても9文字目からは効果がありません。
※Fedora16ではMD5がデフォルトになっているので問題ありません

PHP関連の設定

nginxはデフォルトのままではPHPを処理してくれないので、php-fpmを使って設定してみます。
user, groupがapacheになっているのでnginxへと書き換えます。

$ sudo vi /etc/php-fpm.d/www.conf 

user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx

次にnginxの設定も変更します。

$ sudo vi /etc/nginx/conf.d/default.conf

  location ~ ^/nagios/(.*\.php)$ {
    alias /usr/local/nagios/share/$1;
    include /etc/nginx/fastcgi.conf;
    fastcgi_pass 127.0.0.1:9000;
    auth_basic            "Nagios Access";
    auth_basic_user_file  /usr/local/nagios/etc/htpasswd.users;
  }

後はphp-fpmの起動、nginxの再起動を実施します。

$ sudo systemctl start php-fpm.service
$ sudo systemctl restart nginx.service

ブラウザで http://IPアドレス/nagios/ へアクセスするとWebコンソールが表示されるようになります。
f:id:unyu1979:20120113120818j:plain

CGI関連の設定

CGIの実行にはspawn-fcgiとfcgiwrapを用います。

まずはfcgiwrapをインストールします。

$ git clone git://github.com/gnosek/fcgiwrap.git
$ cd fcgiwrap
$ autoreconf -i
$ ./configure && make && sudo make install

続いてspawn-fcgiの設定をします。

$ sudo vi /etc/sysconfig/spawn-fcgi

FCGI_SOCKET=/var/run/fcgiwrap.socket
FCGI_PROGRAM=/usr/local/sbin/fcgiwrap
FCGI_USER=nginx
FCGI_GROUP=nginx
FCGI_EXTRA_OPTIONS="-M 0700"
OPTIONS="-u $FCGI_USER -g $FCGI_GROUP -s $FCGI_SOCKET -S $FCGI_EXTRA_OPTIONS -F 1 -P /var/run/spawn-fcgi.pid -- $FCGI_PROGRAM"

spawn-fcgiを起動して

$ sudo systemctl start spawn-fcgi.service

nginxに設定を追加して

$ sudo vi /etc/nginx/conf.d/default.conf

  location ~ ^/nagios/(.*\.cgi)$ {
    root /usr/local/nagios/sbin/;
    rewrite ^/nagios/cgi-bin/(.*)\.cgi /$1.cgi break;
    fastcgi_param AUTH_USER $remote_user;
    fastcgi_param REMOTE_USER $remote_user;    
    include /etc/nginx/fastcgi.conf;
    fastcgi_pass  unix:/var/run/fcgiwrap.socket;
    auth_basic            "Nagios Access";
    auth_basic_user_file  /usr/local/nagios/etc/htpasswd.users;
  }  

nginxを再起動して終わり。

$ sudo systemctl restart nginx.service

これでひと通りの設定が終わりました。

f:id:unyu1979:20120113124050j:plain

自動起動設定

最後にnginx, php-fpm, spawn-fcgiの自動起動設定をします。

$ sudo systemctl enable nginx.service php-fpm.service spawn-fcgi.service
$ sudo chkconfig nagios on

nagiosのみchkconfigを用いていますが、他もchkconfigで問題ありません。
native serviceではないということで結局はchkconfigが実行されます。

nginx.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig nginx on

これでnginx + Nagios を用いた監視サーバの構築ができました。
今後は監視で取得したデータのグラフ化やNagios設定のカスタマイズ、監視設定等について書いていこうと思います。