Usando Linux para muchas cosas y disfrutando de videojuegos, en dispositivos moviles, consolas y pc. Using Linux for many things and enjoying video games, mobile devices, consoles and pc

Como instalar SmokePing en Centos

Necesitas una herramienta que te muestre de forma gráfica la latencia de tu red?. Te presento SmokePing, una magnifica aplicación del creador de RRDtool escrita en perl y con una variedad de plugins para poder monitorear latencia en una fácil interfaz web que hoy te mostrare como instalar paso a paso en un servidor Linux Centos 6.4.

Requerimientos


-Instalamos repositorio epel de Fedora para algunos paquetes que no los tiene Centos

rpm --import https://fedoraproject.org/static/0608B895.txt
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
yum install yum-priorities

-Editamos para quitarle prioridad a los rpm de epel
vi /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

-Instalamos dependencias
yum install openssl-devel popt-devel libidn-devel curl bind-utils openssh-server mod_fcgid
yum install perl perl-Net-Telnet perl-Net-DNS perl-LDAP perl-libwww-perl perl-RadiusPerl perl-IO-Socket-SSL perl-Socket6 perl-CGI-SpeedyCGI perl-FCGI perl-RRD-Simple perl-CGI-SpeedyCGI perl-ExtUtils-MakeMaker perl-Net-OpenSSH

-Instalamos fping
wget -c http://www.fping.org/dist/fping-3.8.tar.gz

tar xzvf fping-3.8.tar.gz
cd fping-3.8

-Compilamos
./configure
make
make install

-Instalamos echoping
wget -c http://downloads.sourceforge.net/project/echoping/echoping/6.0.2/echoping-6.0.2.tar.gz

tar xzvf echoping-6.0.2.tar.gz
cd echoping-6.0.2

./configure
make
make install

-Activamos sus librerias
vi /etc/ld.so.conf
/usr/local/lib/echoping

-Activamos el cambio
ldconfig

-Descargamos smokeping
wget -c http://oss.oetiker.ch/smokeping/pub/smokeping-2.6.9.tar.gz
tar xzvf smokeping-2.6.9.tar.gz

-Descargamos e instalamos módulos de perl necesitados
cd smokeping-2.6.9/setup/
./build-perl-modules.sh

-Compilamos
./configure --prefix=/opt/smokeping
make install

-Creamos algunos directorios que faltan y modificamos los ficheros de configuracion
cd /opt/smokeping
mkdir data var cache
cd etc/
for foo in *.dist; do cp $foo `basename $foo .dist`; done

-Las pruebas hay muchas formas de configurarlas como se explica en la ayuda de la aplicación (bastante larga por cierto) o podemos usar parte de los ejemplos que también ahí podemos consultar. Por el momento para esta prueba mostraremos algunas. Editamos

vi config

owner    = DriveMeca
contact  = pepe@gmail.com
mailhost = localhost
cgiurl   = http://192.168.1.167/smokeping/smokeping.cgi
imgcache = /opt/smokeping/cache
datadir  = /opt/smokeping/data
piddir  = /opt/smokeping/var
smokemail = /opt/smokeping/etc/smokemail.dist
tmail = /opt/smokeping/etc/tmail.dist
*** Alerts ***
to = drivemeca@test.com
from = smokealert@test.com

*** Probes ***

+ DNS
 binary = /usr/bin/dig
 server = 8.8.8.8
 pings = 3
 forks = 5

+ FPing
binary = /usr/local/sbin/fping

+ EchoPingHttp
 binary = /usr/local/bin/echoping
 pings = 5
 forks = 5
 offset = 50%
 ipversion = 4
 url = /

+ EchoPingHttps
 binary = /usr/local/bin/echoping
 pings = 5
 forks = 5
 offset = 50%
 ipversion = 4

+ Curl
 binary = /usr/bin/curl
 pings = 5

urlformat = http://%host%/

*** Targets ***

probe = FPing

menu = Top
title = Network Latency Grapher
remark = Welcome to the SmokePing website of test.com

 + network
 menu = Net latency
 title = Network latency (ICMP pings)

 ++ www1
 host = www.google.com

 + services
 menu = Service latency
 title = Service latency (DNS, HTTP)

 ++ DNS
 probe = DNS
 menu = DNS latency
 title = Service latency (DNS)

 +++ www1
 host = www.google.com

 + HTTP
 probe = Curl
 menu = http full page
 title = HTTP latency

 ++ www1
 host = www.google.com

-Creamos un enlace simbolico a la carpeta cache
ln -s /opt/smokeping/cache /opt/smokeping/htdocs/cache

-Nos creamos un conf para apache con pedido de usuario y contraseña
vi /etc/httpd/conf.d/smokeping.conf
ScriptAlias /smokeping/smokeping.cgi "/opt/smokeping/htdocs/smokeping.fcgi.dist"
Alias /smokeping/ "/opt/smokeping/htdocs/"

<Directory "/opt/smokeping/htdocs">
        Options FollowSymLinks
        AuthType Basic
        AuthName "Smokeping"
        AuthBasicProvider file
        AuthUserFile /var/www/cgi-bin/htpasswords
        Require valid-user
</Directory>

-Nos creamos el usuario y su contraseña (podemos agregar los que necesitemos)
htpasswd -c /var/www/cgi-bin/htpasswords drivemeca
New password: 
Re-type new password: 
Adding password for user drivemeca

-Cambiamos permisos
chmod 600 /var/www/cgi-bin/htpasswords
chown apache.apache /var/www/cgi-bin/htpasswords
chmod 600 /opt/smokeping/etc/smokeping_secrets.dist
chown -R apache.apache /opt/smokeping/

-Creamos un script de inicio para SmokePing

vi /etc/init.d/smokeping
#!/bin/sh
#
# smokeping    This starts and stops the smokeping daemon
# chkconfig: 345 98 11
# description: Start/Stop the smokeping daemon
# processname: smokeping
# Source function library.
. /etc/rc.d/init.d/functions

SMOKEPING=/opt/smokeping/bin/smokeping
LOCKF=/var/lock/subsys/smokeping
CONFIG=/opt/smokeping/etc/config

[ -f $SMOKEPING ] || exit 0
[ -f $CONFIG ] || exit 0

RETVAL=0

case "$1" in
  start)
        echo -n $"Starting SMOKEPING: "
        daemon $SMOKEPING
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch $LOCKF
        ;;
  stop)
        echo -n $"Stopping SMOKEPING: "
        killproc $SMOKEPING
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f $LOCKF
        ;;
  status)
        status smokeping
        RETVAL=$?
        ;;
  reload)
        echo -n $"Reloading SMOKEPING: "
        killproc $SMOKEPING -HUP
        RETVAL=$?
        echo
        ;;
  restart)
        $0 stop
        sleep 3
        $0 start
        RETVAL=$?
        ;;
  condrestart)
        if [ -f $LOCKF ]; then
                $0 stop
                sleep 3
                $0 start
                RETVAL=$?
        fi
        ;;
  *)
        echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}"
        exit 1
esac

-Activamos permisos
chmod 755 /etc/init.d/smokeping

-Ejecutamos los servicios de httpd y SmokePing
service httpd start
chkconfig httpd on
service smokeping start
chkconfig smokeping on

-Nos logeamos con el usuario creado en el URL de nuestro servidor, en este caso http://192.168.1.167/smokeping/smokeping.cgi
DriveMeca instalando SmokePing en Centos

-En el menu de la izquierda veremos los links de las pruebas que configuramos en el config
DriveMeca instalando SmokePing en Centos

-En la medida que pase el tiempo, los valores irán apareciendo
DriveMeca instalando SmokePing en Centos

Te resulta útil SmokePing? Ya lo usas o planeas implementarlo?
Si te resulto útil este articulo, se social, compártelo con otros por medio de los botones o sígueme en twitter google+ o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark