Tienda Wifi

Tienda Wifi
CiudadWireless es la tienda Wifi recomendada por elhacker.NET

Buscador

Entradas Mensuales

Suscripción

¿Quieres recibir las últimas novedades del blog en tu correo?

¡Suscríbete al feed!

Foro de elhacker.net - Noticias

elhacker.NET en Facebook

Entradas populares

PostHeaderIcon Monitorix: Monitoriza tu servidor




Monitorix es una herramienta libre (open-source) para monitorizar gráficamente el estado de un servidor, tipo Nagios, Cacti o Zabbix, mrtg,  monit, munin, etc   y accesible vía web. Está escrita en Perl y es muy sencilla la instalación y configuración. Apenas consume recursos y estaba inicialmente diseñada para sistemas basados en Red Hat, Fedora y CentOS Linux pero funciona en cualquier distribución GNU/Linux e incluso en otros sistemas UNIX, como FreeBSD, OpenBSD and NetBSD.






Permite monitorizar cargas del procesador, uptime, los procesos activos, uso de la memoria ram, porcentaje de uso del disco duro (espacio libre), actividad del disco duro (I/O), temperaturas de los discos duros, del sistema, de la placa base, de la tarjeta gráfica gpu (sólo nvidia), velocidad rpm de los ventiladores, actividad del disco duro (con lmsensors), espacio usado en disco (en %), tráfico de red (entrada y salida y ahora también con estadísticas de red netstat), tráfico paquetes, monitorizar tráfico en un determinado puerto en concreto (tanto tcp como upd, entrada y salida (input/ouput), monitorizar cargas y uso de servicios tan populares como:

Servidores Web
Servidores FTP

  • ProFTPD
  • vsftpd
  • Pure-FTPd
Servidores Correo

  • Sendmail
  • Postfix
Y otros servicios tan comunes como:
  • BIND (named), MySQL, Squid, NFS, Fail2banRaspberry Pi, NFS, Squid, APC (Alternative PHP Cache), Memcached,  Icecast Streaming Media Server,  Wowza Media Server, APC UPS (apcupsd), NTP,


Puede mostrar el gráfico diariamente, semanalmente, mensualmente y anualmente, y con las nuevas versiones se pueden guardar hasta 5 años de historial.

Instalación

Se puede instalar mediante paquete rpm, deb o compilando el código fuente con las sources.

Pre requisitos:
# yum install rrdtool rrdtool-perl perl-libwww-perl perl-MailTools perl-MIME-Lite perl-CGI perl-DBI perl-XML-Simple perl-Config-General perl-HTTP-Server-Simple perl-IO-Socket-SSL

Requerimentos:

  • Servidor web con soporte CGI  (Apache, Nginx, lighttpd, etc.) (Opcional a partir de la versión 3.0.0)
  • Perl
  • Perl-CGI
  • Perl-MailTools
  • Perl-MIME-Lite
  • Perl-libwww
  • Perl-DBI
  • Perl-XML-Simple
  • Perl-Config-General
  • RRDtool y sus elnlaces a Perl (perl-rrdtool or rrdtool-perl)

 A partir de la versión 3.0.0 en adelante ya no necesita un servidor web externo para funcionar, ya lleva un servidor embedido (HTTP server built-in) para funcionar.

Instalar el rpm para CentOS y derivados:
rpm -ivh http://www.monitorix.org/monitorix-3.5.1-1.noarch.rpm
Arrancar el servicio:
service monitorix start
Si algo falla podemos mirar el fichero /var/log/monitorix en busca de errores o warnings:

Sun Jun 8 12:19:43 2014 - Starting Monitorix version 3.5.1 (pid 9617).

Configuración


El fichero de configuración /etc/monitorix.conf

 Podemos activar los gráficos Y (yes), N (no)
# Graphs (de)activation
# -----------------------------------------------------------------------------
our %GRAPH_ENABLE = (
    "system"    => "Y",
    "kern"        => "Y",
    "proc"        => "Y",
    "hptemp"    => "N",
    "lmsens"    => "Y",
    "nvidia"    => "N",
    "disk"        => "Y",
    "fs"        => "Y",
    "net"        => "Y",
    "netstat"        => "Y",
    "process"        => "Y",
    "serv"        => "Y",
    "mail"        => "N",
    "port"        => "Y",
    "user"        => "Y",
    "apache"    => "Y",
    "nginx"        => "N",
    "lighttpd"    => "N",
    "mysql"        => "Y",
    "squid"        => "N",
    "nfss"        => "N",
    "nfsc"        => "N",
    "bind"        => "N",
    "ntp"        => "N",
    "fail2ban"    => "N",
    "icecast"    => "N",
    "int"        => "Y",
);
 En la web oficial del proyecto están explicados todos los parámetros de configuración:

http://www.monitorix.org/documentation.html

En las nuevas versiones el fichero de configuración se encuentra en /etc/monitorix/monitorix.conf

# Graphs (de)activation
# -----------------------------------------------------------------------------

system = y
kern = y
proc = y
hptemp = n
lmsens = y
nvidia = n
disk = y
fs = y
net = y
netstat = y
process = y
serv = y
mail = y
port = y
user = y
ftp = n
apache = y
nginx = n
lighttpd = n
mysql = y
squid = n
nfss = n
nfsc = n
bind = y
ntp = n
fail2ban = y
icecast = n
raspberrypi = n
phpapc = y
memcached = n
apcupsd = n
wowza = n
int = y

Configuración con Apache 2.x

Añadir al fichero httpd.conf las siguientes líneas (ver fichero monitorix-apache.conf)

Versiones monitorix antiguas 2.x

Alias /monitorix /usr/share/monitorix
ScriptAlias /monitorix-cgi /usr/share/monitorix/cgi-bin

        DirectoryIndex monitorix.cgi
        Options ExecCGI
        order deny,allow
        deny from all
        allow from all
        allow from 127.0.0.1

Configuración para Apache nuevas versiones Monitorix 3.x

Alias /monitorix /var/lib/monitorix/www
ScriptAlias /monitorix-cgi /var/lib/monitorix/www/cgi

        DirectoryIndex monitorix.cgi
        Options ExecCGI
Order deny,allow
Deny from all
        allow from all
        allow from 127.0.0.1
Y recordar deshabilitar el servidor httpd built n añadiendo enabled = n o saldrá un error 403 forbidden


enabled = n
host =
port = 8080
user = nobody
group = nobody
log_file = /var/log/monitorix-httpd
hosts_deny =
hosts_allow =

enabled = n
msg = Monitorix: Restricted access
htpasswd = /var/lib/monitorix/htpasswd

Nuevo módulo (netstat.pm) permite monitorizar estadísticas de red con netstat el tráfico ipv4 y ipv6

Monitorizar Conexiones Tráfico de Red

  • Established
  • Closed
  • Listen
  • Syn_sent
  • Syn_recv (muy útil para ver ataques DDoS syn-flood)
  • fin_wait1
  • fin_wait2
  • Closing IPV4-IPV6
  • Time_wait IPV4-IPV6
  • Estadísticas UDP
  •  
    Ejemplo Gráfica netstat = y

Nuevo módulo Process statistics (process.pm) a partir de la versión > 3.5.1 que.permite monitorizar estadísticas de procesos directamente desde el Kernel.

Ejemplo gráfica  process    = y




Para este gráfico se requiere un núcleo Linux versión 2.6.20, al menos, para apoyar el proceso de contabilidad de E / S. Sin embargo en algunos sistemas con kernels más antiguos también podría funcionar

Permite monitorizar:

  • Tiempo de CPU usado (CPU time usage)
  • Memoria RAM usada (Memory usage)
  • Uso de disco (Disk usage) 
  • Tráfico de red usado (Network usage)
  • Ficheros abiertos (Opened files)
  • Número de hilos ( Number of threads)
  • Context switches
  • Número de procesos (Number of processes)

Máximo 10 procesos por list (grupo)

# PROCESS graph
# -----------------------------------------------------------------------------

 
  0 = httpd, sshd, ntopng, mysqld, proftpd, fail2ban-server, miniserv.pl, sendmail, named, ts3server_linux
              1 =  psybnc, scp, tshark, dumpcap, awstats.pl
 
 
  httpd = Apache
  proftpd = FTP
#  imap = Dovecot
  fail2ban-server = fail2ban
              miniserv.pl = webmin
  named = Bind
              ts3server_linux = TeamSpeak3
              psybnc = irc
              scp = backup
              awstats.pl = awstats
 
 rigid = 2, 0, 0, 0, 0, 0, 0, 0
 limit = 100, 1000, 1000, 1000, 1000, 1000, 1000, 1000

Para saber el nombre del proceso
ps -eo pid,comm,command

El comm es el ejecutable, el nomrbe del "process" que debemos añadir en list

Ejemplos Gráficas


Gráfico carga CPU (System Load) top



Gráfico tráfico puerto 80 HTTP (Apache) semanal




Gráfica Apache Workers diaria




Gráfica APC (Alternative PHP Cache statistics)




Gráfico MySQL (queries per second qps) semanal





BIND (DNS)



Podéis ver un ejemplo real en funcionamiento del servidor de warzone.elhacker.net en:


Relacionado: