Observium: Herramienta de monitorización

Observium, es una herramienta mas para monitorizar dispositivos como Nedi o Centreon. Lo bueno de Observium que es muy intuitiva y completa. Es muy fácil de agregar dispositivos por SNMP y puede llegar a monitorizar; memoria, CPU, Espacio, temperatura, voltaje… Incluso diferenciar sistemas operativos, dispositivos de red…

En este tutorial se va a instalar percona como servidor de base de datos por sus mejoras frente a mysql.

Instalación

Agregar repositorios de percona

vim /etc/apt/sources.list
deb http://repo.percona.com/apt jessie main
deb-src http://repo.percona.com/apt jessie main
apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A
aptitude update

Una vez agregados los repositorios instalar todos los paquetes necesarios

aptitude install libapache2-mod-php5 php5-cli php5-mysql php5-gd php5-mcrypt php5-json php-pear snmp fping libvirt-bin percona-server-server-5.6 percona-server-client-5.6 python-mysqldb rrdtool subversion whois mtr-tiny ipmitool graphviz imagemagick

A continuación crear la base de datos y el usuario

mysql -u root -p
mysql> CREATE DATABASE observium DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> CREATE USER 'observium'@'localhost' IDENTIFIED BY '<CONTRASEÑA>';
mysql> GRANT ALL PRIVILEGES ON observium . * TO 'observium'@'localhost';
mysql> FLUSH PRIVILEGES;

Crear la carpeta de observium

mkdir -p /opt/observium && cd /opt

Descargar observium

wget http://www.observium.org/observium-community-latest.tar.gz

Descomprimir la herramienta

tar zxvf observium-community-latest.tar.gz

Borrar el archivo comprimido

rm -f observium-community-latest.tar.gz

Configuración

Ir a la carpeta descomprimida

cd observium

Hacer un backup del archivo de configuración

cp config.php.default config.php

Editar el archivo de configuración de la siguiente manera

vim config.php
<?php

## Have a look in includes/defaults.inc.php for examples of settings you can set here. DO NOT EDIT defaults.inc.php!

// Database config
 $config['db_extension'] = 'mysqli';
 $config['db_host'] = 'localhost';
 $config['db_user'] = 'observium';
 $config['db_pass'] = '<CONTRASEÑA>';
 $config['db_name'] = 'observium';

// Base directory
 $config['install_dir'] = "/opt/observium";

// Default community list to use when adding/discovering
 $config['snmp']['community'] = array("public");

// Authentication Model
 $config['auth_mechanism'] = "mysql";    // default, other options: ldap, http-auth, please see documentation for config help

// Enable alerter (not available in CE)
 #$config['poller-wrapper']['alerter'] = TRUE;

// Set up a default alerter (email to a single address)
 #$config['alerts']['alerter']['default']['descr']   = "Default Email Alert";
 #$config['alerts']['alerter']['default']['type']    = "email";
 #$config['alerts']['alerter']['default']['contact'] = "you@yourdomain.org";
 #$config['alerts']['alerter']['default']['enable']  = TRUE;

// End config.php

Actualizar la configuración

./discovery.php -u

Crear la carpeta rrd y hacer que su propietario sea www-data

mkdir rrd logs
sudo chown www-data:www-data rrd logs

Crear el VirtualHost

echo > /etc/apache2/sites-available/000-default.conf

vim /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
       ServerAdmin webmaster@localhost
       DocumentRoot /opt/observium/html
       <Directory />
               Options FollowSymLinks
               AllowOverride None
       </Directory>
       <Directory /opt/observium/html/>
               Options Indexes FollowSymLinks MultiViews
               AllowOverride All
               Require all granted
               Order allow,deny
               allow from all
       </Directory>
       ErrorLog  ${APACHE_LOG_DIR}/error.log
       LogLevel warn
       CustomLog  ${APACHE_LOG_DIR}/access.log combined
       ServerSignature On
</VirtualHost>

Cargar los módulos necesarios y reiniciar apache

php5enmod mcrypt
a2enmod rewrite
apache2ctl restart

Crear el usuario administrador

cd /opt/observium

./adduser.php <usuario> <contraseña> 10

Para poder añadirlos por el nombre en vez de por la IP, si no se tiene un DNS hay que agregarlos en el archivo hosts

vim /etc/hosts
192.168.1.1   host1
192.168.1.2   host2
192.168.1.3   host3

Añadir un dispositivo por CLI (también se puede por web )

./add_device.php <hostname> <comunidad> v2c

Añadir al crontab las siguientes lineas para auto-escarnar la red cada cierto tiempo

vim /etc/cron.d/observium
33  */6   * * *   root    /opt/observium/discovery.php -h all >> /dev/null 2>&1
*/5 *     * * *   root    /opt/observium/discovery.php -h new >> /dev/null 2>&1
*/5 *     * * *   root    /opt/observium/poller-wrapper.py 5 >> /dev/null 2>&1

Extra

La nueva versión de Observium trae una opción que es conectarse por ssh a la máquina mediante el navegador. Para esto, hay que tener instalada la extensión FireSSH.

Configurar un cliente para que envié los datos SNMP

Implementar un agente linux

Fuente:
http://www.observium.org/wiki/Debian_Ubuntu_Installation

4 comments

  1. hola, sabes si se puede instalar como servidor y monitorear varias instalaciones? Cómo se podría hacer? Gracias!

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *