Smokeping, programado en perl, es un monitor de latencias basado en RRDTool (del mismísimo autor), mide el retardo de ICMP y varios servicios (DNS, SSH, HTTP, SMTP, LDAP, etc). En esta entrada, mostraremos como instalar desde el código fuente Smokeping, como integrarlo en el servidor web Nginx y configurarlo básicamente en CentOS 6.4
Deshabilitar SELinux.
setenforce 0
Deshabilitar Firewall.
Bearbeiten Datei: /etc/selinux/config SELINUX=disable
service iptables stop chkconfig iptables off
curl -O -L http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm rpm -ivh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm curl -O http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm curl -O http://rpms.famillecollet.com/enterprise/remi-release-6.rpm rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm
yum install gcc gcc-c++ kernel-devel 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 perl5lib perl-CPAN wget yum --enablerepo=epel -y install spawn-fcgi fcgi-devel yum -y groupinstall "Development Tools"
export PERL5LIB=/usr/lib64/perl5/ mkdir -p /opt/smokeping tar -zxvf smokeping-2.6.9.tar.gz cd smokeping-2.6.9 ./setup/build-perl-modules.sh /opt/smokeping/thirdparty ./configure --prefix=/opt/smokeping gmake install cd /opt/smokeping/ mkdir data var htdocs/cache cd /opt/smokeping/etc for foo in *.dist; do cp $foo `basename $foo .dist`; done cd /opt/smokeping/htdocs cp smokeping.fcgi.dist smokeping.fcgi chmod 600 /opt/smokeping/etc/smokeping_secrets.dist
#!/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
chmod 755 /etc/init.d/smokeping
Fichero de Log de Smokeping: /var/log/smokeping.log
Datei /etc/rsyslog.conf bearbeiten local0.* /var/log/smokeping.log Diese linien müssen in /opt/smokeping/etc/config sein. # specify this to get syslog logging syslogfacility = local0 syslogpriority = debug touch /var/log/smokeping.log
wget https://codeload.github.com/gnosek/fcgiwrap/legacy.tar.gz/master -O fcgiwrap.tar.gz tar zxvf fcgiwrap.tar.gz cd gnosek-fcgiwrap-66e7b7d autoreconf -i ./configure make make install Datei /etc/sysconfig/spawn-fcgi bearbeiten. OPTIONS="-u nginx -g nginx -a 127.0.0.1 -p 9001 -P /var/run/spawn-fcgi.pid -- /usr/local/sbin/fcgiwrap" chkconfig spawn-fcgi on service spawn-fcgi start
Agregamos el repositorio creando el fichero /etc/yum.repos.d/nginx.repo
[nginx] name=nginx repo baseurl=http://nginx.org/packages/mainline/centos/6/$basearch/ gpgcheck=0 enabled=1 yum install nginx
Hacemos un backup de la configuración predeterminada actual.
mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf_backup
Creamos el fichero /etc/nginx/conf.d/default.conf
server { listen 80; server_name pollux.dominio localhost; root /opt/smokeping/htdocs; # access_log /var/www/logs/example.com.access.log; location / { index smokeping.fcgi; } location ~ \.pl|cgi|fcgi$ { try_files $uri =404; gzip off; fastcgi_pass 127.0.0.1:9001; fastcgi_index smokeping.fcgi; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; } }
service nginx start chkconfig nginx on
Hosts a configurar:
Fichero de configuración: /opt/smokeping/etc/config
*** General *** owner = Popoch Company contact = admin@dominio mailhost = my.mail.host 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 = /opt/smokeping/htdocs/cache imgurl = cache datadir = /opt/smokeping/data piddir = /opt/smokeping/var cgiurl = http://pollux.dominio/smokeping.fcgi smokemail = /opt/smokeping/etc/smokemail.dist tmail = /opt/smokeping/etc/tmail.dist # Specify this to get syslog logging syslogfacility = local0 syslogpriority = debug *** Alerts *** to = admin@dominio from = smokealert@dominio +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 = /opt/smokeping/etc/basepage.html.dist + 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 *** Probes *** + FPing binary = /usr/sbin/fping *** Slaves *** secrets=/opt/smokeping/etc/smokeping_secrets.dist +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 Popoch Company. \ Here you will learn all about the latency of our network. + Empresa de moda menu= Targets ++ Pollux menu = Pollux title =Server pollux.dominio host = pollux.dominio ++ Cacti menu = Cacti title =Server chimera.dominio host = chimera.dominio ++ JiraStag menu = Jira_stag title =Server jirastag.dominio host = jirastag.dominio
chown -R nginx:nginx /opt/smokeping/htdocs/cache/ chkconfig smokeping on service smokeping start