diego morales mrtg - proyectos.softwarelibre.edu.uy filemrtg este manual de configuración tiene...

28
Diego Morales MRTG Este manual de configuración tiene como propósito fundamental, brindar un conocimiento técnico que permita a cualquier persona con pocos conocimientos previos acerca de SNMP, configurar MRTG (Multi Router Traffic Grapher) y los elementos de la red SNMP (Simple Network Management Protocol). Dicha configuración permitirá recopilar información sobre el estado y el comportamiento de los elementos del servidor. Instalación: Para la instalación de MRTG hay que tener en cuenta que se necesita tener un servidor web instalado, como puede ser Apache. Para instalar Apache: $ sudo apt-get install apache2 Para la instalación de MRTG en debían: $ sudo apt-get install mrtg Configuración: -Crear carpetas para el servidor web: Hay que crear el directorio que hospede los archivos web (paginas HTML). Dependiendo de su configuración del servidor web, el path puede variar, pero por defecto, el directorio se crearía en /var/www/html: $ mkdir /var/www/html/servidor Con ese comando hemos creado una carpeta llamada servidor, luego le damos permisos con el siguiente comando: $ chmod 777 /var/www/html/servidor

Upload: dangdien

Post on 29-Jun-2019

248 views

Category:

Documents


0 download

TRANSCRIPT

Diego Morales

MRTGEste manual de configuración tiene como propósito fundamental, brindar un conocimiento técnico que permita a cualquier persona con pocos conocimientos previos acerca de SNMP, configurar MRTG (Multi Router Traffic Grapher) y los elementos de la red SNMP (Simple Network Management Protocol). Dicha configuración permitirá recopilar información sobre el estado y el comportamiento de los elementos del servidor.

Instalación:

Para la instalación de MRTG hay que tener en cuenta que se necesita tener un servidor web instalado, como puede ser Apache.

Para instalar Apache:

$ sudo apt-get install apache2

Para la instalación de MRTG en debían:

$ sudo apt-get install mrtg

Configuración:

-Crear carpetas para el servidor web:

Hay que crear el directorio que hospede los archivos web (paginas HTML). Dependiendo de su configuración del servidor web, el path puede variar, pero por defecto, el directorio se crearía en /var/www/html:

$ mkdir /var/www/html/servidor

Con ese comando hemos creado una carpeta llamada “servidor”, luego le damos permisos con el siguiente comando:

$ chmod 777 /var/www/html/servidor

Diego Morales

Crear archivos de configuración:

Crearemos una carpeta llamada “monitoreo” en el directorio “/etc/”:

$ sudo mkdir /etc/monitoreo

Dentro de la misma crearemos el archivo de configuración.

-Archivo de configuración:

Los archivos de configuración deben ser creados y deben tener extensión “.cfg”. Para el servidor Homero el archivo de configuración fué creado en: “/etc/monitoreo/servidor.cfg”.

-Sintaxis:

La sintaxis del archivo de configuración de MRTG sigue algunas reglas simples:

Las palabras claves deben empezar al principio de una línea.

Las líneas que siguen a la palabra clave que empiecen con un espacio en blanco se añaden a la línea de la palabra clave

Se ignoran las líneas vacías

Las líneas que empiezan con el signo # son comentarios.

Puedes añadir otros archivos al fichero de configuración usando

-Palabras claves globales.

Directorio de trabajo (WorkDir)WorkDir especifica donde deben crearse los registros (logs) y las páginas web.

Ejemplo:

WorkDir: /var/www/html/servidor

Diego Morales

-Palabras Claves Globales Opcionales.

Directorio de HTML (HtmlDir):HtmlDir determina el directorio dónde se encuentra el html (o shtml).

NOTA: Workdir predomina sobre htmldir, imagedir y logdir.

Ejemplo:

Htmldir: /www/html/mrtg/

Directorio de imagenes (ImageDir)ImageDir determina el directorio dónde se encuentran las imagenes, debe estar por debajo de HtmlDir.

Ejemplo:

Imagedir: /www/html/mrtg/images

Directorio de registros (LogDir)LogDir determina el directorio dónde se encuentran los registros (logs). No es necesario que este por debajo de HtmlDir.

Ejemplo:

Logdir: /www/html/mrtg/logs

Forks (solo UNIX)

Un sistema que puede bifurcarse (UNIX por ejemplo) mrtg pueden bifurcarse en instancias múltiples mientras adquiere datos vía snmp.

Para las situaciones con latencia alta o un gran número de dispositivos esto acelerará las cosas considerablemente.

Ejemplo:

Forks: 4

Diego Morales

Actualización de página HTML (Refresh)

¿Cuántos segundos debe esperar el navegador para recargar la página? Si no se define, el valor por defecto es 300 segundos (5 minutos).

Ejemplo:

Refresh: 600

Intervalo (Interval)¿Cuán a menudo invocas a mrtg? El valor por defecto es 5 minutos. Silo quieres invocar con otra frecuencia, debes especificarlo aquí. Esto hace dos cosas:

la página de HTML generada contiene la información correctasobre el intervalo invocado...

una cabecera META en la página de HTML generada informará al caché sobre el tiempo de vida de esta página.....

En este ejemplo le decimos a mrtg que se ejecute cada 10 minutos.

Ejemplo:

Interval: 10

NoMib2Normalmente preguntamos al dispositivo SNMP por las propiedades de 'SysUptime', 'sysName' algunos no las tienen. Si quieres evitar recibir las quejas de mrtg sobre estas propiedades perdidas, especifica la opción nomib2.

Ejemplo:

NoMib2: Yes

Diego Morales

Peticiones simples (SingleRequest)Algunas implementaciones de SNMP no pueden tratar peticiones con múltiples variables snmp. Pon esto en tu archivo cfg para obligar a mrtg a solicitar una variable por la petición.

Ejemplo:

SingleRequest: Yes

Directorio de iconos (IconDir)Si quieres tener los iconos del mrtg en otro lugar que no sea el directorio de trabajo (o imagedir), usa la variable IconDir para definir la url del directorio de los iconos.

Ejemplo:

IconDir: /mrtgicons/

Carga de MIB (LoadMIBs)Carga el fichero(s) MIB especificado y deja sus OIDs disponibles como nombres simbólicos. Para un mejor rendimiento, se mantiene un caché de MIBs en WorkDir.

Ejemplo:

LoadMIBs: /dept/net/mibs/netapp.mib,/usr/local/lib/ft100m.mib

Idioma (Language)Cambia el formato de la salida al Idioma seleccionado (Verifica el directorio translate para ver qué idiomas se soportan. En este directorio puedes encontrar también las instrucciones sobre cómo crear nuevas traducciones).

Actualmente se soportan los siguientes idiomas: big5, brasileño, búlgaro, catalan, chino, checo, danés, holandés, eucjp, francés, gallego, gb, gb2312, alemán, griego, húngaro, islandés, iso2022jp,

Diego Morales

italiano, coreano, lituano, malayo, noruego, polaco, rumano, ruso, servio, eslovaco, español, sueco, turco....

Ejemplo:

Language: spanish

Ejecutar como demonio (RunAsDaemon)La palabra clave RunAsDaemon habilita el funcionamiento en modo demonio. El propósito de este modo es que MRTG se lance una vez y no mediante cron como en el modo nativo. Esta conducta ahorra recursos como cargar y analizar archivos de la configuración ya que esto sólo ocurre una vez.

En el modo demonio MRTG es el responsable de cronometrar los intervalos. Por consiguiente es importante fijar el parámetro Interval aun valor apropiado.

Ejemplo:

RunAsDaemon: Yes

Interval: 5

Hace que MRTG se ejecute como demonio y recopila datos cada 5 minutos.

Nota: Usando el modo demonio MRTG ya no debe arrancarse desde cron ya que cada proceso se ejecutaría siempre. Además en el modo demonio se exige reiniciar el proceso para activar los cambios en el archivo de configuración.

Mas adelante se verá como crear “scripts” para detener, comenzar y reiniciar el proceso “mrtg” ya que cada vez que se haga un cambio enalgún archivo de configuración es necesario reiniciar el proceso.

Hasta acá podemos ver las palabras claves globales más relevantes, ahora veremos un ejemplo de un archivo de configuración:

Diego Morales

Nota: Con estas palabras claves globales ya basta para que MRTG se ejecute solo cada 5 minutos. No necesitamos de un Cron.

CONFIGURACION POR OBJETIVO

Cada objetivo supervisado debe identificarse por un nombre único. Este nombre debe añadirse a cada parámetro perteneciente al mismoobjetivo. El nombre también se usará para nombrar las páginas web, históricas e imágenes generadas para este objetivo.

Objetivo (Target)Con la palabra clave “Target” decides lo que debe supervisar mrtg. Lapalabra clave ”Target” toma los argumentos en una amplia gama de formatos:

*Básico

El formato más básico es ``port:community@router'' Esto generará un gráfico de tráfico para la interface 'port' de la máquina 'router' (nombre dns o dirección IP) y usará la comunidad 'community' (la contraseña snmp) para la consulta snmp.

Ejemplo:

Target [ezwf]: 2: public@myrouter

Si la comunidad contiene `` @'' o `` '' estos carácteres deben ser precedidos con `` \.''

Target [bla]: 2:stu/pi/@myrouter

Diego Morales

*Invirtiendo

A veces estás situado en el lado equivocado del enlace, y te gustaría que mrtg informara el tráfico de entrada como de salida y viceversa. Esto puede lograrse agregando el signo '-' delante la descripción del ``Objetivo''. Intercambia las frecuencias de tráfico entrante y saliente.

Ejemplo:

Target [ezci]: -1:publci@myrouter

*OIDs explícitos

También puedes definir explícitamente el OID para interrogar usandola siguiente sintaxis 'OID_1&OID_2: community@router' El ejemplosiguiente recuperará el contador de error para la entrada y salida delinterface 1. MRTG necesita dos variables para hacer el gráfico, por loque es preciso especificar dos OID como temperatura y humedad oerrores entrantes y salientes.

Ejemplo:

Target [ezwf]:1.3.6.1.2.1.2.2.1.14.1$1.3.6.1.2.1.2.2.1.20.1:public@myrouter

*Variables MIB

MRTG conoce varios nombres simbolicos de variables SNMP. Mira el archivo mibhelp.txt para una lista de nombres conocidos. Un ejemplo es ifInErrors e ifOutErrors. Esto significa que puedes especificar lo anterior como:

Ejemplo:

Target [ezwf]:ifInErrors.1$ifOutErrors:public@myrouter

*Interface por IP

A veces el índice de interface SNMP puede cambiar, como cuando se agregan o se quitan nuevas interfaces. Esto puede causar que todas las entradas del Objetivo en tu fichero de configuración estén equivocadas por el desplazamiento, haciendo que MRTG realice

Diego Morales

gráficos equivocados, etc. MRTG soporta direcciones IP en lugar de ifindex al definir un objetivo. Entonces MRTG consultará al dispositivo snmp e intentará asignar la dirección IP al ifindex actual, puedes usar la dirección IP en cualquier objetivo, agregando la dirección IP de la interface numerada después del OID y del caracter de separación '/'.

Asegúrarse que la dirección de IP dada se usa en el mismo router, sobre todo cuando hagas gráficos de dos OIDs diferentes y/o una división de la interface por el delimitador '&'.

Puedes decir a cfgmaker que genere tales referencias con la opción --ifref=ip.

Ejemplo:

Target [ezwf]: /1.2.3.4:@myrouter

Target [ezwf]: -/1.2.3.4:@myrouter

Target [ezwf]: /1.2.3.4:@myrouter

Target [ezwf]:1.3.6.1.2.1.2.2.14/1.2.3.4&.1.2.3.4&1.3.6.1.2.1.2.2.1.14/1.2.3.4 :@myrouter

Target [ezwf]: ifInErrors/1.2.3.4&ifoutErros/1.2.3.4:@myrouter

*Interface por Descripción

Si no puedes usar direcciones IP podrías usar nombres de la interface.Esto trabaja de forma similar a la dirección IP solo que debes usar el prefijo \ en lugar de / Puedes decir a cfgmaker que genere tales referencias con la opción --ifref=descr.

Ejemplo:

Target [ezwf]:\My-Interface2:@myrouter

Diego Morales

Target [ezci]:\My-Interface2:@myrouter

Target [ezwf]:1.3.6.1.2.1.2.2.1.14\My-Interface2$1.3.6.1.2.1.2.2.1.14\My-Iinterface3:public@myrouter

Target [ezwf]: ifInErrors\My-Interface2&ifOutErrors\My-Interface3:public@myrouter

Si la descripción contiene `` &'', ``:'', ``@'' o un`` '' debes precederloscon contrabarra:

Target [ezwf]:\fun\:\ney\$ddd :public@10 myrouter

*Interface por Nombre

La única manera razonable de referenciar interfaces de tus conmutadores.

Puedes decir a cfgmaker que genere tales referencias con la opción --ifref=name.

Ejemplo:

Target [ezwf]: #2/11:public@myrouter

Target [ezci]: -#2/11:public@myrouter

Target [ezwf]: 1.3.6.1.2.1.2.2.1.14#$1.3.6.1.2.1.2.2.1.14#3/7:public@myrouter

Target [ezci]: ifInErrors#3/7$ifOutErrors#3/7:public@myrouter

Diego Morales

Si la descripción contiene `` &'', ``:'', ``@'' o un`` '' debes precederloscon contrabarra:

Target [ezci]: #\:\ fun:[email protected]

Nota: el signo # se interpretará como un principio de comentario si es el primer carácter en la línea.

*Interface por dirección Ethernet

Cuando el índice del interface SNMP cambia, puedes codificar esa interface por su 'dirección física', conocida como dirección hardware, que es la variable de SNMP 'ifPhysAddress'. Internamente, MRTG empareja la Dirección Física del fichero *.cfg a su índice actual, y entonces usa ese índice por el resto de la sesión.

Puedes usar la Dirección Física en cada tipo definido en el objetivo, agregando la Dirección Física después del OID y del caracter de separación '!' (análogo a la opción de dirección IP). La dirección Física se especifica delimitando los octetos con '-', como ``0a-0-f1-5-23-18'' (omite las comillas dobles). Nota que algunos conmutadores usan la misma Dirección Hardware de Ethernet para todos sus Interfaces lo que impide la identificación única de la interface. Mrtg notará problemas semejantes y te alertará.

Puedes decir al cfgmaker que genere los archivos de configuración con referencias a la dirección hardware de ethernet usando la opción --ifref=eth.

Ejemplo:

Target [ezwf]:! 0a-0b-0c-0d:public@myrouter

Target [ezci]: -! 0-f-bb-05-71-22:public@myrouter

Target [ezwf]: 1.3.6.1.2.1.2.2.1.14!0a-00-10-23-44-51&!0a-00-10-23-44-51:public@myrouter

Diego Morales

Target [ezwf]:ifInErrors!0a-00-10-23-44-51&ifOutErrors!0a-00-10-23-44-51:public@myrouter

*Interface por Tipo

Parece que hay dispositivos que intentan desafiar todos los esfuerzos de supervision, las interfaces interesantes no tienen ni ifName ni ifDescr constante y ni pensar en un ifIndex persistente. La única manera de conseguir una cartografía constante es mirando el tipo de interface, porque la interface en la que estás interesado es única en el dispositivo al que estás mirando...

Puedes decir a cfgmaker que genere tales referencias con la opción --ifref=type.

Ejemplo:

Target [ezwf]: %13:public@wellfleet myrouter

Target [ezci]: -%13:public@myrouter

Target [ezwf]:1.3.6.1.2.1.2.2.1.14%13&1.3.6.1.2.1.2.2.1.14%14:public@myrouter

Target [ezwf]:ifInErrors%13&ifOutErrors%14:public@myrouter

*Sintaxis extendida de nombres de maquinas

En todos los lugares dónde se acepta 'community@router', puedes añadir parámetros adicionales para la comunicación con SNMP separandolos con dos puntos. La sintaxis completa es como sigue:

community@router[:[port][:[timeout][:[retries][:[backoff][:version]]]]]

Diego Morales

Donde el significado de cada parámetro es como sigue:

Puerto (port)

El puerto de UDP para ponerse en contacto con el agente SNMP (por defecto: 161)

Tiempo de espera (timeout)

Tiempo de espera inicial para las consultas de SNMP, en segundos (por defecto: 2.0)

Reintentos (retries)

El número de veces que se reintentará una petición de timed-out (por defecto: 5)

Factor multiplicador (backoff)

El factor por cuál el tiempo de espera se multiplica en cada reintento (por defecto: 1.0).

Versión (version)

La versión de SNMP si tienes un router rápido podrías querer poner un '2' aquí. Esto hará a mrtg intentar consultar los contadores de 64 bits. Y así previene la encapsulacion excesiva del contador. Aunque no todos los routers soportan esto.

Ejemplo:

3:public@router1:::::2

Un valor igual a el valor por defecto se puede omitir. También pueden omitirse los dos puntos sobrantes.

Ejemplo:

Target [ezci]: 1:public@myrouter:9161::4

Esto se refiere a los contadores de octetos de E/S para la interface con ifIndex 1 en myrouter, reconocido por el agente SNMP que escucha el puerto UDP 9161. Se usa el tiempo de espera normal (2.0 segundos), pero el número de reintentos se pone a cuatro. El valor delbackoff es el valor por defecto.

Diego Morales

*Guiones externos de supervisión

Si quieres supervisar algo que no proporciona datos vía snmp puede usar algún programa externo para hacer la recolección del datos.

El programa externo debe devolver 4 líneas de salida:

Line 1

El estado actual de la primera variable, normalmente 'cuenta de bytes entrantes'

Line 2

El estado actual de la segunda variable, normalmente 'cuenta de bytes salientes'

Line 3

Cadena (en cualquier formato legible humano), diciendo el tiempo de funcionamiento del objetivo.

Line 4

Cadena, diciendo el nombre del objetivo.

Ejemplo:

Target[ezwf]: `/usr/local/bin/df2mrtg/dev/dsk/c0t2d0s0`

Nota: el uso del acentos graves (`), no apóstrofes (') alrededor del mandato.

Velocidad máxima (MaxBytes)El valor máximo que las dos variables supervisadas pueden alcanzar. Para supervisar el tráfico de router normalmente se especifica en los bytes por segundo que este puerto puede alcanzar.

Si se devuelve un número superior a MaxBytes, se ignora. Lee la sección AbsMax para ampliar informacion. El valor MaxBytes también se usa para calcular el rango Y para los gráficos sin escala.

Si necesitas dos valores de MaxBytes diferentes para las dos variablessupervisadas, puedes usar MaxBytes1 y MaxBytes2 en lugar de MaxBytes.

Diego Morales

Ejemplo:

MaxBytes[ezwf]: 1250000

*Velocidad máxima 1 (MaxBytes1): Lo mismo que MaxBytes, para la variable 1.

*Velocidad máxima 2 (MaxBytes2): Lo mismo que MaxBytes, para la variable 2.

Título (Title)El título para la página HTML que se genera para el gráfico.

Ejemplo:

Title [ezwf]: Trafico Puerto 6

PARAMETROS OPCIONALES POR OBJETIVO

Cabecera de título (PageTop)Datos a agregar a la cabecera de la página HTML generada. Nota que puedes tener varias líneas de texto con tal de que la primera columnaesté vacía.

Nota: Las líneas continuas apareceran en la misma línea en la página html. Si quieres saltos de línea en el html generado usa '\n'.

Ejemplo:

PageTop [ezwf]: <h1> Análisis de trafico para ETZ c95.1 </h1>

El troncal de nuestro campo funciona sobre una línea FDDI \n con una trasferencia máxima de 12.5 megabytes por segundo.

Diego Morales

Tiempo de funcionamiento (RouterUptime)En los casos dónde calculas el ancho de banda usado por varias interfaces normalmente no podrás visualizar el tiempo de funcionamiento y el nombre del conmutador en la pagina web.

Si estas interfaces están en el mismo router y no obstante el tiempo de funcionamiento y nombre deben visualizarse tienes que especificarsu comunidad y dirección de nuevo con la palabra clave RouterUptime.

Ejemplo:

Target[kacisco.comp.edu] : 1:[email protected] + 2:[email protected] RouterUptime[kacisco.comp.edu] : [email protected]

Pie de página (PageFoot)Datos a agregar al pie de la página HTML generada. Nota que puedes tener varias líneas de texto con tal de que la primera columna esté vacía.

Nota: Las líneas continuas apareceran en la misma línea en la páginahtml. Si quieres saltos de línea en el html generado usa '\n'

El material se añadirá detras de la etiqueta </BODY>

Ejemplo:

PageFoot [ezwf]: Contacta a <A [email protected];>Peter</A>

Cabecera (AddHead)Usa esta etiqueta como la cabecera PageTop, pero sus contenidos se agregarán entre </TITLE> y </HEADE <gt>.

Ejemplo:

AddHead [ezwf]: <link rev= “hecho por” href= DiegoMorales”;>

Diego Morales

Etiqueta de cuerpo (BodyTag)

BodyTag te permite proporcionar tu propia etiqueta<body ...>para laspáginas web que generes.

Ejemplo:

BodyTag [ezwf]: <BODY LEFTMARGIN=”1”TOPMARGIN=”1” BACKGROUND=”/stats/images/bg.neo2.gif”>

Valor máximo absoluto (AbsMax)Si estás supervisando un vínculo que puede manejar más tráfico que el valor MaxBytes. Ej, una línea que usa compresión o algún enlace frame relay, puedes usar la palabra clave AbsMax para especificar el valor máximo absoluto a ser usado. Necesitamos conocer esto para ordenar los valores poco realistas devueltos por el router. Si no fijas AbsMax, rateup ignorará los valores superiores a MaxBytes.

Ejemplo:

AbsMax[ezwf]: 2500000

Escala de visualización (Unscaled)Por defecto cada gráfico se escala verticalmente para hacer los datos actuales visibles incluso cuando sean muy inferiores a MaxBytes. Con la variable Unscaled puedes suprimir esto. El argumento es una cadena, conteniendo una letra para cada gráfico que no quieres que sea escalado: d=dia w=semana m=mes y=año. En el ejemplo la escala para el gráfico anual y mensual se suprime.

Ejemplo:

Unscaled[ezwf]: ym

Valores máximos (WithPeak)Por defecto los gráficos sólo contienen los valores promedio de las variables supervisadas - normalmente la tasa de transferencia para eltráfico entrante y saliente. La opción siguiente informa al mrtg que

Diego Morales

visualice los valores máximos en el gráfico semanal, mensual y anual.En el ejemplo definimos el gráfico mensual y anual para contener los valores promedio y máximo.

Ejemplo:

WithPeak[ezwf]: ym

Supresión de gráficos (Suppress)Por defecto mrtg produce 4 gráficos. Con esta opción puedes suprimirla generación de los gráficos seleccionados. La sintaxis de esta opciónes igual a las dos opciones anteriores. En este ejemplo suprimimos el gráfico anual ya que esta bastante vacío al principio.

Ejemplo:

Suppress[ezwf]: y

Extensión de archivos (Extension)Por defecto, el mrtg crea archivos .html. Utiliza esta opción para decir al mrtg que use una extensión diferente. Por ejemplo podrías poner laextensión php3, entonces podrás incluir etiquetas de PHP en la salida (util para sacar un nombre de router de una base de datos).

Ejemplo:

Extension[ezwf]: phtml

Tamaño de gráfico (XSize YSize)Por defecto los gráficos de mrtg son de 100 por 400 pixels de ancho (un poco más por las etiquetas). En el ejemplo conseguimos gráficos casi cuadrados...

Diego Morales

Ejemplo:

XSize[ezwf]: 300

YSize[ezwf]: 300

Ampliación de gráfico (XZoom YZoom)Si quieres que tus gráficos tengan los pixel más grandes, puedes ``ampliarlos''.

Ejemplo:

XZoom[ezwf]: 2.0

YZoom[ezwf]: 2.0

XScale and YScaleSi quieres escalar tus gráficos usa XScale e YScale.

Ejemplo:

XScale[ezwf]: 1.5

YScale[ezwf]: 1.5

FactorSi quieres multiplicar todos los números mostrados debajo del gráfico con un factor constante, usa esta directiva para definirlo..

Ejemplo:

Factor[as400]: 4096

Diego Morales

Opciones (Options)

La palabra clave Options te permite poner algunos interruptores booleanos:

-growright

El gráfico se desplaza por defecto para la izquierda. Esta opción cambia la dirección de desplazamiento lo que causa que el tiempo actual esté en el borde correcto del gráfico y los valores historicos a la izquierda del mismo.

-bits

Todo los valores de las variables supervisadas se multiplican por 8 (es decir se muestran en bits en lugar de bytes. También afecta al etiquetado 'por defecto' y unidades para el objetivo dado.

-perminute

Todo los valores variables supervisados se multiplican por 60 (es decir se muestran en unidades por minuto en lugar de unidades por segundo) en caso de valores pequeños se visualizan gráficos más exactos. También afecta al etiquetado 'por defecto' y unidades para el objetivo dado.

-perhour

Todo los valores variables supervisados se multiplican por 3600 (es decir se muestran en unidades por hora en lugar de unidades por segundo) en caso de valores pequeños se visualizan gráficos más exactos. También afecta al etiquetado 'por defecto' y unidades para el objetivo dado.

-noinfo

Suprime la información sobre el tiempo de funcionamientoy nombre del dispositivo en pagina web generada.

-nopercent

No imprimir porcentajes de uso

Diego Morales

-transparent

Hacer el fondo de los gifs generados transparente...

-integer

Imprime las líneas de resumen debajo del gráfico como enteros sin coma

-gauge

Trata los valores reunidos del objetivo como medidas del 'estado actual' y no como incrementos de los contadores. Esto sería útil para supervisar cosas como el espacio en disco, carga del procesador, la temperatura, y lo que quieras...

En la ausencia de las opciones 'gauge' o 'absolute', MRTG trata la variable como un contador y calcula la diferencia entre el valor actual y anterior y divide eso por el tiempo transcurrido entre las últimas dos lecturas para conseguir trazar el valor.

-absolute

Esto es para contadores de fuentes de datos que restauran su valor cuando se leen. Esto significa que rateup no tiene que establecer la diferencia entre el valor actual y último leido de la fuente de datos. El valor obtenido aún es dividido porel tiempo transcurrido entre la lectura actual y la última lo que lo hace diferente de la opción 'gauge'. Útil para recolectores de datos externos.

-unknaszero

Registra los datos desconocidos como cero en lugar del comportamiento prefijado de repetir el último valor visto. Ten el cuidado con esto, a menudo una línea plana en el gráfico es mucho más obvia que una línea en 0.

- withzeroes

Normalmente ignoramos todo los valores que son cero al calcular el promedio de la tasa de transferencia en una línea. Si no quieres que esto courra usa esta opción.

Diego Morales

-noborder

Si no usas rateup para recopilar datos, MRTG creará las imágenes. Normalmente estas imagenes tienen un borde sombreado alrededor. Si no quieres que se dibujen los bordes, activa esta opción. Esta opción no tiene efecto si no usas rateup.

-noarrow

Como en la opción anterior, esto sólo afecta a la generación de gráficos de rateup. Normalmente rateup generará los gráficos con una flecha pequeña que muestra la dirección de los datos. Si no quieres dibujar esta flecha, habilita esta opción. Esta opción no tiene el efecto si no estás usando rateup.

-noi

Al usar rateup para la generación del gráfico, puedes usar esta opción para impedir a rateup que dibuje un gráfico para 'I' o la primera variable. Esto también quita las entradas para esta variable en la página HTML que MRTG genera, y quitará los picos para esta variable si están habilitados. Esto te permite ocultar estos datos, o puede ser muy útil si sólo estás dibujandouna línea de datos en lugar de dos. Esta opción no es destructiva - cualquier datos recibido por la variable continua siendo registrado, sólo no se muestra.

-noo

Lo mismo que lo anterior, excepto que esta relacionado con 'O' o la segunda variable.

-nolegend

Al usar rateup para la generación del gráfico, esta opción impedirá que MRTG cree la leyenda al final de las páginas HTMLque genera.

Diego Morales

Ejemplo:

Options[ezwf]: growright, bits

Multiplicador de prefijos (kilo)Usa esta opción para cambiar el valor del multiplicador para construir los prefijos. El valor predefinido es 1000. Esta etiqueta es para el casoespecial en que 1kB=1024B, 1MB=1024kB y demás.

Ejemplo:

Kilo[ezwf]: 1024

Definición de prefijos (kMG)Cambia los prefijos multiplicadores predefinidos (,k,M,G,T,P). La etiqueta ShortLegend define sólo las unidades básicas. Formato:Lista de prefijos separados por comas. Dos comas consecutivas o una coma a principio o fin de la línea no dá ningún prefijo para ese elemento.

Nota: Si no quieres los prefijos, entonces deja la línea en blanco.

Texto de leyendas (Legend, ShortLegend, Legend[1234IO])Las siguientes palabras claves te permiten sustituir el texto visualizado para las diversas leyendas del gráfico y del documento HTML

-YLegend

La etiqueta del eje Y del gráfico. Nota que un texto demasiado largo para ajustarse al gráfico se ignorará.

-ShortLegend

La cadena de unidades (valor predefinido 'b/s') usada para Max,Promedio y Actual

Diego Morales

-Legend[1234IO]

La cadena para la leyenda de color

Ejemplo:

YLegend[ezwf]: Bits por Segundo

ShortLegend[ezwf]: b/s

Legend1[ezwf]: Tráfico de entrada en Bits por Segundo

Legend2[ezwf]: Tráfico de salida en Bits por Segundo

Legend3[ezwf]: Tráfico de entrada en Bits en 5 minutos

Legend4[ezwf]: Tráfico de salida en Bits en 5 minutos

LegendI[ezwf]: &nbsp;In:

LegendO[ezwf]: &nbsp;Out:

Nota: Si “LegendI” o “LegendO” estan fijadas a una cadena vacía con “LegendO[ezwf]:” la línea correspondiente debajo del gráfico no se imprimirá.

Asignación de variables de entorno (SetEnv)Al llamar a guiones externos desde tu archivo cfg (Umbrales o guiones de objetivos) puedres querer pasar algún dato al guión. Esto puede hacerse con la opción de configuración SetEnv... que asigna una serie de variables de entorno. Nota que las comillas son obligatorias.

Ejemplo:

SetEnv[myrouter]: [email protected]

HOST=www.servidor.net

URL="http://www.servidor.com/path/mrtg.html";

Diego Morales

Ejemplo de configuración:

Ahora veremos dos tipos de configuración con lo antes visto, en la primera veremos como en la sección “target” le pasamos por “OID” lo que deseamos monitorear, y en la segunda le pasamos la dirección de un script que ejecutará.

Diego Morales

Creación de Pagina HTML

Una vez terminada la creación de los archivos de configuración el siguiente paso es generar los archivos web para la configuración recién creada. Para ello, se utiliza la herramienta indexmaker, que viene con mrtg. La generación de dichos archivos se realiza de la siguiente manera:

$ sudo indexmaker /etc/monitoreo/servidor/servidor.cfg –output /var/www/html/servidor/index.html

Donde:

/etc/monitoreo/servidor/servidor.cfg es el archivo de configuración.

--output /var/www/html/servidor/index.html es la ubicación y nombre del archivo index principal.

Con todo en su lugar ahora debemos ejecutar MRTG, para esto debemos posicionarnos en la carpeta que contiene el archivo de configuración y ejecutar el siguiente comando:

$ sudo env LANG=C /usr/bin/mrtg archive.cfg

Diego Morales

De esta manera comenzarà el proceso MRTG para ese archivo de configuración.

Por ultimo acceder a las gráficas es tan simple como apuntar con el navegador a la dirección del servidor donde se encuentra instalado MRTG. Por ejemplo:

http://164.73.226.8/servidor

Y se debería verse algo así:

Scripts Relevantes

Durante toda la explicación de la instalación, se puede observar que se utilizan varios scripts, a continuación veremos algunos de ellos a modo de ejemplo. (Los scripts pueden ser cualesquieras siempre y cuando cumplan lo especificado).

Diego Morales

*Script de Restart

Lo que hace es detener y comenzar los procesos MRTG (cada vez que se hace algún tipo de cambio en un archivo de configuración, es necesario detener y volver a comenzar).

*Script en archivos de configuración

En los archivos de configuración pudimos observar que a los objetos en la sección de “target” le podíamos colocar la dirección de un scriptpara que lo ejecute.

Este script debe devolver cuatro valores, los primeros dos son los valores de lo que se va a graficar (generalmente bytes entrantes y salientes).

El tercer valor un STRING que diga hace caunto tiempo a estado prendido el dispositivo monitoreado.

Y el cuarto otro STRING que diga el lugar donde se encuentra dicho dispositivo.

Veamos un ejemplo de este tipo de script: