Instalar y configurar MRTG en Centos 8
Seguimos hablando de herramientas para controlar nuestro servidor GNU/Linux. En este caso os hablo de MRTG. Herramienta encargada de monitorear la carga de tráfico en los enlaces de red. MRTG genera páginas HTML que contienen imágenes PNG que representan una imagen visual en vivo de dicho tráfico.
Como viene siendo habitual en los últimos meses vamos a utilizar un VPS en mi proveedor de confianza Clouding.io. En este caso utilizando una distribución con Centos 8. De hecho será la misma con la que elaboré estas entradas:
Instalar Nagios 4 en RHEL 8 y Centos 8
Instalar y configurar NDOUtils en Centos 8
Como veremos más adelante, la instalación de esta herramienta no es complicada. Además también instalaremos SNMP, que al igual en las diferentes entradas que vimos sobre Cacti, nos permitirá recoger información de los elementos de la red.
Instalar y configurar MRTG en Centos 8
Empezamos instalando los paquetes de MRTG y SNMP, que vienen en los repositorios principales de esta distribución.
sudo dnf -y install net-snmp net-snmp-utils mrtg
Debemos configurar las aplicaciones, modificando sus archivos de configuración. Empezando por el de SNMP, que se encuentra en la ruta «/etc/snmp/snmpd.conf». En mi caso:
#La línea 41 la comentamos #com2sec notConfigUser default public # línea 74,75: Descomentar y cambiar # cambiar la red local para la sección "mynetwork" # cambiar el nombre de la comunidad excepto público o privado com2sec local localhost BitsAndLinux #com2sec mynetwork 192.168.1.0/24 BitsAndLinux #Para un red local # línea 78,79: descomentar y cambiar group MyRWGroup v2c local group MyROGroup v2c mynetwork # line 85: descomentar view all included .1 80 # line 93,94: descomentar y cambiar access MyROGroup "" v2c noauth exact all none none access MyRWGroup "" v2c noauth exact all all all
Guardamos y salimos. Encendemos el servicio y lo añadimos al arranque.
sudo systemctl start snmpd sudo systemctl enable snmpd
Comprobamos que efectivamente funciona correctamente:
SNMPv2-MIB::sysDescr.0 = STRING: Linux servnagios.bitsandlinux.com 4.18.0-193.6.3.el8_2.x86_64 #1 SMP Wed Jun 2 11:09:32 UTC 2020 x86_64 SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (8365) 0:01:23.65 SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf) SNMPv2-MIB::sysName.0 = STRING: servnagios.bitsandlinux.com SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf) SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::sysORID.1 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance SNMPv2-MIB::sysORID.2 = OID: SNMP-MPD-MIB::snmpMPDCompliance SNMPv2-MIB::sysORID.3 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB SNMPv2-MIB::sysORID.5 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup (....)
Configurar MRTG
Antes de empezar a editar el fichero de configuración, ejecutamos este comando:
cfgmaker --snmp-options=:::::2 --ifref=descr --ifdesc=descr BitsAndLinux@localhost > /etc/mrtg/mrtg.cfg
Con este comando generamos el fichero de configuración «/etc/mrtg/mrtg.cfg«. En cualquier caso hay algunas cosas que debemos modificar:
# línea 8: Añadimos WorkDir: /var/www/mrtg # línea 16: Descomentamos Options[_]: growright, bits # línea 75: descomentamos todo hasta el final y adaptamos. Target[localhost_eth0]: \eth0:BitsAndLinux@localhost:::::2 noHC[localhost_eth0]: yes SetEnv[localhost_eth0]: MRTG_INT_IP="185.254.206.223" " MRTG_INT_DESCR="eth0" MaxBytes[localhost_eth0]: 125000000 Title[localhost_eth0]: eth0 -- servnagios.bitsandlinnux.com PageTop[localhost_eth0]: <h1>eth0 -- servnagios.bitsandlinux.com</h1 (...)
OJO aquí, no puede queda espacio en blanco justo delante de las líneas descomentadas.
Ejecutamos MRTG para que nos muestre posibles errores en el fichero
for (( i=1 ; i <= 3 ; i++ )); do env LANG=C mrtg /etc/mrtg/mrtg.cfg; done
Creamos el fichero de Index.html
indexmaker --columns=1 /etc/mrtg/mrtg.cfg > /var/www/mrtg/index.html
Si todo ha ido bien hasta aquí, ya podemos crear el fichero de cron
vi /etc/cron.d/mrtg
Con el contenido:
*/5 * * * * root LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok
Guardamos y salimos
Crearmos el fichero de configuración para APACHE
vi /etc/httpd/conf.d/mrtg.conf
Con el contenido:
Alias /mrtg /var/www/mrtg <Location /mrtg> Require local # Require ip 10.1.2.3 # Require host example.org </Location>
Podemos adaptar el fichero a nuestras necesidades.
Reiniciamos el servicio web.
sudo systemctl restart httpd
Y ya podemos ver el resultado, en mi caso en, http://servnagios.bitsandlinux.com/mrtg
Si marcamos sobre la gráfica nos ofrecerá una información ampliada:
Y esto es todo, espero que esta entrada os puede servir en algún momento.
Fuentes consultadas
Server-world.info – Install MRTG
Stackoverflow – MRTG: ERROR: did not find any matching data in cfg file