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
- Servidor Linux Centos 6.4
- RRDtool
-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
-En el menu de la izquierda veremos los links de las pruebas que configuramos en el config
-En la medida que pase el tiempo, los valores irán apareciendo
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.