La herramienta de base de datos Round Robin (RRDtool) es un sistema para almacenar y visualizar datos de series temporales (por ejemplo, ancho de banda de red, temperatura de la sala de máquinas, carga promedio del servidor). Almacena los datos en bases de datos Round Robin (RRD), lo que significa que los datos se almacenan en un formato circular: una vez que la base de datos alcanza su tamaño máximo, los datos más antiguos se sobrescriben con los nuevos.
1.-
Para almacenar datos, primero se debe crear una base de datos RRD. Por ejemplo, para monitorear la carga promedio de un servidor:
# rrdtool create load_average.rrd \
--start N \
--step 300 \
DS:load1:GAUGE:600:0:U \
DS:load5:GAUGE:600:0:U \
DS:load15:GAUGE:600:0:U \
RRA:AVERAGE:0.5:1:288
Las opciones:
--start N: Inicia la base de datos en el momento actual.
--step 300: Define un intervalo de 300 segundos [5 minutos] entre actualizaciones.
DS:load1:GAUGE:600:0:U: Define un Data Source [DS] llamado load1 de tipo GAUGE [valor crudo], con un tiempo de espera de 600 segundos, valor mínimo 0 y máximo desconocido [U].
RRA:AVERAGE:0.5:1:288: Define un Round Robin Archive [RRA] que almacena el promedio de los valores, con 288 puntos [un día de datos con intervalos de 5 minutos].
# rrdtool update load_average.rrd N:0.15:0.10:0.05
2.-
Para crear una gráfica de la carga promedio en las últimas 24 horas:
rrdtool graph load_graph.png \
--start -86400 \
--title "Carga promedio del servidor" \
--vertical-label "Carga" \
DEF:load1=load_average.rrd:load1:AVERAGE \
DEF:load5=load_average.rrd:load5:AVERAGE \
DEF:load15=load_average.rrd:load15:AVERAGE \
LINE1:load1#FF0000:"Carga 1 min" \
LINE2:load5#00FF00:"Carga 5 min" \
LINE3:load15#0000FF:"Carga 15 min"
Las opciones:
--start -86400: Muestra los datos de las últimas 24 horas (86400 segundos).
DEF: Define una fuente de datos para graficar.
LINE1, LINE2, LINE3: Define las líneas en el gráfico con sus respectivos colores y etiquetas.
# rrdtool fetch load_average.rrd AVERAGE --start -86400
3.-
Monitoreo de tráfico de red
Crear la base de datos:
# rrdtool create traffic.rrd --start N --step 300 DS:in:COUNTER:600:0:U DS:out:COUNTER:600:0:U RRA:AVERAGE:0.5:1:288
Actualizar la base de datos con datos de tráfico:
# rrdtool update traffic.rrd N:123456:654321
Generar un gráfico:
# graph traffic_graph.png --start -86400 --title "Tráfico de red" --vertical-label "Bytes" DEF:in=traffic.rrd:in:AVERAGE DEF:out=traffic.rrd:out:AVERAGE LINE1:in#FF0000:"Entrada" LINE2:out#00FF00:"Salida"