Instalación del Sawmill + montar recurso compartido SSH (sshfs) en LXC

Sawmill es un paquete de software para el análisis estadístico y el informe de archivos de registro (logs), con filtrado contextual dinámico, zoom de datos «en vivo», personalización de la interfaz de usuario e informes calculados personalizados. Sawmill brinda soporte para aproximadamente 850 formatos de archivo de registro del servidor. Por lo que debido a su versatilidad cada sysadmins debería tenerlo instalado para revisar los logs de su infra. En este corto tutorial les mostrare como hacerlo.

Utilizare como herramienta de virtualización Proxmox. Crearemos un contenedor con Ubuntu o Debian como OS.

CPU: 1 core

RAM: 2GB (Sawmill recomienda 2 Gb de RAM por nucleo)

SWAP: 4Gb

HDD: 8GB (Si se necesita mas, luego se puede agregar)

Actualizamos nuestro CT:

apt update
apt upgrade

Descargamos la última versión del  Sawmill de aqui. Yo descargue la versión para debian.

La descompactamos donde más acomode, en mi caso en /opt

tar -xvf sawmill8.7.9.4_x64_linux-debian8.tar.gz

Nos creara la carpeta sawmill. Dentro encontraremos el binario ejecutable de sawmill y las carpetas:

  • LogAnalysisInfo (Web del Sawmill)
  • Extras ( Utilidades extras)

Podemos correr el binario para acceder a nuestro Sawmill

root@logs:~# cd /opt/sawmill/
root@logs:/opt/sawmill# ./sawmill

Ya podemos acceder a su web usando el siguiente link http://ip_sawmill:8988/

NOTA: El software Sawmill es de pago, por lo tanto, tendrán un periodo de 30 días de evaluación. Este Blog no da soporte a la piratería, así que no pidan como registrar el software.

Una vez allí configuramos nuestro usuario con derechos de administrador, el idioma, el correo y otras características mas. Ahora les mostrare gracias a Luis Felipe Domínguez Vega (AKA @H3R3T1C) como hacer que nuestro Sawmill inicié junto con nuestro CT. Para ello creamos un servicio llamado sawmill.

cd /etc/systemd/system/
nano sawmill.service

Dentro ponemos lo siguiente:

[Unit]
Description=Sawmill Log 
After=network-online.target
[Service]
#User=sawmill # Sawmill must have an user
Type=simple
ExecStart=/opt/sawmill/sawmill
TimeoutSec=30
Restart=on-failure
RestartSec=30
StartLimitInterval=350
StartLimitBurst=10

[Install]
WantedBy=network-online.target

Activamos e inciamos el servicio

systemctl enable sawmill
systemctl start sawmill

Una vez, ya arrancada nuestra web y con inicio automático solo nos queda un problema por superar. ¿Como hacer que Sawmill vea los logs de los sistemas que queremos analizar? En Sawmill se crean perfiles por cada conjunto de logs que queremos analizar. Tenemos que especificarle al Sawmill de donde leerá los registros (logs).

De las opciones que nos brinda, la que vi más razonable, segura y precisa es leer los registro desde el disco local. Las otras opciones constituyen más engorrosas ya que tendríamos que tener esos servicios en nuestra red y los registros centralizados en ellos. ¿Pero cómo hacer que Sawmill encuentre los logs en su propio disco sin tener que copiárselos?

La pregunta a esa interrogante está en el título de este tutorial. Sencillamente compartiremos con Sawmill los recursos (logs) que queremos analizar usando para ello SSHFS

Como el sawmill está instalado en un contendor de Proxmox y SSHFS usa FUSE entonces no es conveniente instalar SSHFS en el CT de Proxmox.  Usaremos SSHFS en nuestro Proxmox para montar los recursos (logs). Posteriormente a través de un Mount Point (punto de montaje) compartiremos este recurso con el CT del Sawmill. La siguiente figura es un esquema de lo que haremos.

 

En nuestro Proxmox 2 (el que aloja al sawmill) instalaremos SSHFS

apt install sshfs

Crearemos las carpetas qu contendran los logs.

cd /mnt
mkdir logs
cd /logs
mkdir squid mail

Montaremos los recursos.

sshfs -o allow_other root@ip_proxy:/var/log/squid3/ /mnt/logs/squid/
The authenticity of host 'ip_proxy (ip_proxy)' can't be established.
ECDSA key fingerprint is SHA256:rAs+biL5GkEf5lmrmePOry9XWYLoNUy6wEva4kgs6HM.
Are you sure you want to continue connecting (yes/no)? yes
root@10.122.193.3's password:       (establecer la clave root del proxy)

sshfs -o allow_other root@ip_mail:/var/log/ /mnt/logs/mail/
The authenticity of host 'ip_mail (ip_mail)' can't be established.
ECDSA key fingerprint is SHA256:raupX9Uls57p55cjuIUb0wMJMEFuRhgX0imwA189JXQ.
Are you sure you want to continue connecting (yes/no)? yes
root@10.122.193.225's password:     (establecer la clave root de mail)

Ya podemos ver nuestros logs montados en las carpetas /mnt/logs/squid y /mnt/logs/mail . Hagamos que el montaje sea automático cada vez que se inicie nuestro Proxmox.

nano /etc/fstab
###Agregamos lo siguiente
sshfs#root@ip_proxy:/var/log/squid3/ /mnt/logs/squid/
ssfhs#root@ip_mail:/var/log/ /mnt/logs/mail/

NOTA:Importantísimo hacer destacar que los CT a los cuales les estamos haciendo el montaje de los logs NO están situados en el mismo Proxmox donde se encuentra el sawmill. Al estar el punto de montaje en el fstab si el Proxmox 2 (el que tiene alojado el sawmill) en el arranque no ve los CT levantados (mail y proxy) en el otro Proxmox 1 entonces no levantara. Más adelante pensare en otra solución que no involucre el fstab para correr el sshfs.

Hagamos que la conexión sea sin usar la clave root de los CT. Desde nuestro Proxmox lanzamos el comando ssh-copy-id

root@pve1:~# ssh-copy-id root@ip_proxy
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@ip_proxy's password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@ip_proxy'"
and check to make sure that only the key(s) you wanted were added.

root@pve1:~# ssh-copy-id root@ip_mail
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@ip_mail's password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@ip_mail'"
and check to make sure that only the key(s) you wanted were added.

En el CT de Sawmill crearemos las carpetas que montaran los recursos. Yo cree las carpetas mail y squid en el siguiente camino /var/log ustedes pueden ubicarlas donde deseen. Ahora pararemos el CT de Sawmill para crearle los puntos de montaje.

nano /etc/pve/nodes/<nombre del nodo>/lxc/ct_id_sawmill.conf
###Agregamos lo siguiente

mp0: /mnt/logs/squid/,mp=/var/log/squid/
mp1: /mnt/logs/mail/,mp=/var/log/mail/

Iniciamos nuestro Sawmill y ya por fin dentro veremos los logs de los CT mail y squid .

Ahora crearemos el perfil para analizar los logs de Squid.

Los dejo con una imagen del Sawmill en accion.

¿De cuánta utilidad te ha parecido este contenido?

Alexander Rivas Alpizar

Administrador de Redes EMPRESTUR Cienfuegos

Ver comentarios

  • Hum...

    A mi me gusta más la variante de que los CT tiren sys logs por rsyslog a un server de logs y este server entonces tenga el sawmill...

    Buen tema pra un putorial... dejame buscar a ver si no inventé el agua tivia...

Compartir
Publicado por
Alexander Rivas Alpizar

Entradas recientes

Alta disponibilidad de sus base de datos con Percona XtraDB Cluster en Kubernetes

Uno de los grandes retos al que nos podemos enfrentar cuando una aplicación crece, es…

9 meses hace

Home automation (Parte 3) – ESPHome

Qué es lo que deseo hacer en este capítulo? Básicamente un sonoff, quiero encender/apagar las…

1 año hace

Home automation (Parte 2) – Home Assistant

Hace algunos meses estoy escuchando hablar del proyecto Home Assistant (HA). En palabras literales del…

1 año hace

Home automation (Parte 1)

Desde hace varios meses vengo con la idea de automatizar la casa donde vivo. Poco…

1 año hace

Cocinando una imagen personalizada de OpenWRT

El artículo describe el uso para un caso particular de OpenWRT y la creación de…

1 año hace