Introduction
This guide is intended to provide you with simple instructions on
how to install Nagios from source (code) on Fedora and have it
monitoring your local machine inside of 20 minutes. No advanced
installation options are discussed here - just the basics that will
work for 95% of users who want to get started.
These instructions were written based on a standard RHEL 6.3 Linux distribution.
What You'll End Up With
If you follow these instructions, here's what you'll end up with:
Nagios and the plugins will be
installed underneath /usr/local/nagios
Nagios will be configured to
monitor a few aspects of your local system (CPU load, disk usage,
etc.)
- The Nagios web interface will be accessible at
http://localhost/nagios/
Prerequisites
During portions of the installation you'll need to have root
access to your machine.
Make sure you've installed the following packages on your Fedora
installation before continuing.
Apache
PHP
GCC compiler
- GD development
libraries
You can use yum to install these packages by running the
following commands (as root):
1) Create Account Information
Become the root user.
Create a new
nagios user account and give it a password.
/usr/sbin/useradd -m nagios
passwd nagios
Create a new nagcmd group for allowing external commands to be
submitted through the web interface. Add both the nagios user and the
apache user to the group.
/usr/sbin/groupadd nagcmd
/usr/sbin/usermod -a -G nagcmd nagios
/usr/sbin/usermod -a -G nagcmd apache
2) Download Nagios and the
Plugins
Create a directory for storing the downloads.
mkdir ~/downloads
cd ~/downloads
3) Compile and Install Nagios
Extract the Nagios source code tarball.
cd ~/downloads
tar xzf nagios-3.2.3.tar.gz
cd nagios-3.2.3
Run the Nagios configure script, passing the name of the group you
created earlier like so:
./configure --with-command-group=nagcmd
Compile the Nagios source code.
Install binaries, init script, sample config files and set
permissions on the external command directory.
make install
make install-init
make install-config
make install-commandmode
Don't start Nagios yet - there's still more that needs to be done...
4) Customize Configuration
Sample configuration
files have now been installed in the /usr/local/nagios/etc
directory. These sample files should work fine for getting started
with Nagios. You'll need to make just one change before you
proceed...
Edit the /usr/local/nagios/etc/objects/contacts.cfg config
file with your favorite editor and change the email address
associated with the nagiosadmin contact definition to the
address you'd like to use for receiving alerts.
vi /usr/local/nagios/etc/objects/contacts.cfg
5) Configure the Web Interface
Install the Nagios web config file in the Apache conf.d directory.
Create a nagiosadmin account for logging into the Nagios web
interface. Remember the password you assign to this account - you'll
need it later.
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Restart Apache to make the new settings take effect.
service httpd restart
Note: Consider implementing the ehanced CGI security measures described here
to ensure that your web authentication credentials are not compromised.
[root@station1 ~]# htdigest -c /usr/local/nagios/etc/.digest_pw "Nagios Access" \
nagiosadmin
Adding password for nagiosadmin in realm Nagios Access.
New password:
Re-type new password:
[root@station1 ~]# vim /etc/httpd/conf.d/nagios.conf
9 ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"
10
11 <Directory "/usr/local/nagios/sbin">
12 SSLRequireSSL
13 Options ExecCGI
14 AllowOverride None
15 Order allow,deny
16 # Allow from all
17 # Order deny,allow
18 # Deny from all
19 Allow from 127.0.0.1 10.65.62.30
20 AuthName "Nagios Access"
21 AuthType Digest
22 AuthUserFile /usr/local/nagios/etc/.digest_pw
23 Require valid-user
24 </Directory>
25
26 Alias /nagios "/usr/local/nagios/share"
27
28 <Directory "/usr/local/nagios/share">
29 SSLRequireSSL
30 Options None
31 AllowOverride None
32 Order allow,deny
33 # Allow from all
34 # Order deny,allow
35 # Deny from all
36 Allow from 127.0.0.1 10.65.62.30
37 AuthName "Nagios Access"
38 AuthType Digest
39 AuthUserFile /usr/local/nagios/etc/.digest_pw
40 Require valid-user
41 </Directory>