Hoy vamos a ver como instalar un contenedor de Proxmox (o una VM) con InfluxDB y Grafana para llevar las metricas de Proxmox y de PfSense. Será un tutorial básico, asi que luego podrán ir agregándole cosas a cada Dashboard a su gusto. Empezamos creando un CT nuevo con Debian Buster. En mi caso, con 1G de RAM y 8G de HDD. Eso es suficiente. Si luego van a usar Graylog o algo más ahí, entonces el espacio puede que no baste.
Una vez instalado, actualizamos los repositorios y upgradeamos el sistema
apt update apt dist-upgrade -y
Luego, vamos a empezar a instalar los paquetes necesarios:
apt install -y gnupg2 curl wget software-properties-common
Puede que ya tengamos alguno pero no importa.
InfluxDB
Para quien no lo conozca, influxDB es una base de datos de series de tiempo. Esto nos permite guardar varios tipos de metricas que pueden ser consultadas por herramientras como Grafana, asi que vamos a instalarlo de la siguiente forma:
wget -qO- https://repos.influxdata.com/influxdb.key | apt-key add - echo "deb https://repos.influxdata.com/debian buster stable" | tee /etc/apt/sources.list.d/influxdb.list apt update apt install -y influxdb systemctl enable --now influxdb
Ahora vamos a editar el archivo de configuracion de Influxdb para permitir el acceso por HTTP (Para PfSense):
nano /etc/influxdb/influxdb.conf
Bajamos a la seccion HTTP y descomentamos: “enabled”, “bind-address= ‘:8086’”, y listo. Salvamos y salimos. Luego reiniciamos el servicio
systemctl restart influxdb
Ahora ya está listo el influxDB para pfsense, pero vamos a crear la base de datos. Ejecutamos:
influx
Esto nos abre el editor de consultas, como si fuera MySQL o SQLite
CREATE DATABASE "firewall"; CREATE USER "firewall_write" WITH PASSWORD ‘mipanzuzuzu’; CREATE USER "firewall_read" WITH PASSWORD ‘mipaaaaaaaan’; GRANT READ ON firewall TO firewall_read; GRANT READ ON firewall TO firewall_write; exit
Con esto, ya creamos la BD del PfSense.
Grafana
Grafana es un software libre basado en licencia de Apache 2.0, que permite la visualización y el formato de datos métricos. Permite crear cuadros de mando y gráficos a partir de múltiples fuentes. Para instalarlo, vamos a ejecutar los siguientes comandos:
curl https://packages.grafana.com/gpg.key | apt-key add - add-apt-repository "deb https://packages.grafana.com/oss/deb stable main" apt update apt-get -y install grafana systemctl enable --now grafana-server systemctl start grafana-server
Iniciamos el servicio y podremos acceder a la web de Grafana http://ipgrafana:3000
Usuario y Password: admin
Y te pedirá cambiar la clave.
PfSense
Ahora vamos a parar aquí, y vamos al pfsense, puesto que va a ser el primer Dashboard que configuremos. Nos logueamos en el pfsense y vamos al Package Manager, donde instalaremos Telegraf.
Una vez instalado, vamos a Services->Telegraf y vamos a llenar los datos necesarios:
- Habilitar el servicio
- Telegraf Output: InfluxDB
- InfluxDB Server: http://containerip:8086
- InfluxDB Database: firewall
- InfluxDB Username: firewall_write
- InfluxDB Password: ‘mipanzuzuzu’
Y dejamos el resto sin marcar y vacio. Salvamos y salimos.
Volvemos a Grafana y en la pantalla inicial vemos que nos dice Data Sources. Entramos ahi y vamos a seleccionar nuestro origen de Datos (DATA SOURCES)
El origen de datos: InfluxDB
Nombre: PfSense (Marcar como default si se quiere)
HTTP:
InfluxDB Details:
Database: firewall
User: firewall_read
Password: mipaaaaaaaan
HTTP Method: GET
Save & Test
Si todo esta bien, entonces, ahora podemos en el menu de la izquierda, seleccionar el Signo + y en lugar de crear un nuevo Dashboard, pues vamos a dar en Importar
Y vamos a seleccionar Subir Archivo JSON. El JSON a subir lo pueden obtener desde aquí. Seleccionan el origen de datos pfsense y el nombre de la interfaz WAN del pfsense.
En el Pfsense vemos el nombre de la interfaz WAN en este caso em0
Y listo. Cuando le den salvar, van a tener el Dashboard lindo y bonito como ven en la imagen.
Proxmox
Para el caso del Proxmox, el procedimiento es mucho más facil, puesto que haremos lo siguiente. Accedemos por ssh al Proxmox y Dentro:
nano /etc/pve/status.cfg
Dentro del archivo pondremos el siguiente contenido:
influxdb: influx1 server ipctinfluxdb port 8089
NOTA: Este fichero es sensible a la Indentación. Puede que tenga que forzar al proxmox a ver el cambio
systemctl restart pvestatd
Guardamos y salimos. Y no, no hemos terminado, pero al menos en el proxmox si. Pues como dice la Wiki de PVE, con solo eso, pues estamos diciendole al Proxmox que envie los datos de estado a esa IP por ese puerto (UDP).
Ahora vamos a nuestro contenedor una vez mas y editamos de nuevo el archivo de influxdb
nano /etc/influxdb/influxdb.conf
Buscamos el apartado UPD que se encuentra asi [[udp]]:
- Y lo habilitamos descomentando el enabled y cambiandolo a true,
- descomentamos tambien el bind-address y lo dejamos como esta por el puerto 8089.
- database “proxmox”,
- batch-size y lo cambiamos a 1000
- descomentamos tambien el batch-timeout y lo dejamos tal cual.
Quedando algo como esto:
[[udp]] enabled = true bind-address = ":8089" database = "proxmox" batch-size = 1000 batch-timeout = "1s"
Guardamos y salimos.
Entramos al sistema
influx
Y creamos la base de datos:
create database proxmox; exit
Y volvemos a reiniciar el servicio
systemctl restart influxdb
En Grafana, vamos a Opciones (El engranaje que esta en el menu de la izquierda) y seleccionamos Origen de Datos para agregar uno nuevo que igual será de tipo InfluxDB
Le ponemos nombre “Proxmox” y tanto la URL como el Puerto es el mismo
Y en la parte de los detalles, pues solo pondremos la BD que es “proxmox” como definimos en el apartado de UDP del servidor
Y vamos de nuevo a importar un JSON como mismo hicimos antes para el Dashboard del PfSense, pero en este caso para Proxmox, el cual podremos descargar de aquí.
Vean que esta vez la fuente de los datos abajo es Proxmox y no PfSense. Una vez importado, veremos lo siguiente:
Donde vemos que tenemos un error de que nos falta un plugin. Este plugin, lo que nos da es la hora que tiene el proxmox, y si bien podemos quitarlo, es un buen momento para enseñar como poner un plugin de forma manual.
Grafana esta disponible para Cuba a la hora de instalar. Pero para descargar no. Por tanto ni los dashboard ni los plugins podremos bajarlos sin VPN. En mi caso, yo lo baje desde mi PC usando una VPN y se lo puse al servidor. Y es lo que les voy a explicar ahora. Recuerden que se explica todo el proceso, pero los archivos van a estar disponibles al finalizar el tutorial en un archivo comprimido. Usando una VPN de su eleccion, bajamos el archivo:
El cual es un archivo zip que contiene el plugin. Este archivo lo vamos a ubicar en nuestro servidor en la carpeta /var/lib/grafana/plugins
Usando el comando unzip lo descomprimimos o bien usando el MC entramos en el comprimido y con F5 copiamos el contenido del comprimido fuera en la carpeta
El resultado es el mismo
Ahora salimos del MC y renombramos la carpeta quitando todo lo que esta despues del nombre “grafana-clock-panel”
mv grafana-clock-panel-48a718a/ grafana-clock-panel
Y reiniciamos el servicio de Grafana
/etc/init.d/grafana-server restart
Ahora actualizamos la pagina y veremos como ya aceptó el plugin y nos muestra los datos correctamente:
Ahora les dejo unas imagenes de como se ven los dashboard de forma integra, pusto que aqui solo les muestro el inicio
Proxmox:
PfSense
Sino pudo descargar los dashboard por problemas de conexión o estar cerrado para su país, puede descargar los archivos de configuración desde aquí
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36
Les felicito , gracias por el buen contenido ,
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36
Funcionando perfectamente, gracias!
Mozilla/5.0 (Linux; Android 10; SM-A505FN) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.127 Mobile Safari/537.36
Saludos, cómo haría para monitorear más de un servidor Proxmox?
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36
como pudiera llevarlo al escenario de squid o zimbra o mta relay??
Warning: Undefined array key 1 in /var/www/html/sysadminsdecuba/wp-content/plugins/wp-useragent/wp-useragent-detect-os.php on line 668
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:81.0) Gecko/20100101 Firefox/81.0
Conseguido!!!!
Buen artículo. Gracias
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
Amigo, Como hizo la parte de Pfsense?