Install and Configure Nagios for PostgreSQL/PPAS on Linux
One of my Colleague had asked how he can use Nagios for PostgreSQL Monitoring. So, I thought of writing steps to show the blog readers about nagios Configuration for PostgreSQL/PPAS.
Following are the steps:
1. Download Nagios Core
2. For Installing Nagios, following packages would be required,so make sure you have them installed on your server.
4. Now, untar Nagios Core/Nagios Plugin using following command:
5. Now configure Nagios Source Code as given below:
6. Now install Nagios using the following commands:
7. Now, configure Nagios for web interface, using following command:
9. After installing Naios Core and configuring for web-interface, lets install Nagios Plugins using following command:
1. Download check_postgres.pl from following link:
nagiosinstallationdir/etc/commands.cfg as given below:
4. Lets create a Service file postgres.cfg in nagiosinstallationdir/etc/objects directory using following line (please feel free to replace the hostname)
Some nagios Configuration File details:
Important Nagios Configuration files:
Location: nagiosinstallationdir/etc/
nagios.cfg – Nagios Configuration file, which contains Global Parameters.
cgi.cfg - Nagios Web Interface Configuration file.
resource.cfg – Plugin Monitors resource configuration file (It contains sensitive information like username/password etc).
Location: nagiosinstallationdir/etc/objects
contacts.cfg: This is a configuration file in which user can specify name, email address and notification information with time period.
commands.cfg – This file contains the commands which can be use for services.You can use $HOSTNAME$ and $HOSTADDRESS$ macro on the command execution that will substitute the corresponding hostname or host ip-address.
timeperiods.cfg – User can define the timeperiods.
templates.cfg – template configuraton file
localhost.cfg – contains localhost monitoring information. Using this sample file user can define similar services for other hosts too.
printer.cfg – Sample config file for printer
switch.cfg – Sample config file for switch
windows.cfg – Sample config file for a windows machine
Enjoy!! :)
Following are the steps:
1. Download Nagios Core
wget http://nagios.sourceforge.net/download/cvs/nagios-HEAD.tar.gz
2. For Installing Nagios, following packages would be required,so make sure you have them installed on your server.
gcc make binutils cpp libpq-dev libmysqlclient15-dev libssl0.9.8 libssl-dev pkg-config apache2 libgd2-xpm libgd2-xpm-dev libgd-tools libpng12-dev libjpeg62-dev perl libperl-dev libperl5.8 libnet-snmp-perl3. Create nagios user and group as given below:
[root@localhost]# useradd nagios [root@localhost]# passwd nagios [root@localhost]# groupadd nagcmd [root@localhost]# usermod -G nagcmd nagios [root@localhost]# usermod -G nagcmd apache
4. Now, untar Nagios Core/Nagios Plugin using following command:
tar -xvf nagios-HEAD.tar.gz
5. Now configure Nagios Source Code as given below:
sh configure --prefix=/opt/nagios --with-pgsql=/opt/PostgresPlus/8.4ASNote:: Please note I would be installing nagios in /opt/nagios location. For more options on configure command, use following command:
./configure --help
6. Now install Nagios using the following commands:
make all make make install make install-commandmode make install-config
7. Now, configure Nagios for web interface, using following command:
make install-webconf8. Create webinteface user nagiosadmin, password using following command:
/opt/nagios/bin/htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin New password: Re-type new password: Adding password for user nagiosadminNote:: Please remember this password, since admin will use this command to connect to nagios using web-interface(explorer like firefox, chrome etc).
9. After installing Naios Core and configuring for web-interface, lets install Nagios Plugins using following command:
wget http://nagiosplug.sourceforge.net/snapshot/nagios-plugins-HEAD.tar.gz ./configure --prefix=/opt/nagios --with-pgsql=/opt/PostgresPlus/8.4AS make make installSince, we have installed Nagios and plugins, now, lets configure it for PostgreSQL/PPAS.
1. Download check_postgres.pl from following link:
wget http://bucardo.org/downloads/check_postgres.tar.gz2. Copy check_postgres.pl to /libexec as given below:
cp /usr/local/bin/check_postgres.pl /opt/nagios/libexec3. Configure the Nagios Command as given below by adding following line in
nagiosinstallationdir/etc/commands.cfg as given below:
define command { command_name check_edb_bloat command_line $USER1$/check_postgres.pl --host $HOSTADDRESS$ --dbuser=enterprisedb --dbpass=edb -db edb -p 5444 --action bloat }Note:: Above is an example of adding the Monitoring service for PG Bloat in Nagios.
4. Lets create a Service file postgres.cfg in nagiosinstallationdir/etc/objects directory using following line (please feel free to replace the hostname)
define service { use generic-service host_name localhost service_description Postgres bloat is_volatile 0 check_period 24x7 max_check_attempts 3 normal_check_interval 5 retry_check_interval 1 contact_groups admins notification_interval 120 notification_period 24x7 notification_options check_command check_edb_bloat!3000000!9000000!flr }5. Now update the nagiosinstallationdir/etc/nagios.cfg file for the postgres.cfg, by adding following command:
cfg_file=/opt/nagios/etc/objects/postgres.cfg6. Verify the configuration files using following command:
root@ubuntu:~# /opt/nagios/bin/nagios -v /opt/nagios/etc/nagios.cfg Nagios Core 3.2.3 Copyright (c) 2009-2010 Nagios Core Development Team and Community Contributors Copyright (c) 1999-2009 Ethan Galstad Last Modified: 10-03-2010 License: GPL Website: http://www.nagios.org Reading configuration data... Read main config file okay... Processing object config file '/opt/nagios/etc/objects/commands.cfg'... Processing object config file '/opt/nagios/etc/objects/contacts.cfg'... Processing object config file '/opt/nagios/etc/objects/timeperiods.cfg'... Processing object config file '/opt/nagios/etc/objects/templates.cfg'... Processing object config file '/opt/nagios/etc/objects/localhost.cfg'... Processing object config file '/opt/nagios/etc/objects/postgres.cfg'... Processing object config file '/opt/nagios/etc/objects/switch.cfg'... Read object config files okay... Running pre-flight check on configuration data... Checking services... Checked 13 services. Checking hosts... Checked 2 hosts. Checking host groups... Checked 2 host groups. Checking service groups... Checked 0 service groups. Checking contacts... Checked 1 contacts. Checking contact groups... Checked 1 contact groups. Checking service escalations... Checked 0 service escalations. Checking service dependencies... Checked 0 service dependencies. Checking host escalations... Checked 0 host escalations. Checking host dependencies... Checked 0 host dependencies. Checking commands... Checked 25 commands. Checking time periods... Checked 5 time periods. Checking for circular paths between hosts... Checking for circular host and service dependencies... Checking global event handlers... Checking obsessive compulsive processor commands... Checking misc settings... Total Warnings: 0 Total Errors: 0 Things look okay - No serious problems were detected during the pre-flight check7. Now start the nagios services using following command:
/etc/init.d/nagios restartWe are set to check the services in Nagios. Following are few snapshots:
Some nagios Configuration File details:
Important Nagios Configuration files:
Location: nagiosinstallationdir/etc/
nagios.cfg – Nagios Configuration file, which contains Global Parameters.
cgi.cfg - Nagios Web Interface Configuration file.
resource.cfg – Plugin Monitors resource configuration file (It contains sensitive information like username/password etc).
Location: nagiosinstallationdir/etc/objects
contacts.cfg: This is a configuration file in which user can specify name, email address and notification information with time period.
commands.cfg – This file contains the commands which can be use for services.You can use $HOSTNAME$ and $HOSTADDRESS$ macro on the command execution that will substitute the corresponding hostname or host ip-address.
timeperiods.cfg – User can define the timeperiods.
templates.cfg – template configuraton file
localhost.cfg – contains localhost monitoring information. Using this sample file user can define similar services for other hosts too.
printer.cfg – Sample config file for printer
switch.cfg – Sample config file for switch
windows.cfg – Sample config file for a windows machine
Enjoy!! :)
Comments
Post a Comment