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
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
これでひと通りの設定が終わりました。
自動起動設定
最後に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設定のカスタマイズ、監視設定等について書いていこうと思います。