Monitero de variables

 

cfgmaker nos deja preparado el archivo de configuración para ver el tráfico en las interfaces de red, pero lo podemos ampliar para monitorizar cualquier cosa que esté contemplada por la mib. Lo vemos con un ejemplo: Vamos a seguir el tamaño ocupado en el disco duro a lo largo del tiempo.

Para ello vamos a ver que pinta tiene una entrada de monitorización del /etc/mrtg.cfg

### Interface 2 >> Descr: 'eth0' | Name: '' | Ip: ' 192.168.1.3' | Eth: '00-00-e8-ec-13-a3' ###

Target[localhost_2]: 2:miclave@localhost:
SetEnv[localhost_2]: MRTG_INT_IP="192.168.1.3" MRTG_INT_DESCR="eth0"
MaxBytes[localhost_2]: 1250000
Title[localhost_2]: Traffic Analysis for 2 -- hradcany
...
...

Vemos como define el objetivo a montorizar, el Target, con

Target[localhost_2]: 2:miclave@localhost:

Esto quiere decir que le va a preguntar al snmp por el tráfico del segundo interfaz (eth0), y es lo que va a representar. Como hemos dicho antes, por defecto, el cfgmaker nos prepara al mrtg para monitorizar tráfico de red. Pero en general, la forma de decirle que queremos que nos pinte cualquier variable de la mib, es así:

Target[etiqueta]: variable1&variable2:clave@host:

en donde etiqueta es un nombre que le ponemos nosotros, variable1 y variable2 son dos posibles variables de la mib a representar en el mismo gráfico, y clave y host son la clave de la community snmp y el host que queremos monitorizar.

Para que se hagan una idea de la cantidad de información que puede gestionar snmp a través de la mib, ejecuta:

root@bionico-desktop:# snmpwalk -v 1 -c public -On localhost .|more

y veréis que hay de todo. Bueno, ya que estamos con la ocupación del disco, vamos a buscar algo por la mib:

root@bionico-desktop:# snmpwalk -v 1 -c public -On localhost disk


.1.3.6.1.4.1.2021.13.15.1.1.1.1 = INTEGER: 1
.1.3.6.1.4.1.2021.13.15.1.1.1.2 = INTEGER: 2
.1.3.6.1.4.1.2021.13.15.1.1.1.3 = INTEGER: 3
.1.3.6.1.4.1.2021.13.15.1.1.1.4 = INTEGER: 4
.1.3.6.1.4.1.2021.13.15.1.1.1.5 = INTEGER: 5
.1.3.6.1.4.1.2021.13.15.1.1.1.6 = INTEGER: 6
.1.3.6.1.4.1.2021.13.15.1.1.1.7 = INTEGER: 7
.1.3.6.1.4.1.2021.13.15.1.1.1.8 = INTEGER: 8
.1.3.6.1.4.1.2021.13.15.1.1.1.9 = INTEGER: 9
.1.3.6.1.4.1.2021.13.15.1.1.1.10 = INTEGER: 10
.1.3.6.1.4.1.2021.13.15.1.1.1.11 = INTEGER: 11

...

...

Mrtg conoce algunas variables por su nombre, pero puede acceder a todas por su número, así mejor obtenemos el número de la variable que es...

Esos números son los que entiende mrtg. Así nos prepararemos una entrada a medida para el /etc/mrtg.cfg, tomando como modelo otra entrada prefabricada por el cfgmaker, que será algo así:

Target[hda1]: 1.3.6.1.4.1.2021.9.1.8.1&1.3.6.1.4.1.2021.9.1.8.1:public@localhost:
SetEnv[hda1]: MRTG_INT_IP="192.168.1.3" MRTG_INT_DESCR="Disco ocupado"
Title[hda1]: Disco duro
Factor[hda1]: 1000
YTicsFactor[hda1]: 1000
MaxBytes[hda1]: 1152828
Options[hda1]: gauge, noinfo
YLegend[hda1]: Ocupado
ShortLegend[hda1]: bytes
Legend1[hda1]: Disco ocupado
....
.....

Nótese que al usar la misma variable dos veces, se va a pintar únicamente un gráfico. Lo normal es tener dos variables distintas y pintar dos gráficos en la misma imagen. Las opciones gauge y noinfo son para lo siguiente: gauge le dice a mrtg que su valor es un contador absoluto, o sea que su valor es siempre el que tiene que representar. En caso contrario, mrtg cree que es un contador normal, con lo cual resta el valor actual del valor anterior y toma esa resta como el valor que tiene que representar, y noinfo es para que no sea demasiado elocuente con la información que muestra. Ahora volvemos a ejecutar indexmaker y en unos minutos, en cuanto empiece a haber datos ya veremos una nueva gráfica.