Instalación Automatica Agente Linux

Instalación automatica para Agente Linux Distribuciones soportadas:
CentOS7, CentOS8, Debian 9.x, Ubuntu 18.x, Rasbian 9x, Raspberry OS 10

Introducción

En la siguiente guía vamos a instalar en forma automática el agente de PandoraFMS en Linux en las distribuciones soportadas:

  1. CentOS 7
  2. CentOS8
  3. Debian 9.x o Superior
  4. Ubuntu 18.x o Superior
  5. Raspbian 9.x
  6. RaspberryOS 10.x

El agente tendrá los valores básicos del sistema operativo y ejecutara un Speedtest cada media hora y estará disponible para poder analizar la velocidad de nuestro enlace de internet

¿Que vamos a monitorizar en Linux?
La respuesta es muy simple vamos a ver los valores que son importante tener en cuenta en la salud de un sistema operativo los cuales son:

Porcentaje de uso de Disco
Tiempo de espera de CPU
Uso de CPU
Uso de red 
Velocidad de internet (Speed Test)

La medición de velocidad de internet se hace utilizando el cliente de Linux de la pagina https://www.speedtest.net/ una herramienta muy confiable para este tipo de pruebas, vamos a obtener velocidad de descarga y carga como se puede ver en la siguiente imagen:

image-1604327078152.png

SIGUIENTE >

Descargar y descomprimir el script

El script esta disponible en forma gratuita en la librería de PandoraFMS 

para descargar el script ejecutamos el comando

wget https://pandorafms.com/library/wp-content/uploads/2020/11/Install-PandoraAgent.tgz 

Luego descomprimimos el archivo con el comando 

tar xvzf Install-PandoraAgent.tgz

Si todo funciono en forma correcta vemos algo similar a esto 

image-1604193211737.png

< ANTERIOR SIGUIENTE >

Ejecutar el script

El script soporta la siguientes distribuciones de Linux: CentOS7, CentOS8, Debian 9.x o superior, Ubuntu 18.x o Superior, Raspbian 9.x, Raspberry OS 10.x

Se requiere disponer de conexión a internet ya que el agente se descarga como parte del proceso

Ingresamos en el directorio del agente y luego lo ejecutamos con el comando de la siguiente forma

./Install_agent.sh [server]

Un Ejemplo practico seria: ./Install_agent.sh 192.168.110.20, donde la IP 192.168.110.20 corresponde a nuestro servidor de PandoraFMS

El script detecta en forma automática cual es la distribución de Linux en esta guía veremos el ejemplo con una Raspberry PI, pero obtendremos un resultado similar en cualquiera de las distribuciones soportadas por el mismo 

Vemos el ejemplo de ejecución:

image-1604193593648.png

Esperamos que el script termine de ejecutarse, demora unos minutos dependiendo de la conexión a internet que disponemos para realizar el proceso:

image-1604193682897.png

image-1604194323764.png

< ANTERIOR  SIGUIENTE>

Agentes en Consola WEB

Vemos los agentes creados con este script

image-1604194672085.png

image-1604194722737.png

image-1604194755303.pngEn rojo se pueden ver los valores del Speedtest ejecutado en un agente con CentOS 8 (La medición esta expresada en MB/seg)

<ANTERIOR SIGUIENTE >

Como funciona Speedtest

Ya tenemos instalado el script ahora vamos a ver como funciona el mismo para poder entender y poder aprender mas sobre el funcionamiento de PandoraFMS, al ejecutar el instalador se crea la carpeta /root/bin (en caso de que no exista), dentro de esta carpeta vamos a encontrar varios scripts 

image-1604322344832.png

El archivo pandora_agent.conf (es la versión inicial creada por el script al realizar la instalación), en cuanto al funcionamiento de la herramienta de Speedtest se utiliza la el cliente en Python el cual es el archivo speedtest-cli, para que se puedan tomar las métricas se crea una tarea programada que ejecuta el script /bin/speedtest.sh el cual se ejecuta una vez cada media hora pueden validarlo con el comando 

crontab -l

image-1604322553252.png

El mismo genera un archivo speedtest.log, donde el agente de PandoraFMS, toma las métricas 

image-1604322608558.png

Los scripts speedtest_upload.sh y speedtest_download.sh son los que toman los valores para poder sumarlos en PandoraFMS


image-1604322701348.png

Para finalizar las lineas correspondientes a los test de velocidad de internet en nuestro archivo de configuración pandora_agent.conf son las siguientes:

# SpeedTest Download
module_begin
module_name SpeedTestDownload
module_type generic_data
module_description Speedtest Download
module_exec /root/bin/speedtest_download.sh
module_group Networking
module_end

# Ping SpeedTest Upload
module_begin
module_name SpeedTestUpload
module_type generic_data
module_description Speedtest Upload
module_exec /root/bin/speedtest_upload.sh
module_group Networking
module_end

<ANTERIOR     SIGUIENTE>

Monitores adicionales

Al realizar la instalación del agente en forma automatizada se sumaron algunos scripts de gran utilidad que no forman parte de la instalación automatizada pero pueden utilizar simplemente agregando algunas lineas en el archivo pandora_agent.conf como podemos ver en los siguientes ejemplos 

Ping a una IP, para el ejemplo vamos a utilizar el DNS de google 8.8.8.8, para que funcione será suficiente con agregar las siguientes lineas (utiliza el script /root/bin/ping.sh)

## Ping DNS Google
module_begin
module_name Ping-DNS-Google
module_type generic_data
module_description Ping a DNS Google
module_max_critical 1
module_exec /root/bin/ping.sh 8.8.8.8
module_group Networking
module_end

image-1604325679286.pngEjemplo Ping a Switch 192.168.10.10

Para poder medir la cantidad de paquetes perdidos a una IP por ejemplo el DNS de google 8.8.8.8 será suficiente con agregar las siguientes lineas (utiliza el script /root/bin/pl.sh)

## Perdida de paquetes a DNS Google 8.8.8.8
module_begin
module_name PorcentajePerdidaPaquetesDNSGoogle
module_type generic_data
module_description Porcentaje Perdida Paquetes DNS Google 8.8.8.8
module_exec /root/bin/pl.sh 10 8.8.8.8
module_group Networking
module_end

image-1604325567410.png
Ejemplo realizando una prueba a google.com.ar 

Para completar los monitores que son útiles para conocer la salud de nuestro enlace de internet con las siguientes lineas podemos medir la latencia de red a una IP es interesante utilizar la misma que en ping del paso anterior  

## Latencia de Red
module_begin 
module_name PingLatenciaGoogleDNS 
module_type generic_data 
module_description PingLatenciaDNSGoogle
module_exec ping 8.8.8.8 -c 3 | grep "rtt min" | awk '{ print $4 }' | cut -f 2 -d "/" 
module_group Networking
module_end 

image-1604326203872.pngEjemplo Latencia Google.com

< ANTERIROR