Nagios is one of the popular network and systems monitoring tool available. There are two main flavours of Nagios, Nagios XI the enterprise software and Nagios-Core the “Open-Source” version. This post serves as a tutorial on setting it up on FreeBSD 10.1-Release that runs inside a vSphere environment.
Update FreeBSD base system
freebsd-update fetch freebsd-update install
Get FreeBSD Ports Tree
portsnap fetch extract update
One of the strength of FreeBSD is the FreeBSD ports tree which is a huge repository of make files for installation in FreeBSD. FreeBSD ports tree are maintained by the FreeBSD ports team and they are well maintained and very much up to date. Software can be compiled from source with the use of additional flags made possible by the make system in FreeBSD. If compiling is not your cup of tea, FreeBSD 10 also has the pkg system where binary packages are download from a repository tree much like yum in RHEL/Centos and apt-get in Debian/Ubuntu.
Setting Up OpenSSL
With a handful of SSL related vulnerabilities made public this year, it is advisable to use the Ports version of OpenSSL as it is much more current as compared with the one that came with the base OS. Many applications have a dependency on OpenSSL for SSL connections, so it is advisable to install this first in a new system.
cd /usr/ports/security/openssl make config-recursive make install clean
In order to use the ports version of openssl we need to edit /etc/make.conf,
echo "WITH_OPENSSL_PORT=YES" >> /etc/make.conf
Configuring OpenSSL
mv /usr/bin/openssl /usr/bin/openssl.default ln -s /usr/local/bin/openssl /usr/bin/ cp /usr/local/openssl/openssl.cnf.example /usr/local/openssl/openssl.cnf
Setting Up PortMaster
PortMaster is a tool to manage the ports that are installed on the FreeBSD system which includes easy upgrading of ports.
cd /usr/ports/ports-mgmt/portmaster make config-recursive make install clean
Open-VM-Tools
Although VMware freebsd tools works, VMware is always slow in the release of the tools for FreeBSD.
cd /usr/ports/emulators/open-vm-tools-nox11/ make config-recursive make install clean
Make sure that the Open-VM-Tools works on reboot by editing the /etc/rc.conf
vmware_guest_vmblock_enable="YES" vmware_guest_vmhgfs_enable="YES" vmware_guest_vmmemctl_enable="YES" vmware_guest_vmxnet_enable="YES" vmware_guestd_enable="YES"
Vim-Lite
We all need our favourite text editor to configure Nagios and other configuration files.
cd /usr/ports/editors/vim-lite make config-recursive make install clean
edit ~/.vimrc
syntax on set background=dark set shiftwidth=2 set tabstop=2 set nocompatible set expandtab set autoindent set ruler if has("autocmd") filetype plugin indent on endif set showcmd " Show (partial) command in status line. set showmatch " Show matching brackets. set ignorecase " Do case insensitive matching set smartcase " Do smart case matching set incsearch " Incremental search set hidden " Hide buffers when they are abandoned set backspace=indent,eol,start set mouse=
SSMTP
Refer to this article to setup an authenticated system email with Gmail.
Web Server
Nagios has a web based dashboard to provide an overview of the state of the monitored machines.
Install Apache24 cd /usr/ports/www/apache24 make config-recursive make install clean vim /etc/rc.conf apache24_enable=yes
Install PHP 5.6
cd /usr/ports/lang/php56 make config-recursive make install clean
Install PHP56-extensions
cd /usr/ports/lang/php56-extensions make config-recursive make install clean
Install PHP56 Apache module
cd /usr/ports/www/mod_php56 make config-recursive make install clean
Edit httpd.conf to insert the following to the configuration file
<FilesMatch ".php$"> SetHandler application/x-httpd-php </FilesMatch> <FilesMatch ".phps$"> SetHandler application/x-httpd-php-source </FilesMatch>
cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
cd /usr/ports/net-mgmt/nagios4 make config-recursive make install clean
Ensure that mod_cgi is enabled in /usr/local/etc/apache24/httpd.conf by uncommenting the following line
LoadModule cgi_module libexec/apache24/mod_cgi.so
Restart the apache service to check if nagios is accessible.
More about the installation and configuration of Nagios to follow. 🙂