¿Puede Prometheus monitorear dispositivos de red?

¿Puede Prometheus monitorear dispositivos de red?
La mayoría de los dispositivos de red admiten el protocolo SNMP (Protocolo de gestión de red simple). Puedes usar el Prometeo snmp_exporter para monitorear dispositivos de red respaldados por SNMP con Prometheus y Grafana.

En este artículo, le mostraré cómo monitorear la red de un enrutador de inicio (TP-Link Archer C5 V4) con Prometheus y Grafana. Entonces empecemos.

Tabla de contenido

  1. Requisitos previos
  2. Habilitar SNMP en dispositivos de red
  3. Instalación del exportador de SNMP
  4. Agregar exportador de SNMP a Prometheus
  5. Creación de un tablero de Grafana para monitorear dispositivos de red
  6. Establecer un tablero de grafana predeterminado
  7. A dónde ir después?
  8. Conclusión
  9. Referencias

Requisitos previos

Para probar los ejemplos de este artículo, debe tener instalados Prometheus y Grafana en su computadora, y Prometeo agregó a Grafana como fuente de datos.

Si necesita ayuda para instalar Prometheus en su computadora, consulte el artículo sobre cómo instalar Prometeo en Ubuntu 20.04 LTS.

Si necesita ayuda para instalar Grafana en su computadora y aprender los conceptos básicos de Grafana, consulte el artículo (¿Cómo conecto Grafana con Prometeo?).

Habilitar SNMP en dispositivos de red

Si desea monitorear un dispositivo de red con Prometheus a través de SNMP, debe habilitar SNMP en su dispositivo de red.

En mi TP-Link Archer C5 V4 enrutador, la configuración de SNMP está en Avanzado > Herramientas de sistema > Configuración de SNMP > Agente de SNMP, Como se muestra en la captura de pantalla a continuación. Si también está tratando de monitorear la red de un enrutador TP-Link, entonces la configuración de SNMP debe estar en la misma ubicación. Una vez que haya habilitado SNMP, haga clic en Ahorrar para que los cambios entren en vigencia.

Instalación del exportador de SNMP

Para que Prometeo recolecte métricas a través del protocolo SNMP, debe tener el Prometeo snmp_exporter instalado en su computadora y configure Prometheus para usarla.

En esta sección, le mostraré cómo instalar la última versión de Prometheus snmp_exporter en ubuntu 20.04 LTS. Entonces empecemos.

Primero, navegue al ~/Descargas Directorio de la siguiente manera:

$ cd ~/descargas

NOTA: La última versión de Prometeo snmp_exporter es V0.20.0 En el momento de este escrito. Cuando estás leyendo este artículo, versiones más nuevas del Prometeo snmp_exporter puede ser lanzado. En ese caso, puede copiar el enlace de descarga de la última versión del snmp_exporter y reemplácelo aquí. Puede encontrar el enlace a la última versión de snmp_exporter En la página oficial de lanzamiento de SNMP_EXPORTER GITHUB.

Descargue la última versión del Prometheus snmp_exporter Con el siguiente comando:

$ wget https: // github.com/prometheus/snmp_exporter/comunes/download/v0.20.0/SNMP_EXPORTER-0.20.0.Linux-amd64.alquitrán.GZ

Prometeo snmp_exporter El archivo debe descargarse.

Debe encontrar un archivo nuevo SNMP_EXPORTER-0.20.0.Linux-amd64.alquitrán.GZ en el ~/Descargas Directorio, como puede ver en la captura de pantalla a continuación.

$ ls -lh

Extraer el SNMP_EXPORTER-0.20.0.Linux-amd64.alquitrán.GZ Archivo en su directorio de trabajo actual de la siguiente manera:

$ Tar XZF SNMP_EXPORTER-0.20.0.Linux-amd64.alquitrán.GZ

Un nuevo directorio SNMP_EXPORTER-0.20.0.Linux-amd64/ debe crearse en su directorio de trabajo actual, como puede ver en la captura de pantalla a continuación.

$ ls -lh

Mueve el SNMP_EXPORTER-0.20.0.Linux-amd64/ directorio al /optar directorio y renombrarlo a snmp_exporter como sigue:

$ sudo MV -V SNMP_EXPORTER -0.20.0.linux-amd64 /opt /snmp_exporter

El SNMP_EXPORTER-0.20.0.Linux-amd64/ el directorio debe moverse a /optar y renombrado a SNMP_EXPORTER/, Como puede ver en la captura de pantalla a continuación.

$ ls -lh /opt /

En el /opt/snmp_exporter/ directorio, el snmp_exporter El binario se usa para comenzar el SNMP-EXPORTER servicio y el SNMP.YML es el snmp_exporter archivo de configuración.

NOTA: El archivo de configuración SNMP.YML es muy largo y no es aconsejable editarlo a mano. En su lugar, debe usar el snmp_exporter configuración generador Para generar una costumbre SNMP.YML archivo de configuración. Está fuera del alcance de este artículo para mostrarle cómo usar el generador para generar una personalización SNMP.YML archivo de configuración. Si está utilizando dispositivos de red más nuevos, el predeterminado debería estar bien. Para obtener más información sobre esto, consulte la página GitHub del generador de configuración SNMP_EXPORTER.

$ LS -LH /OPT /SNMP_EXPORTER

Crear un enlace simbólico del snmp_exporter binario en el camino /usr/local/bin/snmp_exporter de manera que la snmp_exporter El comando está disponible desde el terminal como cualquier otro comando.

$ sudo ln -s/opt/snmp_exporter/snmp_exporter/usr/local/bin/snmp_exporter

Crear un nuevo archivo de servicio Systemd SNMP-EXPORTER.servicio en el /etc/systemd/system/ Directorio de la siguiente manera:

$ sudo nano/etc/systemd/system/snmp-exporter.servicio

Escriba las siguientes líneas de códigos en el SNMP-EXPORTER.servicio archivo.

[Unidad]
Descripción = Servicio de exportador de Prometheus SNMP
After = Network-Online.objetivo
[Servicio]
Reiniciar = en falso
Usuario = Prometheus
Execstart =/usr/local/bin/snmp_exporter - -Config.file =/opt/snmp_exporter/snmp.YML
[Instalar]
Wantedby = Multi-user.objetivo

Una vez que haya terminado, presione + X seguido por Y y Para salvar el SNMP-EXPORTER.servicio archivo.

Para que los cambios entren en vigencia, vuelva a cargar el Systemd Daemons con el siguiente comando:

$ sudo SystemCtl-Daemon-Reload

Ahora, deberías poder comenzar el SNMP-EXPORTER servicio systemd con el siguiente comando:

$ sudo SystemCTL Start SNMP-Exporter.servicio

El SNMP-EXPORTER El servicio Systemd debe estar activo/en ejecución, como puede ver en la captura de pantalla a continuación.

$ sudo systemctl status snmp-exporter.servicio

Ejecute el siguiente comando para agregar el SNMP-EXPORTER Sistema de servicio al inicio del sistema para que comience automáticamente en el momento de la arranque.

$ sudo SystemCTL Habilitar SNMP-Exporter.servicio

El SNMP-EXPORTER El servicio Systemd debe ser activado (agregado al inicio del sistema).

$ sudo systemctl status snmp-exporter.servicio

El snmp_exporter El servicio debe estar ejecutado en el puerto 9116, Como puede ver en la captura de pantalla a continuación.

$ sudo ss -tlpn

Para verificar si snmp_exporter Puede raspar las métricas de un dispositivo de red, debe saber la dirección IP de la computadora donde snmp_exporter esta instalado. En mi caso, la dirección IP es 192.168.0.117. Será diferente para ti. Entonces, asegúrese de reemplazarlo con el tuyo de ahora en adelante.

$ hostname -i

Si su enrutador de inicio usa la dirección IP 192.168.0.1, Navegue a la URL http: // 192.168.0.117: 9116/SNMP?objetivo = 192.168.0.1 de su navegador web favorito para verificar si snmp_exporter puede raspar las métricas fuera del enrutador de su casa a través de SNMP.

Todas las propiedades que el snmp_exporter Se debe mostrar de su enrutador, como puede ver en la captura de pantalla a continuación. Entonces, snmp_exporter está funcionando bien.

Agregar exportador de SNMP a Prometheus

Ahora que has instalado snmp_exporter Y está funcionando, debe agregarlo a Prometheus para poder monitorear el snmp_exporter métrica.

Abre el Prometeo.YML archivo de configuración con el nano Editor de texto de la siguiente manera:

$ sudo nano/opt/prometheus/prometheus.YML

Agregue las siguientes líneas en el scrape_configs Sección de la Prometeo.YML Archivo como se marca en la captura de pantalla a continuación. Una vez que haya terminado, presione + X seguido por Y y Para salvar el Prometeo.YML archivo.

- JOB_NAME: 'SNMP_EXPORTER'
static_configs:
- Objetivos: ['192.168.0.1 ']
Metrics_path: /snmp
Parámetros:
Módulo: [IF_MIB]
relabel_configs:
- fuente_labels: [__address__]
Target_label: __param_target
- fuente_labels: [__param_target]
Target_label: instancia
- Target_label: __address__
Reemplazo: Localhost: 9116

Aquí, en el objetivos Sección, agrega las direcciones IP de los dispositivos de red que desea monitorear. En este caso, mi enrutador de inicio con la dirección IP 192.168.0.1.

Si desea monitorear múltiples dispositivos de red, puede agregarlos al objetivos Sección de la siguiente manera:

En el reemplazo Sección, reemplazar hostil con la dirección IP o el nombre de host de la computadora donde snmp_exporter Esta corriendo. Estoy corriendo Prometeo y snmp_exporter en la misma computadora, así que he usado hostil Como el nombre de host de snmp_exporter.

Para que los cambios entren en vigencia, reinicie el Prometeo servicio systemd con el siguiente comando:

$ sudo systemctl reiniciar Prometheus.servicio

Si todo está bien, el Prometeo el servicio debe ser activo/correr.

$ sudo systemctl status prometheus.servicio

Si navegas al Objetivos Sección de Prometheus web ui, deberías ver que snmp_exporter está en el ARRIBA estado.

Creación de un tablero de Grafana para monitorear dispositivos de red

Para monitorear sus dispositivos de red con Grafana, debe agregar a Prometeo a Grafana como fuente de datos.

Para crear un nuevo tablero de Grafana, navegue a Paneles > Administrar y haga clic en Nuevo tablero como se marca en la captura de pantalla a continuación.

Para agregar un nuevo panel al tablero, haga clic en Agregar un panel vacío como se marca en la captura de pantalla a continuación.

El editor del panel de Grafana debe abrirse. Puede configurar un panel de panel de grafana desde aquí.

Quiero mostrar las siguientes métricas de mi enrutador de inicio TP-Link Archer C5 V4 en el tablero de Grafana.

  1. Tiempo de actividad del enrutador
  2. Datos totales descargados
  3. Total de datos cargados
  4. Velocidad de Descarga
  5. Velocidad de carga

El tiempo de actividad del enrutador será un Estadística, no Series de tiempo. Para cambiar el tipo de visualización, haga clic en el menú desplegable como se marca en la captura de pantalla a continuación.

Seleccionar Estadística desde el Visualizaciones Sección marcada en la captura de pantalla a continuación.

Estadística Se debe seleccionar el tipo de visualización.

Cambiar el título del panel a Tiempo de actividad del enrutador desde el Opciones de panel Sección marcada en la captura de pantalla a continuación.

En el Navegador de métricas, Escriba la consulta Prometheus Sysuptime instancia = "192.168.0.1 " / 100. Aquí, 192.168.0.1 es la dirección IP de mi enrutador de casa. Puede ser diferente para ti. Entonces, asegúrese de reemplazarlo con el tuyo de ahora en adelante.

El tiempo de actividad del sistema debe mostrarse en la ventana de vista previa del panel en segundos, como se muestra en la captura de pantalla a continuación.

NOTA: Si está monitoreando múltiples dispositivos de red con snmp_exporter, Prometeo, y Grafana, Asegúrese de incluir el instancia Filtrar en cada una de las consultas Prometheus para asegurarse de que está monitoreando el dispositivo de red correcto.

Por ejemplo,

Sysuptime instancia = "192.168.0.1 "
Ifoutoctets instancia = "192.168.0.1 "
Ifinoctets instancia = "192.168.0.1 "

En este artículo, solo monitorearé mi enrutador de origen. Entonces, no usaré el instancia Filtrar en cada una de las consultas Prometheus.

Establecer la unidad Tiempo / segundos (s) desde el Opciones estándar > Unidad Sección marcada en la captura de pantalla a continuación.

El tiempo de actividad debe mostrarse en un formato humano.

Para eliminar los dígitos decimales, establecer Decimales a 0 desde el Opciones estándar Sección marcada en la captura de pantalla a continuación. El tiempo de actividad debería verse mucho mejor ahora.

Tampoco necesita un valor umbral para los datos de tiempo de actividad. Entonces, retire el umbral del Umbral Sección marcada en la captura de pantalla a continuación.

El umbral debe eliminarse.

El tiempo de actividad es un mostrador y sigue aumentando. Un gráfico del tiempo de actividad en el fondo del panel no tiene ningún sentido. Entonces, establecer Modo gráfico a Ninguno desde el Estilos Sección marcada en la captura de pantalla a continuación para eliminar el gráfico del fondo.

Una vez que esté satisfecho con los resultados, haga clic en Aplicar Para agregar el panel al tablero.

El Tiempo de actividad del enrutador El panel debe agregarse al tablero, como se muestra en la captura de pantalla a continuación.

El panel que muestra el total de datos descargados será un Estadística también y será casi como el Tiempo de actividad del enrutador panel. Entonces, en lugar de crear un nuevo panel, dupliquemos el existente Tiempo de actividad del enrutador panel. Esto te ahorrara mucho tiempo.

Para duplicar el existente Tiempo de actividad del enrutador panel, haga clic en el Tiempo de actividad del enrutador Menú desplegable del panel y haga clic en Más… > Duplicar como marcado en la captura de pantalla a continuación.

El Tiempo de actividad del enrutador El panel debe duplicarse, como puede ver en la captura de pantalla a continuación.

Para editar el clonado Tiempo de actividad del enrutador panel, haga clic en Tiempo de actividad del enrutador > Editar como se marca en la captura de pantalla a continuación.

El clonado Tiempo de actividad del enrutador El panel debe abrirse con el editor del panel de Grafana.

Cambiar el título del panel a Total descargado, como se marca en la captura de pantalla a continuación.

Un enrutador tiene muchas interfaces de red. Tendrá que elegir la interfaz de red correcta de estos para monitorear las métricas de carga y descarga del enrutador correctamente.

Para averiguar las interfaces de red disponibles en su enrutador que generan algún tipo de tráfico de red, ejecute la consulta Prometheus ifoutoctets> 0. Las interfaces de red que están generando algún tipo de tráfico de red deben aparecer, como puede ver en la captura de pantalla a continuación.

Aquí, eth0, eth0.1, eth0.2, y así sucesivamente se pueden utilizar para monitorear el tráfico portuario de LAN individual.

El PPP0, PPP1, y así sucesivamente se pueden usar para monitorear el tráfico de red externo/de Internet.

El BR0 es una interfaz de red puenteada. Puede unir algunas de las interfaces de la red juntas, y es posible que pueda usarlo para monitorear el tráfico de red de las interfaces de red puenteadas por completo.

El Ra0 La interfaz puede ser la interfaz de red de radio inalámbrica (Wi-Fi) de su enrutador, y puede usarla para monitorear el tráfico inalámbrico de su enrutador.

En este artículo, monitorearé el BR0 interfaz de red, por ejemplo. Su caso puede diferir, y puede monitorear una interfaz de red diferente.

La interfaz de red exacta que debe monitorear para obtener estadísticas de red correctas depende de su enrutador. Es posible que deba ver cómo estos valores cambian con el tiempo para determinar qué interfaz de red necesita monitorear.

Puede ejecutar la consulta Prometheus tasa (ifoutoctets [1m] * 8)> 0 en un panel de panel de control de Grafana vacío con la siguiente configuración y transmite un video de YouTube en su computadora para tener una idea de qué interfaz de red monitorear.

Para monitorear el tráfico de descarga total de la interfaz de red BR0, puede usar la siguiente consulta Prometheus.

ifoutoctets ifdescr = "br0" * 8

O,

ifoutoctets ifdescr = "br0"

NOTA: La unidad predeterminada es bytes. Si lo multiplica por 8, obtienes bits.

Si desea mostrar los datos en KIB (Kibibytes), GIB (Gibibytes), Tib (Tebibytes), etc., Unidades, use la primera consulta Prometheus (multiplique por 8).

Si desea mostrar los datos en KB (Kilobytes), GB (Gigabytes), TB (terabytes), etc., Unidades, use la segunda consulta Prometheus (no multiplicada por 8).

Seleccione la unidad Datos / bytes (IEC) Si desea mostrar los datos en KIB, GIB, TIB, etc.

Seleccione la unidad Datos / bytes (SI) Si desea mostrar los datos en KB, GB, TB, etc.

Los datos descargados totales del BR0 La interfaz debe mostrarse correctamente, como puede ver en la captura de pantalla a continuación.

Si desea ver 2 decimales, establezca decimales en 2 en la sección Opciones estándar, como se muestra a continuación.

Una vez que esté satisfecho con los resultados, haga clic en Aplicar Para agregar el panel al tablero.

El Total descargado El panel debe agregarse al tablero, como se muestra en la captura de pantalla a continuación.

El Total subido El panel será el mismo que el Total descargado panel. La única diferencia es que calculará el tráfico de carga total en su lugar. Entonces, para facilitar las cosas, clona el Total descargado panel y editar el clonado Total descargado panel.

Cambiar la consulta de Prometheus desde ifoutoctets a Ifinoctets y configure el título del panel en Total subido, como se marca en la captura de pantalla a continuación.

El tráfico de carga total debe mostrarse correctamente.

Una vez que esté satisfecho con los resultados, haga clic en Aplicar.

El Total subido El panel debe agregarse al Panel, Como se muestra en la captura de pantalla a continuación.

Puede pasar la vuelta a la esquina inferior derecha de cualquier panel, presione y mantenga presionado el LMB (botón izquierdo del mouse) y arrastre para cambiar el tamaño de los paneles del tablero.

También puede sostener y arrastrar los paneles por su título de panel para alinearlos en cualquier lugar del tablero.

He cambiado de tamaño y alineado los paneles del tablero de la siguiente manera.

Para monitorear la velocidad de descarga de la red, haga clic en Agregar icon () para crear un nuevo panel en el tablero.

Haga clic en Agregar un panel vacío.

El editor del panel de Grafana debe abrirse.

Para monitorear la velocidad de descarga de la interfaz de red BR0, Escriba la siguiente consulta Prometheus en el Navegador de métricas sección.

tasa (ifoutoctets ifdescr = "br0" [1m]) * 8

O,

tasa (ifoutoctets ifdescr = "br0" [1m])

Establecer la leyenda Velocidad de Descarga.

Establecer el título del panel en Velocidad de Descarga.

Puede seleccionar un rango de tiempo para el gráfico de velocidad de descarga en el menú desplegable, como se muestra a continuación. Seleccionaré el Últimos 5 minutos para que muestre la velocidad de descarga de la red del BR0 interfaz durante los últimos 5 minutos.

Como puede ver, la velocidad de descarga de la red de la interfaz BR0 se muestra durante los últimos 5 minutos.

Para que el gráfico se vea un poco más bonito, establecido Interpolación de línea a, establecer Ancho de línea a 2, Llenar la opacidad a 10, y Tamaño de punto a 10 desde el Estilos gráficos Sección marcada en la captura de pantalla a continuación.

Establezca la unidad correcta para el gráfico del Unidad Sección marcada en la captura de pantalla a continuación.

La unidad correcta debe mostrarse en el gráfico.

Colocar Decimales a 2. Esto mostrará solo 2 decimales para el eje Y del gráfico de velocidad de descarga.

Retire el umbral ya que no lo necesita aquí.

Una vez que esté satisfecho con los resultados, haga clic en Aplicar.

El panel de velocidad de descarga debe agregarse al tablero, como se muestra en la captura de pantalla a continuación.

Arrastrar el Velocidad de Descarga panel debajo de todos los demás paneles y cambiarlo a su mejor.

El Velocidad de carga El panel será el mismo que el Velocidad de Descarga panel. Entonces, duplicar el Velocidad de Descarga panel y edítelo como antes para ahorrar tiempo.

El duplicado Velocidad de Descarga El panel debe abrirse con el editor del panel de Grafana.

Cambiar ifoutoctets a Ifinoctets de la consulta Prometeo en el Navegador de métricas como se marca en la captura de pantalla a continuación.

Cambiar el Leyenda a Velocidad de carga.

Cambiar el título del panel a Velocidad de carga.

Para que el gráfico sea un poco interesante, también puede cambiar el color del gráfico.

Para hacer eso, seleccione De un solo color desde el Esquema de colores Sección marcada en la captura de pantalla a continuación.

Haga clic en el color para seleccionar un nuevo color para el gráfico.

Seleccione el color que desee en el selector de color como se marca en la captura de pantalla a continuación.

El gráfico de velocidad de carga se ve mucho mejor.

Una vez que esté satisfecho con los resultados, haga clic en Aplicar.

El Velocidad de carga El panel debe agregarse al tablero, como se muestra en la captura de pantalla a continuación.

Ahora, haga clic en el icono Guardar como se marca en la captura de pantalla a continuación para guardar el tablero.

Escriba un nombre significativo para el tablero y haga clic en Ahorrar.

Lo llamaré Estadísticas de TP Link Archer C5 V4.

El tablero debe guardarse.

Establecer un tablero de grafana predeterminado

Para configurar el tablero como el tablero de grafana predeterminado, debe protagonizar primero el tablero.

Para protagonizar el tablero, haga clic en el icono de estrella como se marca en la captura de pantalla a continuación.

El tablero debe ser protagonizado.

Ahora, puede seleccionar el tablero de la Tablero Menú desplegable de la página de configuración de Grafana, como puede ver en la captura de pantalla a continuación.

Una vez que haya terminado, haga clic en Ahorrar para que los cambios entren en vigencia.

Si hace clic en el icono del tablero, el tablero recién creado debe mostrarse de forma predeterminada.

A dónde ir después?

La extracción de datos de un dispositivo de red a través de SNMP pone mucho estrés en la CPU del dispositivo de red. Por lo tanto, no es bueno extraer los datos que no necesita de los dispositivos de red a través de SNMP. Es una buena práctica extraer solo los datos que necesita para monitorear los dispositivos de red.

Puedes configurar fácilmente snmp_exporter Para extraer datos específicos de los dispositivos de red a través de SNMP. Todo lo que tienes que hacer es usar el generador eso snmp_exporter proporciona para generar un nuevo SNMP.YML archivo de configuración.

Desafortunadamente, está fuera del alcance de este artículo para mostrarle cómo hacer eso. Para obtener más información sobre la generación de una personalización snmp_exporter Archivo de configuración, consulte la sección de configuración de generación de la página GitHub del exportador SNMP.

Conclusión

En este artículo, le he mostrado cómo instalar snmp_exporter en Ubuntu 20.04 LTS y agréguelo a Prometheus para monitorear dispositivos de red a través de SNMP. También te he mostrado cómo habilitar SNMP en tu enrutador casero TP-Link. Le he mostrado cómo usar Grafana para crear un tablero para monitorear los dispositivos de red utilizando Prometheus y establecer el tablero como el tablero de Grafana predeterminado también. Este artículo debería ayudarlo a comenzar con los dispositivos de red de monitor con Grafana y Prometheus.

Referencias

[1] Github - Prometheus/SNMP_Exporter: exportador de SNMP para Prometeo

[2] Q_A_Supported_Public_Mibs_For_TP-Link_Switches

[3] GitHub - Prometheus/SNMP_Exporter: exportador de SNMP para Prometheus - Generación de configuración