• Skip to main content
  • Skip to secondary menu
  • Skip to primary sidebar
El Blog de Jorge de la Cruz

El Blog de Jorge de la Cruz

El Blog de Jorge de la Cruz - Todas las novedades sobre VMware, Veeam, InfluxData, Grafana, Zimbra, etc.

  • Home
  • VMware
    • VMworld
    • VMware vSphere 6.7
    • VMware vSphere 6.5
  • Veeam
    • Resumen Contenido 2021
    • Veeam v11
      • Continuous Data Protection (CDP
      • Ransomware Protection
      • Archive Tier
      • Mejoras en Instant Recovery
      • Veeam Agent for Mac
      • Veeam Backup for AHV v2.1
    • Veeam Backup for Microsoft Office 365
      • 1 – Razones para proteger nuestra información en Microsoft Office 365
      • 2 – Componentes lógicos de Veeam Backup for Microsoft Office 365 2.0
      • 3 – Instalación paso a paso de Veeam Backup for Microsoft Office 365 v2.0
      • 4 – Configuración inicial de Veeam Backup for Microsoft Office 365 v2.0
      • 5 – Creando trabajos de copia en Veeam Backup for Microsoft Office 365 v2.0
      • 6 – Restaurando elementos en Veeam Backup for Microsoft Office 365 v2.0
    • Veeam Backup for AWS
      • Veeam: Veeam anuncia Veeam Backup for AWS Free Edition
      • Veeam: Cómo Desplegar Veeam Backup for AWS – paso a paso
      • Veeam: Vistazo en profundidad al nuevo Veeam Backup for AWS – Creación de Políticas de Backup y Restauración
      • Veeam: Cómo conectar nuestro Veeam Backup & Replication a Veeam Backup for AWS
    • Veaam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte I – Introducción a Veeam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte II – Descarga e Instalación de Veeam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte III – Añadir una Infraestructura de VMware vSphere a Veeam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte IV – Añadir una Infraestructura de Veeam Backup and Replication a Veeam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte V – Realizando troubleshooting de vSphere usando Veeam ONE Monitor
      • En busca del Dashboard perfecto: Veeam ONE – Parte VI – Realizando troubleshooting de Veeam Backup and Replication usando Veeam ONE Monitor
      • En busca del Dashboard perfecto: Veeam ONE – Parte VII – Vistazo profundo a los Dashboards en Veeam ONE Reporter
      • En busca del Dashboard perfecto: Veeam ONE – Parte VIII – Vistazo profundo a Reportes en Veeam ONE Reporter
      • En busca del Dashboard perfecto: Veeam ONE – Parte IX – Chargeback para crear reportes de coste de nuestra Infraestructura
    • Veeam Availability Console
      • 1 – Teoría e información útil sobre el producto
      • 2 – Instalación de Veeam Availability Console
      • 3 – Configuración y conexión con VBR Server
      • 4 – Administración centralizada de Veeam Backup Agents
      • 5 – Backup de Agentes a diferentes destinos, SMB, Repositorio Veeam o Cloud Connect
      • 6 – Reportes de Backup de Veeam Agent y Veeam Backup and Replication
      • 7 – Manejando la Facturación de Veeam Agents, Backup and Replication y Cloud Connect
    • Backup y restore de cargas de trabajo a Microsoft Azure
      • 1 – Introducción
      • 2 – Conectividad entre nuestro Datacenter y Microsoft Azure
      • 3 – Desplegar Veeam Backup and Replication en Microsoft Azure
      • 4 – Configuración en nuestro Datacenter para backup a Microsoft Azure
      • 5 – Restaurando a Microsoft Azure, desde Microsoft Azure
      • 6 – Migrar cargas de trabajo desde Microsoft Azure hacía nuestro Datacenter
    • Veeam v9.5 Update 4
      • Veeam Cloud Tier
        • Cómo controlar el ancho de banda en Veeam Cloud Tier
      • Secure Restore y Staged Restore
      • Mejoras en Veeam Agent Management
      • Veeam Community Edition
      • Actualizar Veeam Enterprise Manager y Veeam Backup and Replication a la última versión
      • VeeamONE con Intelligent Diagnostics, Remediation actions, Business View 2.0 y Application Monitoring
    • VeeamON 2022
      • Novedades en Veeam ONE v12
    • VeeamON 2021
      • VBO v6 – Self-Service y Backup Copy Glacier-Azure Archive
    • VeeamON 2020
      • Veeam Backup for AWS v2.0
    • VeeamON 2019
      • Veeam Availability Orchestrator v2.0 – ¡novedades!
    • VeeamON 2017
      • Sesiones recomendadas
      • Día I – Veeam Availability Suite v10 – ¡novedades!
      • Día II – Veeam Azure PN (Powered Network), Scale-out Archive Tier y mucho más
    • VeeamON 2015
      • VeeamON 2015 volverá a Las Vegas en el único Evento sobre Disponibilidad en el Data Center
      • Completo resumen, keynotes e imágenes
      • vBrownBag – Jorge de la Cruz – Stop sending postcards to your customers
  • Zextras
  • PRTG
  • Office 365
    • Microsoft – Añadiendo nuestro dominio a Office 365, configuración de DNS y migración de actual Mailbox
    • Veeam: Usando Microsoft Office 365 para nuestras notificaciones por correo electrónico
    • PRTG: Usando Microsoft Office 365 para nuestras notificaciones por correo electrónico
  • Zimbra
    • Instalación
      • Instalando Zimbra 8.7.6 sobre Ubuntu 14.04 LTS – ¡con Chat y Drive!
      • Amazon Lightsail para instalar Zimbra Collaboration 8.7.1, Parte II
      • Amazon Lightsail para instalar Zimbra Collaboration 8.7.1, Parte I
      • Instalando Zimbra 8.7.x con un solo comando, incluye Chat y Drive
  • Linux
    • InfluxDB, Grafana y Telegraf
      • 1 – Instalación y configuración de los components
      • 2 – Instalar agente en Linux
      • 3 – Integración con PRTG
      • 4 – Instalar agente Telegraf en Nodos remotos Windows
      • 5 – Activar inputs específicos, Red, MySQL/MariaDB, Nginx
      • 6 – Monitorizando Veeam
    • Ansible y Zabbix
      • 1 – Inicio
      • 2 – Instalación de Ansible e integración con Active Directory
      • 3 – Configuración de AutoDiscovery en Zabbix
      • 4 – Instalación del agente de Zabbix en Windows
      • 5 – Instalación del agente de Zabbix en Linux y Auto Remove en Zabbix
    • Jenkins
      • 1 – Inicio
      • 2 – Instalación de Jenkins en Ubuntu
      • 3 – Instalando nuestro primer plugin
      • 4 – Sincronización NTP de Linux
      • 5 – Añadir un Slave Windows a Jenkins
      • 6 – Ejecutar tareas en Linux
      • 7 – Ejecutar tareas en Windows
    • Kubernetes
      • 1 – Introducción a Kubernetes
      • 2 – Instalación paso a paso
      • 3 – RollingUpdate con Kubernetes
      • 4 – Dashboard
      • 5 – Volúmenes NFS
      • 6 – Registry
      • 7 – Traefik
      • 8 – Systemd con Traefik y Proxy de Kubernetes
      • 9 – Heapster Influx Grafana
      • 10 – Labels de Kubernetes
      • 11 – API: Swagger
      • 12 – API: Creando nuestro primer POD
  • Contribuidores
    • Acerca de Jorge
    • Acerca de Oscar Mas
      • Clúster SQL
        • 1 – Introducción
        • 2 – Preparación de los equipos virtuales
        • 3 – Instalación del Clúster de Microsoft
        • 4 – Instalación de SQL Server para Clúster de Microsoft
        • 5 – Configuración de nuestro Clúster de SQL
        • 6 – Monitorización de Clúster de SQL con Zabbix
        • 7 – Actualizando clúster de SQL

Zimbra: Logs centralizados con Logstash y Kibana sobre Ubuntu 14.04

16 December, 2014 - Escrito en: zimbra

Saludos amigos, Zimbra, así cómo cualquier servidor, aplicación, dispositivo, almacena mucha información en los Logs, de hecho para detectar cualquier problema, siempre hay que usar los Logs. Es por ello que deberiamos de prestar más atención a este elemento tan importante y sobre todo resolutivo en caso de fallo.

Desde este Blog y con ese artículo, vamos a aprender a instalar, en una VM dedicada, Un sistema centralizado de Logs basados en Logstash y Kibana, y lo instalaremos sobre Ubuntu Server 14.04 LTS.
Vamos allá con el menú

  • 1.- Componentes de nuestro Sistema Centralizado de Logs
  • 2.- Requisitos de Hardware, Software
  • 3.- Instalando el Servidor Centralizado de Logs
    • 3.1.- Instalar Java 7
    • 3.2.- Instalación de Elasticsearch
    • 3.3.- Instalando Kibana
    • 3.4.- Instalando Nginx
    • 3.5.- Instalando Logstash
    • 3.6.- Generando certificados SSL para la comunicación Cliente/Servidor
    • 3.7.- Configurando el servidor Logstash
  • 4.- Configurando los Servidores remotos
    • 4.1.- Copiar el Certificado SSL desde nuestro Logstash Server a nuestros Servidores remotos
    • 4.2.- Instalar el paquete Logstash Forwarder Package
    • 4.3.- Configurando Logstash Forwarder
    • 4.4.- Conectando a Kibana

Componentes de nuestro Sistema Centralizado de Logs

Nuestro sistema se basa en los siguientes componentes clave para tener una de las mejores herramientas de Logs:

  • Logstash: Este es el componente que procesa los logs que llegan
  • Elasticsearch: Almacena todos los logs
  • Kibana: Interfaz Web para buscar y visualizar los logs
  • Logstash Forwarder: Este componente se instala en los servidores que queremos que envien sus logs a nuestro Logstash, Logstash Forwarder es al final un agente que utiliza el protocolo de red lumberjack para comunicarse con Logstash

Los tres primeros componentes se instalarán en la VM dedicada para tal efecto, meintras que el último componente deberá ser instalado en cada Servidor que queramos monitorizar.

Requisitos de Hardware, Software

Sobre la VM, realizaremos una instalación limpio de Ubuntu Server 14.04LTS. Para la parte de Hardware, todo dependerá de la cantidad de Logs que queramos procesar, para un entorno moderado de hasta 30 Servidores enviando Logs a esta VM, con los siguientes recursos, tendremos de sobra:

  • OS: Ubuntu 14.04 LTS
  • vRAM: 4GB
  • vCPU: 2
  • vDisk: 100GB (SAS 10K o mejor 15K)

Instalando el Servidor Centralizado de Logs

Instalar Java 7

Elasticsearch y Logstash necesitan Java 7 para funcionar, para instalarlo debemos añadir el Oracle Java PPA a nuestro apt de la siguiente manera:

root@logstashkibana01:/home/oper# sudo add-apt-repository -y ppa:webupd8team/java
gpg: keyring `/tmp/tmptjs1zwc5/secring.gpg' created
gpg: keyring `/tmp/tmptjs1zwc5/pubring.gpg' created
gpg: requesting key EEA14886 from hkp server keyserver.ubuntu.com
gpg: /tmp/tmptjs1zwc5/trustdb.gpg: trustdb created
gpg: key EEA14886: public key "Launchpad VLC" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
OK

Una vez que ya tenemos añadido el repositorio de Oracle, es hora de hacer un apt-get update para actualizar la lista de paquetes:

root@logstashkibana01:/home/oper# apt-get update

Perfecto, ahora instalaremos la última versión estable de Oracle Java 7

root@logstashkibana01:/home/oper# sudo apt-get -y install oracle-java7-installer

Instalación de Elasticsearch

Para instalar Elasticsearch, deberemos añadir la key GPG publica a nuestro apt, para ello lanzaremos el siguiente comando:

 root@logstashkibana01:/home/oper# wget -O - http://packages.elasticsearch.org/GPG-KEY-elasticsearch | sudo apt-key add -

Ahora crearemos el arbol con la lista de sources, con el siguiente comando:

root@logstashkibana01:/home/oper# echo 'deb http://packages.elasticsearch.org/elasticsearch/1.1/debian stable main' | sudo tee /etc/apt/sources.list.d/elasticsearch.list

Y lanzaremos un apt-get update para actualizar la lista de paquetes:

root@logstashkibana01:/home/oper#apt-get update

Y procederemos a la instalación de Elasticsearch:

root@logstashkibana01:/home/oper# sudo apt-get -y install elasticsearch=1.1.1

Una vez instalado, vamos a editar un par de cosas para dejar fino nuestro entorno, primero editaremos el fichero de configuración:

root@logstashkibana01:/home/oper# sudo vi /etc/elasticsearch/elasticsearch.yml

Al final del fichero, o al principio, realmente no importa donde lo ubiquemos, añadiremos la siguiente línea para deshabilitar los scripts dinámicos:

script.disable_dynamic: true

Adicionalmente, para securizar el entorno, y deshabilitar las llamadas por API a nuestro Elasticsearch, deberemos de editar la variable llamada network.host, la buscaremos en el fichero de configuración y lo dejaremos de la siguiente manera:

network.host: localhost

Una vez hemos tuneado y securizado nuestro Elasticsearch, es hora de reiniciar el servicio:

root@logstashkibana01:/home/oper# sudo service elasticsearch restart
* Starting Elasticsearch Server
...done.

Para añadir el servicio de Elasticsearch al inicio de boot de Ubuntu, ejecutaremos el siguiente comando:

root@logstashkibana01:/home/oper# sudo update-rc.d elasticsearch defaults 95 10
Adding system startup for /etc/init.d/elasticsearch ...
/etc/rc0.d/K10elasticsearch -> ../init.d/elasticsearch
/etc/rc1.d/K10elasticsearch -> ../init.d/elasticsearch
/etc/rc6.d/K10elasticsearch -> ../init.d/elasticsearch
/etc/rc2.d/S95elasticsearch -> ../init.d/elasticsearch
/etc/rc3.d/S95elasticsearch -> ../init.d/elasticsearch
/etc/rc4.d/S95elasticsearch -> ../init.d/elasticsearch
/etc/rc5.d/S95elasticsearch -> ../init.d/elasticsearch

Instalando Kibana

En este tutorial yo he instalado Kibana 3.1.2, buscar la última versión en su website antes de instalar la 3.1.2.

Descargaremos Kibana con el siguiente comando:

root@logstashkibana01:/home/oper# wget https://download.elasticsearch.org/kibana/kibana/kibana-3.1.2.tar.gz

Después deberemos extraer el paquete que acabamos de descargar:

root@logstashkibana01:/home/oper# tar xvf kibana-3.1.2.tar.gz

Nos moveremos al directorio de Kibana y editaremos el fichero de configuración:

root@logstashkibana01:/home/oper# cd kibana-3.1.2
root@logstashkibana01:/home/oper/kibana-3.1.2# vi kibana-3.1.2/config.js



Después, una vez dentro deberemos buscar la variable llamada elasticsearch:, y reemplazar el contenido del puerto, que por defecto vendrá el 9200, por el puerto 80, para que nos sea realmente cómodo navegar posteriormente (http://IPDENUESTROSERVERDELOGS), debe quedarnos algo así:

elasticsearch: "http://"+window.location.hostname+":80",

A su vez, vamos a usar Nginx para que sirva nuestra aplicación web, Kibana, por lo tanto deberemos crear primero la carpeta adecuada en el directorio /var/www, con el siguiente comando:

root@logstashkibana01:/home/oper/kibana-3.1.2# sudo mkdir -p /var/www/kibana3

Y posteriormente copiar toda nuestra carpeta y ficheros de Kibana a su nueva ubicación:

root@logstashkibana01:/home/oper# sudo cp -R ~/kibana-3.1.2/* /var/www/kibana3/

Como antes hemos mencionado, para servir la aplicación Web, vamos a hacer uso de Nginx.

Instalando Nginx

Usaremos nuestro apt normal para instalar el servidor web Nginx:

root@logstashkibana01:/home/oper# sudo apt-get install nginx

Debido a la forma en que Kibana interactúa con Elasticsearch (el usuario debe ser capaz de acceder Elasticsearch directamente), tenemos que configurar Nginx para que haga proxy al puerto 80 las peticiones que vienen del puerto 9200 (el puerto que Elasticsearch escucha por defecto).

Por suerte, Kibana ofrece un ejemplo de configuración Nginx que establece la mayor parte de esto.

Descargaremos la configuración de Nginx desde el GitHub de Kibana a nuestro directorio:

cd ~; wget https://gist.githubusercontent.com/thisismitch/2205786838a6a5d61f55/raw/f91e06198a7c455925f6e3099e3ea7c186d0b263/nginx.conf

Editaremos el fichero de configuración:

root@logstashkibana01:~# vi nginx.conf

Buscaremos la variable llamada server_name y añadiremos nuestro FQDN, o localhost si no estamos usando ningún FQDN en particular. También deberemos introducir la ruta donde están nuestros ficheros de Kibana:

server_name FQDN;
root /var/www/kibana3;

Guardaremos este fichero y procederemos a copiarlo a la carpeta de Nginx para convertirlo en nuestro fichero de configuración por defecto:

root@logstashkibana01:~# sudo cp nginx.conf /etc/nginx/sites-available/default

Para que nuestros usuarios se puedan loguear, o nuestros compañeros Administradores de Sistemas, deberemos hacer uso de las apache2-utils, para instalarlas lanzaremos el siguiente comando:

root@logstashkibana01:~# sudo apt-get install apache2-utils

Es el momento de generar un login que será usado por Kibana para guardar los dashboards, por favor en los campos en rojos escribir vuestro propio usuario, nos solicitará una contraseña:

root@logstashkibana01:~# sudo htpasswd -c /etc/nginx/conf.d/kibana.myhost.org.htpasswd user admin
New password:
Re-type new password:
Adding password for user admin

Ya casi hemos acabado, ahora lanzaremos un reinicio a Nginx:

root@logstashkibana01:~# sudo service nginx restart
* Restarting nginx nginx
...done.

Instalando Logstash

Es el último paquete que instalaremos en la VM de servidor, en este caso se trata de instalar Logstash, lo podemos instalar desde el mismo repositorio de Elasticsearch, por lo que tan solo lanzaremos el siguiente comando para crear la lista de sources para Logstash:

root@logstashkibana01:~# echo 'deb http://packages.elasticsearch.org/logstash/1.4/debian stable main' | sudo tee /etc/apt/sources.list.d/logstash.list
deb http://packages.elasticsearch.org/logstash/1.4/debian stable main

Lanzaremos un apt-get update para refrescar la lista de paquetes:

root@logstashkibana01:~# apt-get update

Y ahora lanzaremos el comando para instalar Logstash:

root@logstashkibana01:~# sudo apt-get install logstash=1.4.2-1-2c0f5a1

Logstash está ahora instalado, pero todavía no está configurado, primero debemos realizar un paso previo.

Generando certificados SSL para la comunicación Cliente/Servidor

Cómo vamos a usar Logstash Forwarder en los servidores clientes para enviar los logs hacía nuestroo servidor de Logstash centralizado, queremos hacerlo de manera segura. Con lo que generaremos un certificado SSL y una juego de llaves. El certificado será usado por el “Cliente” para verificar la identidad del “Servidor”.

Crearemos primero los directorios donde almacenaremos el certificado y la clave privada:

root@logstashkibana01:~# sudo mkdir -p /etc/pki/tls/certs
root@logstashkibana01:~# sudo mkdir /etc/pki/tls/private

Ahora generaremos el certificado SSL y la clave privada, en sus correspondientes carpetas, con el siguiente comando:

root@logstashkibana01:~# cd /etc/pki/tls; sudo openssl req -x509 -batch -nodes -days 3650 -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt

Configurando el servidor Logstash

Los ficheros de configuración de Logstash están en formato JSON, y se almacenan en la carpeta /etc/logstash/conf.d. La configuración consiste de tres secciones; inputs, filters y outputs.

Vamos a crear un fichero de configuración llamado 01-lumberjack-input.conf y vamos a configurar nuestro input “lumberjack”:

root@logstashkibana01:/etc/pki/tls# sudo vi /etc/logstash/conf.d/01-lumberjack-input.conf

E introduciremos el siguiente texto a la configuración:

input {
lumberjack {
port => 5000
type => "logs"
ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
}
}

Guardaremos el fichero y saldremos de él. Con esto hemos especificado un input “lumberjack” escuchando por el puerto TCP 5000, y además hará uso del Certificado SSL y la clave privada que hemos creado anteriormente.

Ahora, crearemos un fichero llamado 10-syslog.conf, y es donde añadiremos el filtro para nuestros mensajes de syslog:

root@logstashkibana01:/etc/pki/tls# sudo vi /etc/logstash/conf.d/10-syslog.conf

Y añadiremos el siguiente contenido para definir nuestro filtro:

filter {
if [type] == "syslog" {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
add_field => [ "received_at", "%{@timestamp}" ]
add_field => [ "received_from", "%{host}" ]
}
syslog_pri { }
date {
match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
}
}

Guardaremos y saldremos del fichero. Este filtro que hemos definido mirará en los logs que se sean de tipo “syslog” y los intentará parsear usando “grok” para hacerlos más sencillos de interpretar.

El último fichero que editaremos le llamaremos 30-lumberjack-output.conf:

root@logstashkibana01:/etc/pki/tls# sudo vi /etc/logstash/conf.d/30-lumberjack-output.conf

Y contendrá la siguiente información:

output {
elasticsearch { host => localhost }
stdout { codec => rubydebug }
}

Basicamente lo que hace este output es guardar los logs de Logstash en Elasticsearch.

Reiniciaremos los servicios:

root@logstashkibana01:/etc/pki/tls# sudo service logstash restart

Ya tenemos nuestro Servidor 100% listo.

Configurando los Servidores remotos

Llega el momento más divertido, cuando configuramos nuestros servidores remotos para que manden los logs que deseamos a nuestro servidor centralizado de Logs.

Los pasos aquí indicados son para Ubuntu 14.04 LTS.

Copiar el Certificado SSL desde nuestro Logstash Server a nuestros Servidores remotos

En el Servidor de Logstash, deberemos lanzar el siguiente comando hacía nuestro Server Zimbra.

root@logstashkibana01:/etc/pki/tls# scp /etc/pki/tls/certs/logstash-forwarder.crt user@server_private_IP:/tmp:

Instalar el paquete Logstash Forwarder Package

En nuestro servidor remoto, en este caso nuestro Zimbra, crearemos la lista de paquetes de Logstash Forwarder:

root@zimbra-sn-u14-01:/home/oper# echo 'deb http://packages.elasticsearch.org/logstashforwarder/debian stable main' | sudo tee /etc/apt/sources.list.d/logstashforwarder.list

Una vez hemos hecho esto, instalaremos el paquete de Logstash Forwarder:

root@zimbra-sn-u14-01:/home/oper# sudo apt-get update
root@zimbra-sn-u14-01:/home/oper# sudo apt-get install logstash-forwarder

Lo siguiente que querremos seguramente es que Logstash Forwarder arranque al iniciar nuestro Ubuntu:

root@zimbra-sn-u14-01:/home/oper# cd /etc/init.d/; sudo wget https://raw.github.com/elasticsearch/logstash-forwarder/master/logstash-forwarder.init -O logstash-forwarder
root@zimbra-sn-u14-01:/home/oper# sudo chmod +x logstash-forwarder
root@zimbra-sn-u14-01:/home/oper# sudo update-rc.d logstash-forwarder defaults

Ahora copiaremos el Certificado SSL a su carpeta correspondiente:

root@zimbra-sn-u14-01:/home/oper# sudo mkdir -p /etc/pki/tls/certs
root@zimbra-sn-u14-01:/home/oper# sudo cp /tmp/logstash-forwarder.crt /etc/pki/tls/certs/

Configurando Logstash Forwarder

Es el momento de darle el último apretón a este tutorial, dentro de nuestra VM Zimbra deberemos seleccionar que logs queremos que sea procesados por nuestro Sistema Centralizado de Logs.

Vamos a crear un fichero de configuración para Logstash Forwarder en formato JSON:

root@zimbra-sn-u14-01:/home/oper# sudo vi /etc/logstash-forwarder

Ahora introduciremos el siguiente contenido, sustituyendo por supuesto la IPO del servidor de Logstash, por la de vuestro servidor de Logstash, cómo podéis ver, yo quiero mandar a mi Sistema Centralizado de Logs los siguientes logs: syslog, auth.log, mailbox.log, nginx.access.log, nginx.log, zimbra.log y mail.log, pero podéis añadir todos los que queráis aquí:

{
"network": {
"servers": [ "IPDEVUESTROLOGSTASH:5000" ],
"timeout": 15,
"ssl ca": "/etc/pki/tls/certs/logstash-forwarder.crt"
},
"files": [
{
"paths": [
"/var/log/syslog",
"/var/log/auth.log",
"/opt/zimbra/log/mailbox.log",
"/opt/zimbra/log/nginx.access.log",
"/opt/zimbra/log/nginx.log",
"/var/log/zimbra.log",
"/var/log/mail.log"
],
"fields": { "type": "syslog" }
}
]
}

Guardaremos el fichero y saldremos de la configuración.

Por último lanzaremos un reinicio del servicio en nuestra máquina Zimbra:

root@zimbra-sn-u14-01:/home/oper#  sudo service logstash-forwarder restart

Tendremos que repetir este último proceso por cada Servidor remoto que queramos monitorizar.

Conectando a Kibana

Llega el paso interactivo y en HTML5, después de tanto tiempo en consola, ya podremos irnos a un navegador y escribir la dirección IP de nuestro Server Centralizado de Logs con Logstash. Lo primero que veremos es la pantalla de Introducción, que nos muestra un breve resumen con información acerca de Kibana, etc. Seleccionaremos la opción 1. Sample Dashboard.
zimbra-logstashkibana-001

De Kibana y nuestro Sistema Centralizado de Logs me gusta todo, pero especialmente que podemos marcar por checkbox, para obtener el resultado de los Logs de manera granular y perfectamente parseada y lo mejor, parseada a nuestro gusto. Y no solo eso, también nos permite jugar y aglutinar la búsqueda por los campos seleccionados, maravilloso.

zimbra-logstashkibana-002

Además, por si fuera poco, podemos jugar con los Dashboard a nuestro gusto y compartir la URL pública, de tal manera que podemos darle el Dashboard a otros Sysadmin de la Empresa, o ponerlo en un monitor dedicado encendido las 24 horas del día, con una RaspberryPi, o enviarselo al responsable de Informática de la Empresa a la que llevamos el servicio de Zimbra.

zimbra-logstashkibana-003

Esto es un resumen real de tiempo, donde puedo ver la cantidad de Logs recibidos durante un periodo de tiempo, es más o menos constante porque es un entorno de pruebas, en un entorno de producción, según horas, y picos de trabajo, será más fluctuable.

zimbra-logstashkibana-004

Aquí tenemos un ejemplo de cómo se ve una entrada de Log, una vez está parseada y lista para que podamos consumirla de una manera mucho más sencilla que por SSH en nuestros servidores Zimbra.

zimbra-logstashkibana-005

Nada más, espero que esta entrada os resulte muy útil y le déis un uso adecuado. Como comentaba al inicio, tener saneados y controlados los Logs, nos puede ahorrar horas y horas de paradas de servicio, o detectar un problema o ataque de manera mucho más eficaz.

Esta entrada está 100% basada en este artículo original de la gente de DigitalOcean, que además de tener los mejores VPS Cloud hacen tutoriales impresionantes.

Filed Under: zimbra Tagged With: zimbra kibana, zimbra logs, zimbra syslog

Reader Interactions

Comments

  1. Jymit says

    16 December, 2014 at 9:34

    Super Like – Going to play with this. Gracias.

    Reply
    • Jorge de la Cruz says

      16 December, 2014 at 17:17

      Thank you Jymit, I’m missing you bro !!

      Peace !

      Reply
    • Txerra says

      16 December, 2014 at 17:37

      hi !

      😉

      Reply
      • Jorge de la Cruz says

        16 December, 2014 at 17:40

        Hola

        Reply
  2. Alberto says

    16 December, 2014 at 17:02

    La verdad es que me parece super interesante. Hata ahora yo estaba usando syslogappliance
    Este no es tan visual como kibana, usar rsyslog y me interesaba porque podia ser mi repositorio de logs para fw , routers , cabinas etc.
    He investigado un poquito y veo que con este sistema tambien puedo portar mis logs de dispositivos de red y luego verlo con Kibana.
    Espero poder probarlo.
    Un Saludo y muchas gracias

    Reply
    • Jorge de la Cruz says

      16 December, 2014 at 17:17

      Muchas gracias Alberto,
      Si con este sistema puedes recoger Logs de cualquier elemento, parsearlos y verlos de manera elegante, generar diferentes dashboards para diferentes roles y publicarlos o compartirlos.

      Amazing !

      Reply
  3. Darry Castro says

    17 December, 2014 at 18:50

    Excelente, espero poder ponerlo en practica hermano. Saludos..

    Reply
  4. Pedro Jorge Viana says

    16 January, 2015 at 13:20

    Hola Jorge…

    Genial el articulo!!! Hay que probarlo a fondo…
    Un comentario solamente… en el apartado en que indicas que se ha de copiar toda la información de la carpeta de kibana a /var/www/kibana3 creo que se te ha colado una coma…

    Justo en: sudo cp -R ~/kibana-3.1,2/* /var/www/kibana3/

    Por si la gente que suele hacer copy paste (yo incluido) de algun tipo de error… 🙂

    Lo de las comillas simples también pasa a menudo… 😉

    Un saludo y gracias por el aporte, siempre sacas información interesante!
    A seguir así!
    🙂

    Reply
    • Jorge de la Cruz says

      16 January, 2015 at 13:22

      Saludos Jorge,
      Corregido, muchas gracias por leerlo y seguir los pasos 🙂 Tambien puedes ver el otro Post con VMware vRealize Log Insight 🙂

      Un saludo

      Reply
  5. Mario says

    3 March, 2015 at 20:15

    Hola Jorge.

    Excelente aporte, sabes que lo puse en práctica, instalé el server de logs en un ubuntu, sin embargo los servidores zimbra los tengo en red hat, para lo cual seguí la gua de la página original que sugieres y ya tengo todo listo, sin embargo cuando entro a la consola web del log server es decir a kibana tengo el siguiente error y no muestra ningún log.

    No results There were no results because no indices were found that match your selected time span.

    Sabes cual puede ser el error, he revisado paso a paso, línea a línea y no encuentro el fallo.

    Gracias por tu ayuda.

    Reply
    • Jorge de la Cruz says

      3 March, 2015 at 22:13

      Saludos Mario,
      Mira dentro de los logs de logstash y de kibana – http://stackoverflow.com/questions/20681396/logstash-kibana-alert-no-results-there-were-no-results-because-no-indices-wer

      Un saludo

      Reply
      • Mario says

        3 March, 2015 at 22:36

        Hola Jorge.

        Justo estaba por ponerte que ya descubrí el error, te cuento y aporto con mi experiencia por si le pasa a alguien más.

        Mira luego de verificar el error que te mencioné hice pruebas en los servidores remotos para verificar si están haciendo el envío de los logs, para ello hice uso de este comando.

        /opt/logstash-forwarder/bin/logstash-forwarder -config /etc/logstash-forwarder.

        Obteniendo este resultado.
        Failed to tls handshake with xxxx x509: cannot validate certificate for xxxx because it doesn’t contain any IP SANs

        Lo que me llevó a pensar que el servidor estaba buscando la IP dentro del ssl, luego de googlear un poco, bueno la verdad bastante, encontré que puedes poner la IP del servidor de logs en el archivo openssl.conf justa en la sección [v3_ca]. Hay que colocar lo siguiente:
        subjectAltName=IP:10.5.2.111

        Reiniciamos los servicios y listo ya tengo las estadísticas en pantalla.

        Gracias por tu aporte.

        Ahora una consulta, como puedo poner un password para el ingreso a la consola web?, porque al momento está totalmente abierto.

        Saludos.

        Reply
        • Jorge de la Cruz says

          3 March, 2015 at 22:41

          Jugando con el Auth a nivel de servidor –
          Si instalaste apache – http://stackoverflow.com/questions/19867663/how-and-where-to-implement-basic-authentication-in-kibana-3
          Si instalaste nginx – http://technosophos.com/2014/03/19/ssl-password-protection-for-kibana.html

          Gracias por tu aporte!

          Reply
          • Mario says

            4 March, 2015 at 16:46

            Excelente,.
            Gracias!!! buen día

  6. Adonis says

    6 March, 2015 at 21:57

    Amigo antes que nada muchas felicidades por tan interesante publicacion,tengo un problema en los servidores remotos al enviar al servidor de kibana me sale el siguiente error

    2015/03/06 15:54:40.502076 Failed unmarshalling json: invalid character ‘”‘ after object key:value pair
    2015/03/06 15:54:40.502085 Could not load config file /etc/logstash-forwarder.conf: invalid character ‘”‘ after object key:value pair

    espero por su ayuda

    Saludos

    Reply
    • Mario says

      9 March, 2015 at 21:38

      Amigo, el problema que tienes es porque seguramente los archivos de edición copiaste el texto tal cual y lo pegaste, sin editar, debes verificar las comillas manualmente, no las copies, pues pierden el formato.

      Reply
  7. Manuel says

    11 November, 2015 at 10:18

    Buenos días Jorge,

    Estoy trabajando con Kibana y me surge un problema.

    A la hora de editar el output en el elasticsearch, sale por defecto una línea de código ( index => “logstash-%{+YYYY.MM.dd}”) que hace que no coincida la fecha de mis logs con lo que se ve por pantalla.
    Existe algo que me permita poner la fecha correspondiente o que se sincronicen?

    Muchas gracias de antemano.

    Reply
  8. Jhounny Nuñez says

    11 May, 2016 at 21:37

    Hola Jorge, quisiera hacerte una pregunta:

    He montado ELK en un servidor que quiero que analice los access logs de un LAMP server que se encuentran en un bucket S3 de AWS. He montado dicho bucket en el filesystem de mi servidor ELK por lo que me he saltado los pasos de los certificados CRT y Logstash Forwarder.

    Esta es mi configuración del logstash:
    input {
    file {
    path => ‘/mnt/log-bucket/access.log.1’
    }
    }

    filter {
    grok {
    match => { “message” => “%{COMBINEDAPACHELOG}” }
    }
    }

    output {
    elasticsearch { protocol => “http”
    host =>”localhost”
    }
    }

    ¿Qué puedo estar haciendo mal? ¿Será que ELK no funciona para lo que deseo hacer?

    Saludos.

    Reply
    • Jorge de la Cruz says

      11 May, 2016 at 22:09

      Saludos Jhounny, que errores ves en los logs?

      Un saludo

      Reply
  9. Ignacio Monserrat says

    22 August, 2016 at 22:30

    Hola Jorge,
    Muy interesante el articulo, pero traté de hacerlo desde un servidor Ubuntu 14.04 64 bits como servidor ELK y mi cliente que es zimbra 8.6 patch 6 desde un RHEL 6 y no funciona. Me podrias ayudar?

    Reply
    • Ignacio Monserrat says

      22 August, 2016 at 23:23

      Es decir, el server como tal en Ubuntu 14.04 lo tengo configurado el ELK (funcionó y lo pasé a producción), pero el configurar filebeat en el cliente no envia logs.

      Reply
  10. luis says

    11 October, 2016 at 21:41

    entiendo que ahora logstash forwarder fue sustituido por otra aplicacion que se llama filebeat, yo habia seguido esta configuracion pero al llegar a configuracion logstash-forwarder tengo ese inconveniente, he encontrado varias guias para configurar filebeat pero no l epego a ninguna, no me funcionan,, habra alguna ayuda por aca?

    Reply
    • Felix says

      25 May, 2017 at 18:11

      Allí está actualizado a Firebeat
      https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-elk-stack-on-ubuntu-14-04#set-up-filebeat-(add-client-servers)

      Reply
      • Jorge de la Cruz says

        25 May, 2017 at 20:01

        Aquí encontraras también los pasos actualizados y en Castellano
        En busca del Dashboard perfecto: Elastic Stack 5.x (Beats, Logstash, Elasticsearch y Kibana) – Parte I
        Un saludo

        Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Primary Sidebar

  • Email
  • GitHub
  • LinkedIn
  • RSS
  • Twitter
  • YouTube

Gold Partners

Silver Partners

Libros Gratuitos

Cloud por vExperts
VMware por vExperts

VMware vExpert

Puesto 16 en Top vBlog

Calendario de Posts

December 2014
M T W T F S S
1234567
891011121314
15161718192021
22232425262728
293031  
« Nov   Jan »

Disclaimer

Todas las opiniones expresadas en este sitio son las mías propias y no representan las opiniones de ninguna compañía con la que haya trabajado, esté trabajando o vaya a estar trabajando.

Copyright © 2026 · El Blog de Jorge de la Cruz