Wednesday, 16 November 2016

Integrating Nagvis to Nagios


Nagios (Centos 6.6) Easy way

nagios.JPG

Centos 6 Easier way to install Nagios Server


Install Epel Repository GPG key

# rpm --import http://ftp.riken.jp/Linux/fedora/epel/RPM-GPG-KEY-EPEL-6


Install Epel Repository Package

# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm


Search and Install Nagios Packages

Required Packages:

nagios.x86_64

nagios-plugins.x86_64

nagios-plugins-all.x86_64

httpd.x86_64


Install the packages

# yum install httpd.x86_64 nagios.x86_64 nagios-plugins.x86_64 nagios-plugins-all.x86_64 -y

It might be different on your system, depends on how many packages you already have installed.


Configuring Apache

# chkconfig --level 35 httpd on

# service httpd start


Test Apache Install

Open your broser and navigate to your server IP address to test Apache works

If it doesn't we need to open up the firewall


# vi /etc/sysconfig/iptables


Add the line below:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT


Save the file and restart iptables

# service iptables restart


Test acessing your Nagios IP address once again

http://192.168.1.23

Note: If you see the Apache Test Page your Apache is working fine

Replace 192.168.1.23 with your server's IP address


Setup Nagios Apache Virtual Host

# cd /etc/httpd/conf.d/

# vi nagios.conf


The file should look as per below:


ScriptAlias /nagios/cgi-bin/ "/usr/lib64/nagios/cgi-bin/"


<Directory "/usr/lib64/nagios/cgi-bin/">

#  SSLRequireSSL

  Options ExecCGI

  AllowOverride None

  Order allow,deny

  Allow from all

  AuthName "Nagios Access"

  AuthType Basic

  AuthUserFile /etc/nagios/passwd

  Require valid-user

</Directory>


Alias /nagios "/usr/share/nagios/html"


<Directory "/usr/share/nagios/html">

  Options None

  AllowOverride None

  Order allow,deny

  Allow from all

  AuthName "Nagios Access"

  AuthType Basic

  AuthUserFile /etc/nagios/passwd

  Require valid-user

</Directory>


Restart Apache

# service httpd restart


Set an User Name and Password to protect Nagios access

# htpasswd -c /etc/nagios/passwd nagiosadmin

New password: TYPE in a Password

Re-type new password: Type the same password again


Test the Nagios web Interface access

http://192.168.1.23/nagios/

Type in: nagiosadmin and your password


Note: If you see the Nagios Web Interface, things are looking good and Nagios is installed correctly.


We need to start Nagios service

# chkconfig --level 35 nagios on



Start Nagios

# service nagios start


Navigate to the Nagios web Interface at: http://192.168.1.23/nagios/

Enter username and password and click on: * Services

Note: by Now you should see the localhost being monitored and some default services.


Httpd service will display a warning: HTTP WARNING: HTTP/1.1 403 Forbidden

Note: Just create an empty index.html page.

# touch /var/www/html/index.html

That should take care of the warning.


Nagios 3.4.4 looks a a lot better than previous versions.








Integrating Nagvis to Nagios


Integrating Nagvis front-end to Nagios

If you want to make your Nagios look really professional, want to customise the it to make it look absolutely customer presentable. Nagvis is the tool for you.

Installing NagVis Front End for Nagios. This tool will allow you creating a cool visual for your Nagios portal. You can create a nice diagram with Visio and use it to make your Nagios portal look more professionally presentable to customers.

If you have followed my previous post on how to Install Nagios (Centos 6.6) easy way, all you have to do is to follow the steps below, and you will have both (Nagios and Nagvis) working and nicely integrated.

There are few packages we must install first:

Dependencies:
* rsync
* graphviz
* php-mbstring
* php
* php-gd
* php-pdo
* mk-livestatus-1.1.12.rhel6.x86_64.rpm

Installing required Packages

# yum install rsync graphviz php-mbstring php-gd php-pdo php -y

Downloading mk-live
# cd /usr/local/
# mkdir downloads
# cd downloads
# wget http://www.thruk.org/files/pkg/v1.52/rhel6/x86_64/mk-livestatus-1.1.12.rhel6.x86_64.rpm
# rpm -Uvh mk-livestatus-1.1.12.rhel6.x86_64.rpm

or

Simply issue the command below:
# rpm -Uvh http://www.thruk.org/files/pkg/v1.52/rhel6/x86_64/mk-livestatus-1.1.12.rhel6.x86_64.rpm

Once the mk-live package has been installed, we need to move to configuring the it, by integrating it to the Nagios.
Note: If you followed my previous post about installing Nagios, your Nagios config files should be on /etc/nagios

Configure mk-live package
# cd /etc/nagios
# mkdir -p var/rw
# chown -R nagios: var/

Edit Nagios.cfg file
# vi /etc/nagios/nagios.cfg

Add the lines bellow to the nagios.cfg and save it
broker_module=-1
broker_module=/usr/lib64/mk-livestatus/livestatus.o /etc/nagios/var/rw/live

Restart Nagios and Apache
# service nagios restart
# service httpd restart

Note: I would like to draw your attention to something very important.
A good systems Administrator always make sure he/she has a backup of any modified file.
Before you change configuration files, it is good practice to make a copy of the file you are about to change.

Downloading and Installing NagVis Package
# cd /usr/local/downloads

# tar -zxvf nagvis-1.7.2.tar.gz
# cd nagvis-1.7.2
# ls
Note: you should see various files including a README and a INSTALL.
The installation process is described in the INSTALL file, I suggest taking a look at it..

Once the package has been decompressed and expanded, we need to install it.

Installing Nagvis
# chmod 755 install.sh
# ./install.sh
The install.sh script will check various things within your system, including; path to Nagios, path to mk-live and all the required packages if they are installed.

Questions asked by install.sh script

1. Do you want to proceed? [y]: Y
  hit [ENTER]

2. Please enter the path to the nagios base directory [/usr/sbin/nagios]: /etc/nagios
  hit [ENTER]

3. Please enter the path to NagVis base [/usr/sbin/nagvis]: /etc/nagvis
  hit [ENTER]

4. Script will check for all required packages, see below:
|   PHP 5.3                                                              found |
|   PHP Module: gd php                                                   found |
|   PHP Module: mbstring php                                             found |
|   PHP Module: gettext compiled_in                                      found |
|   PHP Module: session compiled_in                                      found |
|   PHP Module: xml compiled_in                                          found |
|   PHP Module: pdo php                                                  found |
|   Apache mod_php                                                       found |

Note: If any package is presented as missing, kill the script and install the missing package.

Live is file we don’t need to create. It will automatically create when nagios restart. Need to give required permission for /etc/nagios/var/rw directory.

5. Do you want to use backend mklivestatus? [y]:Y
  hit [ENTER]

6. Do you want to use backend ndo2db? [n]:n
  hit [ENTER]

7. Do you want to use backend ido2db? [n]:n
  hit [ENTER]

8. Do you want to use backend merlinmy? [n]:n
  hit [ENTER]

9. Livestatus Socket (/etc/nagios/var/rw/live)                             found |
|   PHP Module: sockets compiled_in                                        found |
|   Graphviz 2.26                                                          found |
|   Graphviz Module dot 2.26.0                                             found |
|   Graphviz Module neato 2.26.0                                           found |
|   Graphviz Module twopi 2.26.0                                           found |
|   Graphviz Module circo 2.26.0                                           found |
|   Graphviz Module fdp 2.26.0                                             found |
|   SQLite 3.6                                                             found |

Note: Make sure everything on the list above has been found.
Otherwise kill the script and install the missing packages.

10.  Please enter the web path to NagVis [/nagvis]:
    hit [ENTER]

11. Please enter the name of the web-server user [apache]:
    hit [ENTER]

   Please enter the name of the web-server group [apache]:
    hit [ENTER]

   create Apache config file [y]:
    hit [ENTER]

12. Do you want the installer to update your config files when possible? [y] y
   hit [ENTER]

13. Remove backup directory after successful installation? [n]: n
   hit [ENTER]

Note: At this time Nagvis will display a summary of all choices made by you, if everything looks OK as I describe above,

just accept it.
14.  Do you really want to continue? [y]: y
    hit [ENTER]

Once the installation has been complete, restart Apache
# service httpd restart

Accessing Nagvis frontend
Open your bowser and point it to: http://192.168.1.23/nagvis

User Name: admin
Password: Admin

By this point you should see the default Nagvis frontend and there are various demo you can see.

It is pretty easy to install the localhost to be monitored.
I will create a how to with screenshots at later date.

Make sure NagVis has enabled the LIVE backend

# cd /etc/nagvis/etc
# vi nagvis.ini.php

Search for the line:
; backend="live_1"

Remove the ';' (semi-colonm) and save the file
backend="live_1"

Save the file and restart Apache and Nagios

# service httpd restart
# service nagios restart

Now you should be able to add easily the localhost and any servers you might already have configured.



Troubleshooting
# tail /var/log/message
Note: any error message generated by Nagios will be logged to this file.