Instalación y configuración de SmokePing en openSUSE

Para aquellos que no conocen SmokePing, les cuento que es una herramienta web que permite monitorear la disponibilidad de otros dispositivos IP mediante paquetes ping.

Hasta aquí no parece muy especial, pero lo que aún no he mencionado es que también permite conocer la latencia de la red, los paquetes perdidos, el Jitter y demás mediante unos gráficos muy particulares que identifican y le dan el nombre a la herramienta.

Les cuento que los gráficos que genera soy muy interesantes, proveen mucha información de forma clara y exacta. Esto lo logra utilizando la potentísima herramienta para generar gráficos RRDTool, que al igual que MRTG pertenecen al paquete de herramientas de monitoreo open source ofrecidos por OETIKER+PARTNER AG.

Aunque este artículo está más orientado a los pasos de instalación que a la utilización de la herramienta, me gustaría comentar que la misma es capaz de representar gráficamente el Jitter, que en el contexto de redes se refiere específicamente a las variaciones que surgen en los tiempos de respuesta medidos. Smokeping obtiene dicha información a partir del envío masivo de paquetes ICMP (ping) en cada análisis, y que luego la representa gráficamente en escalas de grises alrededor del tiempo medio calculado.

Para aprender más acerca de esta herramienta les recomiendo a todos visitar su sitio oficial y probar su versión demo en línea para comenzar a explorar directamente sus funcionalidades.


Requisitos previos

  1. Antes de instalar SmokePing debemos tener instaladas las herramientas fping y Apache:
    testsrv:~ # zypper install fping apache2
    
    La aplicación fping puede ser instalada también mediante el método 1-Click Install desde la siguiente URL:
    http://software.opensuse.org/package/fping
    
  2. Para que la aplicación fping funcione correctamente debemos asignarle el permiso AUID con el siguiente comando desde el usuario root:
    testsrv:~ # chmod +s /usr/sbin/fping
    


Pasos de instalación y configuración

Para instalar la herramienta se siguieron los siguientes pasos:
  1. Instalamos SmokePing con el método 1-Click Install para nuestra versión de openSUSE desde la siguiente URL.
    http://software.opensuse.org/package/smokeping
    
  2. Para configurar los hosts que queremos monitorear primeramente necesitamos crear un archivo llamado config a partir del archivo plantilla config.dist dentro del directorio /etc/smokeping,
    testsrv:~ # cp /etc/smokeping/config.dist /etc/smokeping/config
    
    luego lo editamos con nuestro editor preferido,
    testsrv:~ # vi /etc/smokeping/config
    
    y posteriormente modificamos y agregamos las secciones de configuración que en el siguiente contenido de ejemplo se encuentran resaltadas.
    *** General ***
    
    owner    = Root at badly configured smokeping box
    contact  = root@localhost
    mailhost = localhost
    sendmail = /usr/sbin/sendmail
    # NOTE: do not put the Image Cache below cgi-bin
    # since all files under cgi-bin will be executed ... this is not
    # good for images.
    imgcache = /var/cache/smokeping/
    imgurl   = /smokeping
    datadir  = /var/lib/smokeping/data
    piddir  = /var/run/smokeping/
    cgiurl   = http://localhost/cgi-bin/smokeping.cgi
    smokemail = /etc/smokeping/smokemail
    tmail = /etc/smokeping/tmail
    # specify this to get syslog logging
    syslogfacility = local0
    # each probe is now run in its own process
    # disable this to revert to the old behaviour
    # concurrentprobes = no
    
    *** Alerts ***
    to = root@localhost
    from = root@localhost
    
    +someloss
    type = loss
    # in percent
    pattern = >0%,*12*,>0%,*12*,>0%
    comment = loss 3 times  in a row
    
    *** Database ***
    
    step     = 300
    pings    = 20
    
    # consfn mrhb steps total
    
    AVERAGE  0.5   1  1008
    AVERAGE  0.5  12  4320
    MIN  0.5  12  4320
    MAX  0.5  12  4320
    AVERAGE  0.5 144   720
    MAX  0.5 144   720
    MIN  0.5 144   720
    
    *** Presentation ***
    
    template = /etc/smokeping/basepage.html
    
    + charts
    
    menu = Charts
    title = The most interesting destinations
    
    ++ stddev
    sorter = StdDev(entries=>4)
    title = Top Standard Deviation
    menu = Std Deviation
    format = Standard Deviation %f
    
    ++ max
    sorter = Max(entries=>5)
    title = Top Max Roundtrip Time
    menu = by Max
    format = Max Roundtrip Time %f seconds
    
    ++ loss
    sorter = Loss(entries=>5)
    title = Top Packet Loss
    menu = Loss
    format = Packets Lost %f
    
    ++ median
    sorter = Median(entries=>5)
    title = Top Median Roundtrip Time
    menu = by Median
    format = Median RTT %f seconds
    
    + overview
    
    width = 600
    height = 50
    range = 10h
    
    + detail
    
    width = 600
    height = 200
    unison_tolerance = 2
    
    "Last 3 Hours"    3h
    "Last 30 Hours"   30h
    "Last 10 Days"    10d
    "Last 400 Days"   400d
    
    #+ hierarchies
    #++ owner
    #title = Host Owner
    #++ location
    #title = Location
    
    *** Probes ***
    
    + FPing
    
    binary = /usr/sbin/fping
    
    *** Slaves ***
    secrets=/etc/smokeping/smokeping_secrets
    +boomer
    display_name=boomer
    color=0000ff
    
    +slave2
    display_name=another
    color=00ff00
    
    *** Targets ***
    
    probe = FPing
    
    menu = Top
    title = Network Latency Grapher
    remark = Welcome to the SmokePing website of GK Company. \
    Here you will learn all about the latency of our network.
    
    + Maquinas
    menu = Maquinas
    title = Maquinas de mi Laboratorio
    
    ++ gkpc1
    menu = gkpc1
    title = gkpc1
    host = 192.168.1.100
    
    ++ gkbook
    menu = gkbook
    title = gkbook
    host = 192.168.1.101
    
    + Routers
    menu = Routers
    title = Routers de mi Laboratorio
    
    ++ Linksys
    menu = Linksys
    title = Router Linksys WRT54G
    host = 192.168.1.1
    
    Como podrán apreciar, muchas directivas puedan ser configuradas, pero la única que debemos modificar para que la herramienta funcione sin darnos problemas es la que se encuentra en la línea 14. La sección que se encuentra resaltada luego de la directiva remark, es la configuración correspondiente a los equipos a ser monitorizados y que ha sido reemplazada por una configuración adecuada para mi red de trabajo. En esa sección se han creado dos menús llamados Máquinas y Routers, debajo de los cuales se encuentran definidos los equipos que se desean analizar.

    Como ya había comentado al principio, por defecto la herramienta viene configurada para que cada cinco minutos analice los hosts especificados en la sección Targets con 20 paquetes ICMP (Ping). Esto es totalmente parametrizable modificando los valores de las directivas step y pings en la sección *** Database *** cuyos valores originales son 300 (en segundos, igual a cinco minutos) y 20 (paquetes ICMP) respectivamente.

  3. Una vez culminado con la configuración del paso anterior, debemos cambiar las propiedades de acceso a los archivos smokeping_secrets:
    testsrv:~ # chmod 600 /etc/smokeping/smokeping_secrets*
    
  4. Luego, para que no tengamos problemas con el despliegue de los gráficos necesitamos realizar una pequeña modificación al contenido del archivo smokeping.conf ubicado en el directorio /etc/apache2/conf.d. Primero pasamos a editar el archivo:
    testsrv:~ # vi /etc/apache2/conf.d/smokeping.conf
    
    Y en la sección <IfDefine !SMOKEPING> agregamos el código resaltado entre las líneas 26 y 32:
    <IfDefine SMOKEPING>
        # please read how to enable smokeping be a lot faster in 
        # /usr/share/doc/packages/smokeping/README.SuSE
        Alias /smokeping/cache /var/lib/smokeping/cache
        <IfModule mod_fastcgi.c>
            <Location /cgi-bin/smokeping>
                SetHandler fastcgi
                Order deny,allow
                Allow from all
            </Location>
        </IfModule>
    
        <Directory /var/lib/smokeping/cache>
            Order Allow,Deny
            Allow from all
            Options None
            AllowOverride None
        </Directory>
    </IfDefine>
    
    # this code will forbid access to frontend
    # no need to remove it in case when system is not configured correctly
    <IfDefine !SMOKEPING>
        Redirect 403 /cgi-bin/smokeping
    
        Alias /smokeping /var/lib/smokeping
        <Directory /var/lib/smokeping/cache>
            Order Allow,Deny
            Allow from all
            Options None
            AllowOverride None
        </Directory>
    </IfDefine>
    
    Agregado el código guardamos los cambios y salimos de la edición del archivo para continuar con el siguiente paso.

  5. Procedemos a iniciar el servicio Apache:
    testsrv:~ # /etc/init.d/apache2 start
    
  6. El siguiente paso consiste en iniciar el servicio SmokePing con el siguiente comando:
    testsrv:~ # /etc/init.d/smokeping start
    
  7. Definimos los niveles de ejecución para automatizar el inicio de los servicios Apache y SmokePing durante el arranque del sistema operativo:
    testsrv:~ # chkconfig --add apache2
    testsrv:~ # chkconfig --add smokeping
    
  8. También necesitamos habilitar el servicio Apache en el cortafuegos de openSUSE, para ello editamos el archivo /etc/sysconfig/SuSEfirewall2:
    testsrv:~ # vi /etc/sysconfig/SuSEfirewall2
    
    Luego buscamos la directiva FW_CONFIGURATIONS_EXT y le agregamos el nombre de servicio apache2 debiendo quedar similar a lo que sigue:
    FW_CONFIGURATIONS_EXT="sshd apache2"
    
    Guardamos los cambios, salimos del editor y procedemos a reiniciar el cortafuegos de openSUSE con el siguiente comando:
    testsrv:~ # rcSuSEfirewall2 restart
    
  9. Y finalmente renombramos el archivo smokeping del directorio /srv/www/cgi-bin a smokeping.cgi:
    testsrv:~ # cp /srv/www/cgi-bin/smokeping /srv/www/cgi-bin/smokeping.cgi
    
Con los pasos anteriores la herramienta ya debería estar disponible. Podemos acceder a su interfaz colocando la siguiente URL en nuestro navegador web favorito:
http://nombre_o_ip_servidor/cgi-bin/smokeping.cgi


Capturas de Pantalla:

A continuación les dejo con las capturas de pantalla de la interfaz web de la herramienta en ejecución, donde se aprecian los menús en la barra izquierda y la información gráfica de la derecha.



La linea central verde de los gráficos es la media de todos los tiempos de respuesta de los paquetes ICMP analizados en un momento dado y el sombreado que se encuentra a su alrededor es la representación gráfica del Jitter generado a partir de los tiempos de respuesta obtenidos.

Siempre las sombras más oscuras estarán alrededor de la línea verde, ya que corresponden a los tiempos de respuesta más cercanos a la media. Por su parte, los tiempos que más distan de la media siempre estarán más alejados de la línea central.


Enlaces Importantes:

Sitios Webs:
Ampliación de conceptos:

Comentarios

  1. Como puedo configurar las notificaciones por email... Y tambien quiero saber si puedo usar una cuenta externa por ejemplo gmail para que sea quien envia los mensajes

    ResponderEliminar
    Respuestas
    1. Hola Kristhian, la verdad que nunca he verificado si tiene esa configuración y actualmente no dispongo de una instalación de la herramienta a mano para probar, quizás deberías mirar en la web oficial si tiene información al respecto.

      Por cierto, que información del Smokeping necesitas enviar/notificar por e-mail?

      Saludos!

      Eliminar

Publicar un comentario

Entradas populares