Monitoring Documentum with Nagios and dctmpy plugin

This is a step-by-step guide to install Nagios and configure dctmpy plugin for monitoring a Documentum environment. Nagios installation is pretty easy as we’ll be doing everything using yum. Then we’ll setup a standard configuration for the plugin.

Environment

Host:
Windows 7 x64 8GB RAM
VMWare Player 6.0.1

Guest:
CentOS 6.5 x64 40GB HD 4GB RAM

PanfilovAB’s dctmpy plugin (Nagios plugin for Documentum)

VM Creation and OS Configuration

Check these steps on (Unofficial) D7.1 Developer Edition

EPEL Repository setup

[root@vm-nagios nagios]# wget http : // epel.mirror.net.in/epel/6/i386/epel-release-6-8.noarch.rpm
[root@vm-nagios nagios]# rpm -Uvh epel-release-6-8.noarch.rpm

Apache

  • Install httpd
[root@vm-nagios nagios]# yum install httpd
  • Start the service
[root@vm-nagios nagios]# service httpd start

MySQL

  • Install MySQL
[root@vm-nagios nagios]# yum install mysql mysql-server
  • Start MySQL service
[root@vm-nagios nagios]# service mysqld start
  • Configure MySQL’s root user
[root@vm-nagios nagios]# mysql_secure_installation

PHP

  • Install PHP module
[root@vm-nagios nagios]# yum install php
  • Check everything is working by creating the following php page:
[root@vm-nagios nagios]# vi /var/www/html/infophp.php
  • Restart the httpd service and check the previously create page
[root@vm-nagios nagios]# service httpd restart
  • Finally, install MySQL module for PHP
[root@vm-nagios nagios]# yum install php-mysql

phpMyAdmin

  • Install the module:
[root@vm-nagios nagios]# yum install phpmyadmin
  • Edit phpMyAdmin.conf and comment the entry:
[root@vm-nagios nagios]# vi /etc/httpd/conf.d/phpMyAdmin.conf
  Alias /phpMyAdmin /usr/share/phpMyAdmin
  Alias /phpmyadmin /usr/share/phpMyAdmin
  #
  #
  # # Apache 2.4
  #
  # Require ip 127.0.0.1
  # Require ip ::1
  #
  #
  #
  # # Apache 2.2
  # Order Deny,Allow
  # Deny from All
  # Allow from 127.0.0.1
  # Allow from ::1
  #
  #
  • Make a copy of the default configuration:
[root@vm-nagios nagios]# cp /usr/share/phpMyAdmin/config.sample.inc.php /usr/share/phpMyAdmin/config.inc.php
  • Change auth mode to “http”
[root@vm-nagios nagios]# vi /usr/share/phpMyAdmin/config.inc.php
  /* Authentication type */
  #$cfg['Servers'][$i]['auth_type'] = 'cookie';
  $cfg['Servers'][$i]['auth_type'] = 'http';
  • Restart httpd service
[root@vm-nagios nagios]# service httpd restart

Development tools

  • You’ll need to install the usual development packages:
[root@vm-nagios nagios]# yum install gd gd-devel gcc glibc glibc-common

Nagios

  • Install all modules
[root@vm-nagios nagios]# yum install nagios*
  • Set a password for the user “nagiosadmin”
[root@vm-nagios nagios]# htpasswd /etc/nagios/passwd nagiosadmin
  • Start Nagios service
[root@vm-nagios nagios]# service nagios start

You should be able to access Nagios browsing localhost/nagios

dctmpy

  • Install Pyhton tools
[root@vm-nagios nagios]# yum install python-setuptools python-setuptools-devel
  • Install dctmpy
[root@vm-nagios nagios]# easy_install argparse nagiosplugin dctmpy
  • Check plugin is working
[root@vm-nagios nagios]# nagios_check_docbroker -H 172.24.3.128 -p 1489
[root@vm-nagios nagios]# nagios_check_docbase -H 172.24.3.128 -p 47625 -l dmadmin -a dmadmin -m login
  • Configure commands.cfg:
[root@vm-nagios nagios]# vi /etc/nagios/objects/commands.cfg
  define command{
  command_name nagios_check_docbroker
  command_line /usr/bin/nagios_check_docbroker -H $HOSTADDRESS$ -p $ARG1$
  }

  #'nagios_check_docbase' commands definition
  define command{
  command_name nagios_check_docbase
  command_line /usr/bin/nagios_check_docbase -H $HOSTADDRESS$ -p $ARG1$ -i $ARG2$ -l $ARG3$ -a $ARG4$ -m $ARG5$
  }
  • In this case we’re going to monitor a Windows machine, so edit nagios.cfg and uncomment the windows.cfg section
[root@vm-nagios nagios]# vi /etc/nagios/nagios.cfg
  # Definitions for monitoring a Windows machine
  cfg_file=/etc/nagios/objects/windows.cfg
  • Edit windows.cfg file and add the services
[root@vm-nagios nagios]# vi /etc/nagios/objects/windows.cfg
  define host{
  use windows-server ; Inherit default values from a template
  host_name WINDOWS_HOST ; The name we're giving to this host
  alias WINDOWS_HOST ; A longer name associated with the host
  address 172.24.3.128 ; IP address of the host
  }
  
  define service{
  use generic-service
  host_name WINDOWS_HOST
  service_description docbroker
  check_command nagios_check_docbroker!1489
  }

  define service{
  use generic-service
  host_name WINDOWS_HOST
  service_description docbase login
  check_command nagios_check_docbase!47625!1000001!dmadmin!dmadmin!login
  }

  define service{
  use generic-service
  host_name WINDOWS_HOST
  service_description docbase sessions
  check_command nagios_check_docbase!47625!1000001!dmadmin!dmadmin!sessioncount -w 70 -c 80
  }

  define service{
  use generic-service
  host_name WINDOWS_HOST
  service_description docbase projection targets
  check_command nagios_check_docbase!47625!1000001!dmadmin!dmadmin!targets
  }

  define service{
  use generic-service
  host_name WINDOWS_HOST
  service_description docbase jms status
  check_command nagios_check_docbase!47625!1000001!dmadmin!dmadmin!jmsstatus
  }

  define service{
  use generic-service
  host_name WINDOWS_HOST
  service_description docbase failed tasks
  check_command nagios_check_docbase!47625!1000001!dmadmin!dmadmin!failedtasks
  }

  define service{
  use generic-service
  host_name WINDOWS_HOST
  service_description docbase job scheduling
  check_command nagios_check_docbase!47625!1000001!dmadmin!dmadmin!jobs -j "dm_DMFilescan,dm_LogPurge" -n system_cleanup_jobs
  }

  define service{
  use generic-service
  host_name WINDOWS_HOST
  service_description cts status
  check_command nagios_check_docbase!47625!1000001!dmadmin!dmadmin!ctsstatus
  }

  define service{
  use generic-service
  host_name WINDOWS_HOST
  service_description cts queue
  check_command nagios_check_docbase!47625!1000001!dmadmin!dmadmin!ctsqueue -w 100 -c 1000
  }
  • Restart Nagios service and you should see the new host with the new services reporting status.