Sie sind auf Seite 1von 32

Telecommunications Management Network : TMN

Classe Level : Ingnieur des Travaux de


Tlcommunications (IGTT2-T 2012)

Works: Management and Oversee systems


Through Open Source Tools

Teacher: Dr A. D. KORA

Assistant works: Moindze S

Nagios Quickstart Installation Guides on Ubuntu 10.04 LTS


1. Installation Introduction

1.1.About Nagios

Visit www.nagios.org/about/ for more information on Nagios - including features, capabilities, and
technical specifications.

These quickstart guides are intended to provide you with simple instructions on how to install Nagios
from source (code) and have it monitoring your local machine and your network LAN inside of 20
minutes.

You can also find additional quickstart guides on the Nagios Community Wiki. Cant find a quickstart
for your particular OS? Write one and post it to the wiki for others. If you are installing Nagios on an
operating system or Linux distribution that isnt listed above, read the Fedora quickstart for an
overview of what youll need to do. Command names, paths, etc. vary widely across different OSes /
distributions, so youll likely need to tweak the installation docs a bit to work for your particular case.

These instructions were written based on an Ubuntu 10.04 LTS (desktop) installation. They should
work for an Ubuntu 10.04 or higher install as well.

1.2.What Youll End Up With

If you follow these instructions, heres what youll 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/ or http://ip-addressserver/nagios/ if that ip-addrerss-server is the IP address for your Nagios server.

2. Required Packages

2.1.installation of dependencies packets for system linux

Make sure youve installed the following packages on your Ubuntu installation before continuing.

You can use apt-get or aptitude command to install these packages by running the following
commands:
With apt-get install nom-paquet or aptitude install nom-paquet with nom-paquet is the name that you
want to install. But its necessary to have internet connexion on you your linux server.
Its necessary login with user root for privileges of installation.

# apt-get install vim ; for installing editor file vim


# apt-get install gcc g++; for installing compilator
# apt-get install apache2 ; for installing wb interafce
# apt-get install php5

; for php scripts

# apt-get install build-essential autoconf automake libxmu-dev gcc-4.3 ; for installing packets
system

Notes: the symbol ; here mean comment for explain.

2.2.Required packets for installation Nagios


Make sure youve installed the following packages on your Ubuntu installation before continuing.
 Apache 2
 PHP 5 or higher
 GCC compiler and development libraries

 GD development libraries
You can use apt-get to install these packages by running the following commands:
# apt-get install apache2

; for apache2

# apt-get install libapache2-mod-php5; for install php5


# apt-get install build-essential ; for system
# aptitude install build-essential ; for compiles sources of softwares
# aptitude install apache2 wget ; for the web interface
# apt-get install bind9-host dnsutils libbind9-60 libdns66
# aptitude install libisc60 libisccc60

libisccfg60 liblwres60 libradius1

# aptitude install radiusclient1 snmp snmpd ; for a good functional of nagios and installing SNMP
parquets
# aptitude install libgd2-noxpm-dev libpng12-dev libjpeg62 libjpeg62-dev

; for a goob graph

from nagios
# apt-get install gcc, g++ ,
# apt-get install libgd2-xpm-dev
# apt-get install libgd2-dev ; for install install the gd2 library
# apt-get install libgd2-xpm-dev ; for install install the gd2 library

3. Installation of nagios-3.2.3
3.1.Creating Account and group Information
Notes: In this TP through all pictures:
 root is the user current connected
 VAIO-SOIDRIDINE is the name of the server (Computer)
 /home/moindze/ is the directory for connected user
Become the root user with command su. On linux you can use the su r name-user to change a user
and give the correspondence password.

Notes: the symbol # in the beginning of line means that the user root (administrator) is connected

And the symbol $ in the beginning of line means that an invite (not administrator user) user is connect.

$ sudo su root

Create a new nagios user account and give it a password.


# /usr/sbin/useradd -m -s /bin/bash nagios
# passwd nagios
for this TP the passwd is nagios

Figure 1: create a user nagios and password nagios


You will need to also add a nagios group (its not created by default on Ubuntu 10.o4 and higher). You
should be able to skip this step on desktop or newer server editions of Ubuntu.
# /usr/sbin/groupadd nagios
# /usr/sbin/usermod -G nagios nagios

Figure 2: create a group 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 www-data

Figure 3: crate a group for external command nagcmd

3.2. Download Nagios and the Plugins


Create a directory for storing the download or use the default directory Download in Document. For
this TP I used the Document directory for saving nagios package.

Download directly with internet connexion on the linux host, the source code tarballs of both Nagios
and the Nagios plugins (visit http://www.nagios.org/download/ for links to the latest versions).
These directions were tested with Nagios 3.1.1 and Nagios Plugins 1.4.11.
# wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.3.tar.gz
# wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz

You can also download separately and copy file on the directory of your choice. For this installation, I
had downloaded nagios and nagios-plugins and saved these files on Documents.
I used cd command to enter in Document

#cd /Document
And I used the ls command to list content of Docuent
#ls

Figure 4: packages nagios-3.2.3.tar.gz and nagios-plugings-.4.15.tar.gz saved in Document


directory
3.3. Compile and Install Nagios

Extract the Nagios source code tarball from Documents and save the desarchive file on /usr/local/
I have used option -C for specify the destination directory .

# cd Documents
# tar xzvf nagios-3.2.3.tar.gz -C /usr/local

Figure 5: desarchivage nagios file and save that on /usr/local

Enter on the nagios file for installation


# cd /usr/local/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

The outputs of ./configure command are shown bellow :

Figure 6a: first output of ./configure command


The end of the output of ./configure command is

Figure 6 b: the end of output of command ./configure

Compile the Nagios source code.


You can compile nagios with this command:
# make all

Figure 7a: the beginning of output of make all

The end of the output of make all is given bellow

Figure 7b: the second output of make all command

Figure 7c: the third output of make all command


And for the end of make all I had that you have:

Figure 7d: the end of make all

3.4.installation of binaries
You can use the commands bellow to 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

The output of make install is :

Figure 8 : output of make install

The outputs of make install-init is:

Figure 9 : the output of make install-init

The outputs of make install-commandmode and make install-config is

Figure 10: output of make install-commadmode and make install-config

Dont start Nagios yet - theres still more that needs to be done...

3.5.Customize Configuration

This step is not mandatory but recommended.


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. Youll need to make just one change before you
proceed. Edit the /usr/local/nagios/etc/objects/contacts.cfg config file with your favorite editor suh as
vim or gedit or another and change the email

address associated with the nagiosadmin contact

definition to the address youd like to use for receiving alerts.


# vim /usr/local/nagios/etc/objects/contacts.cfg

Figure 11a: content the file /usr/local/nagios/etc/objects/contacts.cfg

In this TP was not change the mail but keep the default mail.

Figure 11b: content the file /usr/local/nagios/etc/objects/contacts.cfg

3.6.Configure the Web Interface


Install the Nagios web config file in the Apache conf.d directory:
# make install-webconf
Create a nagiosadmin account for logging into the Nagios web interface. Remember the password you
assign to this account - youll need it later.

# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Restart Apache to make the new settings take effect.


# /etc/init.d/apache2 reload

Figure 12: create a nagiosadmin user and his password for connexion web interface and start
apache2

4. Compile and Install the Nagios Plugins

Extract the Nagios-plugins source code tarball from Documents to /usr/local also.
Note: I had already download nagios-plugins above.
# cd /Documents
# tar xzf nagios-plugins-1.4.11.tar.gz -C /usr/local

Figure 13: decompress nagios-plugins and save the result on /usr/local

Figure 14: decompress procedure

After this step, entering of directory of nagios-plugins


# cd /usr/local/ nagios-plugins-1.4.11

Compile and install the plugins.

# ./configure --with-nagios-user=nagios --with-nagios-group=nagios

Figure 15: enter in /usr/local/nagios-plugins directory and configure


The output of configure command

Figure 16: output of configure command

Install nagios-plugins
# make
# make install
The output of make is bellow

figure 17: output of make

The output of make install is

Figure 18 : output of make install

5. Start Nagios
Configure Nagios to automatically start when the system boots.
# ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios

Figure 20: configure nagios to automatically start with system

Verify the sample Nagios configuration files. If everything is ok.

# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Figure 21: beginning of output of verification

The end of the verification command is:

Figure 22: the end of verification command

Note: If you have Total warning is 0 and Total error is o that means everything is Ok. If you have
another number in total warning there is not problem but ensure that you have total Errors is 0

We had not any errors, and i started Nagios with the bellow command:
# /etc/init.d/nagios start

Figure 25: started of server nagios and web interface apache2


6. Login to the Web Interface

You should now be able to access the Nagios web interface at the URL below. Youll be prompted for
the username (nagiosadmin) and password you specified earlier. You can open a web browser and tape:
http://localhost/nagios/ or http://127.0.0.1/nagios/ or http://192.168.1.2/nagios/
Here 192.168.1.2 is the address of nagios server.

Note: don't forget the symbol / in the end of link.

Figure 26: login on the nagios server

After identification with login nagiosadmin and password nagios, the home page of nagios is bellow:

Figure 27: Home page for nagios

Click on the "Service Detail" navbar link to see details of whats being monitored on your local
machine. You can click on the MAP button to see the MAP of your network.

7. Verifying Your Configuration


Every time you modify your configuration files, you should run a sanity check on them. It is important
to do this before you (re)start Nagios, as Nagios will shut down if your configuration contains errors.
In order to verify your configuration, run Nagios with the -v command line option like so:
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
If youve forgotten to enter some critical data or misconfigured things, Nagios will spit out a warning
or error message that should point you to the location of the problem. Error messages generally print
out the line in the configuration file that seems to be the source of the problem. On errors, Nagios will
often exit the pre-flight check and return to the command prompt after printing only the first error that
it has encountered. This is done so that one error does not cascade into multiple errors as the remainder
of the configuration data is verified. If you get any error messages youll need to go and edit your
configuration files to remedy the problem. Warning messages can generally be safely ignored, since
they are only recommendations and not requirements.

Once youve verified your configuration files and fixed any errors you can go ahead and (re)start
Nagios.
8. Starting and Stopping Nagios

Theres more than one way to start, stop, and restart Nagios. Here are some of the more common ones.
Tip: Always make sure you verify your configuration before you (re)start Nagios.
8.1. Starting Nagios

a) Init Script: The easiest way to start the Nagios daemon is by using the init script like so:
# /etc/rc.d/init.d/nagios start

b) Manually: You can start the Nagios daemon manually with the -d command line option like so:
# /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg

8.2. Restarting Nagios


Restarting/reloading is necessary when you modify your configuration files and want those changes to
take effect.
a) Init Script: The easiest way to restart the Nagios daemon is by using the init script like so:
# /etc/rc.d/init.d/nagios reload

b) Web Interface: You can restart the Nagios through the web interface by clicking the "Process
Info" navigation link and selecting "Restart the Nagios process":

c) Manually: You can restart the Nagios process by sending it a SIGHUP signal like so:
# kill -HUP <nagios_pid>

8.3. Stopping Nagios


a) Init Script: The easiest way to stop the Nagios daemon is by using the init script like so:
# /etc/rc.d/init.d/nagios stop
b) Web Interface: You can stop the Nagios through the web interface by clicking the "Process
Info" navigation link and selecting "Shutdown the Nagios process":

c) Manually: You can stop the Nagios process by sending it a SIGTERM signal like so:
# kill <nagios_pid>

9. Object Configuration Overview

9.1. What Are Objects?


Objects are all the elements that are involved in the monitoring and notification logic. Types of objects
include:
 Services
 Service Groups
 Hosts (pc, routers, switchs, prints, gateway, all equipments)
 Host Groups
 Contacts
 Contact Groups
 Commands
 Time Periods
 Notification Escalations
 Notification and Execution Dependencies
More information on what objects are and how they relate to each other can be found below.

9.2. Where Are Objects Defined?


Objects can be defined in one or more configuration files and/or directories that you specify using the
cfg_file and/or cfg_dir directives in the main configuration file.

Tip: When you follow quickstart installation guide above, several sample object configuration files are
placed in /usr/local/nagios/etc/objects/. You can use these sample files to see how object inheritance
works and learn how to define your own object definitions.

9.3. Objects Explained


Some of the main object types are explained in greater detail below:

a) Hosts are one of the central objects in the monitoring logic. Important attributes of hosts are as
follows:
 Hosts are usually physical devices on your network (servers, workstations, routers,
switches, printers, etc).
 Hosts have an address of some kind (e.g. an IP or MAC address).
 Hosts have one or more more services associated with them.

 Hosts can have parent/child relationships with other hosts, often representing real-world
network connections, which is used in the network reachability logic.
b) Host Groups are groups of one or more hosts. Host groups can make it easier to (1) view the
status of related hosts in the Nagios web interface and (2) simplify your configuration through
the use of object tricks.
c) Services are one of the central objects in the monitoring logic. Services are associated with
hosts and can be:
 Attributes of a host (CPU load, disk usage, uptime, etc.)
 Services provided by the host (HTTP, POP3, FTP, SSH,etc.)
 Other things associated with the host (DNS records, etc.)
d) Service Groups are groups of one or more services. Service groups can make it easier to (1)
view the status of related services in the Nagios web interface and (2) simplify your
configuration through the use of object tricks.

e) Contacts are people involved in the notification process:


 Contacts have one or more notification methods (cellphone, pager, email, instant messaging,
etc.)
 Contacts receive notifications for hosts and service they are responsible for
f) Contact Groups are groups of one or more contacts. Contact groups can make it easier to
define all the people who get notified when certain host or service problems occur.
g) Timeperiods are are used to control:
 When hosts and services can be monitored
 When contacts can receive notifications
h)





Commands are used to tell Nagios what programs, scripts, etc. it should execute to perform:
Host and service checks
Notifications
Event handlers
and more...

9.4. Object Definitions


When creating and/or editing configuration files, keep the following in mind:
1. Lines that start with a # character are taken to be comments and are not processed
2. Directive names are case-sensitive
3. Characters that appear after a semicolon (;) in configuration lines are treated as comments and are
not processed
Host Definition
Description:
A host definition is used to define a physical server, workstation, device, etc. that resides on your network.
Definition Format:
Note: Directives in red are required, while those in black are optional
define host{
host_name
host_name
alias
alias
address
address
parents
host_names
for example

#declaring a server ; comment


define host {
host_name
SRVLEMANS
alias
Server Le Mans
address
10.166.200.100
use
generic-host
parents

;device name
; alias
; IP address
;device type

server-backbone

Directive Descriptions:

host_name: This directive is used to define a short name used to identify the host. It is used in host
group and service definitions to reference this particular host. Hosts can have multiple services (which
are monitored) associated with them. When used properly, the $HOSTNAME$ macro will contain this
short name.

alias: This directive is used to define a longer name or description used to identify the host. It is
provided in order to allow you to more easily identify a particular host. When used properly, the
$HOSTALIAS$ macro will contain this alias/description.

address: This directive is used to define the address of the host. Normally, this is an IP address,
although it could really be anything you want (so long as it can be used to check the status of the host).
You can use a FQDN to identify the host instead of an IP address, but if DNS services are not 3333ccle
this could cause problems. When used properly, the $HOSTADDRESS$ macro will contain this
address. Note: If you do not specify an address directive in a host definition, the name of the host will
be used as its address. A word of caution about doing this, however - if DNS fails, most of your
service checks will fail because the plugins will be unable to resolve the host name.

parents: This directive is used to define a comma-delimited list of short names of the "parent" hosts for
this particular host. Parent hosts are typically routers, switches, firewalls, etc. that lie between the
monitoring host and a remote hosts. A router, switch, etc. which is closest to the remote host is
considered to be that hosts "parent". Read the "Determining Status and Reachability of Network
Hosts" document located here for more information. If this host is on the same network segment as the
host doing the monitoring (without any intermediate routers, etc.) the host is considered to be on the
local network and will not have a parent host. Leave this value blank if the host does not have a parent
host (i.e. it is on the same segment as the Nagios host). The order in which you specify parent hosts has
no effect on how things are monitored.

Das könnte Ihnen auch gefallen