Monitorización de servidores con Observium – Parte I

Introducción

El siguiente artículo trata de explicar los pasos a seguir para la correcta monitorización de servidores, utilizando para ello el protocolo SNMP y la APP web Observium Comunity.

En esta primera entrada, veremos como instalar primeramente Observium Comunity en el PC desde el que vamos a monitorizar toda la red de nuestra empresa.

Acerca del protocolo SNMP

El Protocolo simple de administración de red o SNMP (del inglés Simple Network Management Protocol) es un protocolo de la capa de aplicación que facilita el intercambio de información de administración entre dispositivos de red. Los dispositivos que normalmente soportan SNMP incluyen routers, switches, servidores, estaciones de trabajo, impresoras, bastidores de módem y muchos más. Permite a los administradores supervisar el funcionamiento de la red, buscar y resolver sus problemas, y planear su crecimiento.

SNMP es un componente de la suite de protocolo de Internet como se define por el IETF. Se compone de un conjunto de normas para la gestión de la red, incluyendo una capa de aplicación del protocolo, una base de datos de esquema, y un conjunto de objetos de datos.

Fuente: https://es.wikipedia.org/wiki/Protocolo_simple_de_administraci%C3%B3n_de_red

Acerca de Observium

Observium es una plataforma de supervisión de red de auto-descubrimiento de bajo mantenimiento que soporta una amplia gama de tipos de dispositivos, plataformas y sistemas operativos, incluyendo Cisco, Windows, Gnu Linux, HP, Juniper, Dell, FreeBSD, Brocade, Netscaler, NetApp y muchos más. Observium se centra en proporcionar una interfaz bonita y de gran alcance con todo simple e intuitiva para la salud y el estado de la red.

Fuente: https://lignux.com/observium-es-una-plataforma-de-supervision-de-red-de-auto-descubrimiento-multiplataforma/

Instalar dependencias

El primer paso antes de proceder con la instalación de esta herramienta, es proceder a instalar todas las dependencias necesarias para el correcto funcionamiento del aplicativo, para ello seguiremos los siguientes pasos que se detallana a continuación.

Para versiones Ubuntu 16.04 – 17.04 y Debian 8.0:
  • apt-get install libapache2-mod-php7.0 php7.0-cli php7.0-mysql php7.0-mysqli php7.0-gd php7.0-mcrypt \
    php7.0-json php-pear snmp fping mysql-server mysql-client python-mysqldb rrdtool subversion whois \
    mtr-tiny ipmitool graphviz imagemagick apache2
Para Debian 9.0:
  • apt-get install libapache2-mod-php7.0 php7.0-cli php7.0-mysql php7.0-mysqli php7.0-gd php7.0-mcrypt \
    php7.0-json php-pear snmp fping mariadb-server mariadb-client python-mysqldb rrdtool subversion whois \
    mtr-tiny ipmitool graphviz imagemagick apache2
Para Debian 7 y Ubuntu 14.04:
  • apt-get install libapache2-mod-php5 php5-cli php5-mysql php5-gd php5-mcrypt php5-json php-pear snmp \
    fping mysql-server mysql-client python-mysqldb rrdtool subversion whois mtr-tiny ipmitool graphviz \
    imagemagick

Si deseamos poder monitorear máquinas virtuales libvirt, es necesario instalar libvirt-bin (importante: esto instalará un conjunto de dependencias que por defecto no necesitamos tener instalado en nuestro servidor):

  • apt-get install libvirt-bin

Descarga de Observium Comunity:

  • mkdir -p /opt/observium && cd /opt
  • wget http://www.observium.org/observium-community-latest.tar.gz
    tar zxvf observium-community-latest.tar.gz

Configuración de Observium:

  • cd observium
  • cp config.php.default config.php

Creación de la base de datos para observium:

  • mysql -u root -p
    <mysql root password>
    mysql> CREATE DATABASE observium DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    mysql> GRANT ALL PRIVILEGES ON observium.* TO ‘observium’@’localhost’
    -> IDENTIFIED BY ‘<observium db password>’;

Configuración de la base de datos MySQL e inserción del esquema predeterminado de Observium:

  • ./discovery.php -u

Creación de directorios requeridos para el correcto funcionamiento de la app:

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

Configuración del servidor web (apache)

Versión 2.2

  • nano /etc/apache2/sites-available/default
  • <VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /opt/observium/html
    <FilesMatch \.php$>
    SetHandler application/x-httpd-php
    </FilesMatch>
    <Directory />
    Options FollowSymLinks
    AllowOverride None
    </Directory>
    <Directory /opt/observium/html/>
    DirectoryIndex index.php
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    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>

Versión 2.4

  • nano /etc/apache2/sites-available/000-default.conf
  • <VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /opt/observium/html
    <FilesMatch \.php$>
    SetHandler application/x-httpd-php
    </FilesMatch>
    <Directory />
    Options FollowSymLinks
    AllowOverride None
    </Directory>
    <Directory /opt/observium/html/>
    DirectoryIndex index.php
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    ServerSignature On
    </VirtualHost>

Habilitar módulo mcrypt de PHP:

  • phpenmod mcrypt

Para versiones de PHP más antiguas:

  • php5enmod mcrypt

En las distribuciones más nuevas (Ubuntu 16.04 y posteriores):

  • a2dismod mpm_event
  • a2enmod mpm_prefork
  • a2enmod php7.0

Habilitaremos el módulo mod_rewrite para las URL’s amigables de Observium:

  • a2enmod rewrite
  • apache2ctl restart

Añadir usuario para acceder a la app:

  • ./adduser.php <username> <password> <level>

Crear fichero de cron para búsquedas y actualizaciones automáticas de las gráficas:

  • nano /etc/cron.d/observium
  • # Run a complete discovery of all devices once every 6 hours
    33 */6 * * * root /opt/observium/discovery.php -h all >> /dev/null 2>&1# Run automated discovery of newly added devices every 5 minutes
    */5 * * * * root /opt/observium/discovery.php -h new >> /dev/null 2>&1# Run multithreaded poller wrapper every 5 minutes
    */5 * * * * root /opt/observium/poller-wrapper.py 4 >> /dev/null 2>&1# Run housekeeping script daily for syslog, eventlog and alert log
    13 5 * * * root /opt/observium/housekeeping.php -ysel >> /dev/null 2>&1

    # Run housekeeping script daily for rrds, ports, orphaned entries in the database and performance data
    47 4 * * * root /opt/observium/housekeeping.php -yrptb >> /dev/null 2>&1

Acceso al panel web

Una vez hemos completado todos los pasos anteriores, el siguiente y último paso de esta entrada, es comprobar que podemos acceder correctamente a la administración de la herramienta vía web.

Para ello debemos abrir un navegador web y acceder mediante la IP que tenga la máquina en nuestra red LAN o en su defecto, mediante un nombre de dominio que en el que le hayamos asociado esa dirección IP, en nuestro servidor DNS.

P.ej:

observium

En la siguiente entrada configuraremos el protocolo SNMP en un equipo y lo añadiremos a nuestra herramienta de monitorización.

Hasta la próxima!! Salu2s Sysadmins 🙂

About: Miguel Carretas Perulero

Miguel Carretas Perulero ha escrito 64 artículos en este blog.

Deja un comentario