NOTES - General
This is NOT a guide to configure Nagios. Rather it shows how to configure nginx, serving PHP via php-fpm and CGI via fcgiwrap for the Nagios server.
Notes - php-fpm
The default is to use a tcp socket. This configuration instead uses a unix socket for better performance/lower overhead.
Using the quarterly packages on FreeBSD 11.1-RELEASE, this resulted in:
www/fcgiwrap-1.1.0_8
net-mgmt/nagios4-4.3.4_1,1
www/nginx-1.12.2_11,2
EDIT: I discovered later that in order for the map functionality to work I also needed to install php56-filter. However this does not prevent Nagios from being usable. You should check which version of php is installed though.
Edit these files accordingly:
/usr/local/etc/php-fpm.conf
/etc/rc.conf
/usr/local/etc/nginx.conf
Inside the server declaration
visit the /nagios folder on the server, you should be asked to authenticate (user: nagiosadmin, passwd: admin).
If everything is successful, you should be seeing this. The column on the left was generated with PHP, while the text was from CGI.
Problems
These are the files to look in:
/var/log/nginx/*.log
/var/log/php-fpm.log
You may also want to add to /etc/rc.conf
fcgiwrap_flags="-f"
which redirects errors into the web server log (/dev/null is the default).
This is NOT a guide to configure Nagios. Rather it shows how to configure nginx, serving PHP via php-fpm and CGI via fcgiwrap for the Nagios server.
Notes - php-fpm
The default is to use a tcp socket. This configuration instead uses a unix socket for better performance/lower overhead.
pkg install net-mgmt/nagios4 www/nginx www/fcgiwrap
Using the quarterly packages on FreeBSD 11.1-RELEASE, this resulted in:
www/fcgiwrap-1.1.0_8
net-mgmt/nagios4-4.3.4_1,1
www/nginx-1.12.2_11,2
EDIT: I discovered later that in order for the map functionality to work I also needed to install php56-filter. However this does not prevent Nagios from being usable. You should check which version of php is installed though.
Edit these files accordingly:
/usr/local/etc/php-fpm.conf
Code:
#listen = 127.0.0.1:9000
listen = /var/run/php-fpm.sock
listen.owner = www
listen.group = www
listen.mode = 0660
/etc/rc.conf
Code:
nagios_enable="YES"
fcgiwrap_enable="YES"
fcgiwrap_user="www"
fcgiwrap_group="www"
fcgiwrap_socket_mode="0660"
fcgiwrap_socket_owner="www"
fcgiwrap_socket_group="www"
nginx_enable="YES"
php_fpm_enable="YES"
/usr/local/etc/nginx.conf
Inside the server declaration
Code:
location /nagios {
auth_basic "Restricted";
auth_basic_user_file /usr/local/www/nagios/.htpasswd;
alias /usr/local/www/nagios;
index index.php;
location ~ \.php$ {
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}
location ~ \.cgi$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_pass unix:/var/run/fcgiwrap/fcgiwrap.sock;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param REMOTE_USER $remote_user;
}
}
( echo -n "[B]nagiosadmin[/B]:" ; openssl passwd -salt SALT -crypt [B]admin[/B] ) > /usr/local/www/nagios/.htpasswd;
service php-fpm start
service fcgiwrap start
service nginx start
service nagios start
visit the /nagios folder on the server, you should be asked to authenticate (user: nagiosadmin, passwd: admin).
If everything is successful, you should be seeing this. The column on the left was generated with PHP, while the text was from CGI.
Problems
These are the files to look in:
/var/log/nginx/*.log
/var/log/php-fpm.log
You may also want to add to /etc/rc.conf
fcgiwrap_flags="-f"
which redirects errors into the web server log (/dev/null is the default).
sockstat -l
Code:
USER CMD PROTO LOCAL ADDRESS
www fcgiwrap stream /var/run/fcgiwrap/fcgiwrap.sock
www nginx tcp4 *:80
www php-fpm stream /var/run/php-fpm.sock
ls -l /var/run/fcgiwrap/fcgiwrap.sock /var/run/pgp-fpm.sock
Code:
srwxr-xr-x www wheel /var/run/fcgiwrap/fcgiwrap.sock
srw-rw---- www www /var/run/php-fpm.sock
Last edited: