• 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

Cómo instalar y configurar Graylog en Ubuntu 16.04. 1era Parte.

10 April, 2018 - Escrito en: elastic, utilidades

Hola, mi nombre es alexander (AKA @alexminator) soy de Cuba y junto con mi amigo Omar (AKA @opc4772) les mostraremos como instalar GrayLog. Somos nuevos en el Blog de Jorge y les mostraremos como hacemos las cosas los SysAdmin de CUBA. Espero les guste nuestra forma de enseñar y no duden en preguntar sino entienden algo.

Siempre en nuestra red tendremos servidores y servicios generando logs (eventos de sistema), los cuales nos informan de errores y estadísticas de los mismos. En los entornos corporativos actuales, la localización de un error obliga a abrir ficheros de logs de gran tamaño, dificultando su manejo. Para ello, se crean softwares para recolectar, filtrar, ordenar y explotar los eventos generados por tu infraestructura.

Hoy les mostraremos uno de ellos, Graylog (anteriormente conocido como Graylog2) es una plataforma de administración de syslog de código abierto que le ayuda a recopilar, indexar y analizar syslog en una ubicación centralizada. El mismo proporciona un sistema unificado y centralizado de mensajes procedentes de diferentes fuentes: sistema operativo, servidores de aplicación, sistemas de información, etc. Dispone de un sistema de alertas y de búsqueda de histórico de logs usando ElasticSearch como base de datos de índices. Veamos cómo funciona:

En este tutorial no solo les mostrare como instalar un server Graylog sino que además como extra les mostrare como graficar sus resultados. Usaremos para ello a Grafana. Un software para visualización de datos y monitoreo con soporte para Graphite, InfluxDB, Prometheus, Elasticsearch y muchas más bases de datos. Debido al alto consumo de recursos de java para su uso con elasctic, decidí entonces separar los servicios con los que el Graylog funciona. Logrando así balancear la carga de nuestros proxmox.  Quedando una estructura como esta:

Como se observa en la figura, creare 3 contenedores:

  • Graylog
  • ElasticSearch
  • Grafana

De ser posible, ubicar el contenedor de elasticsearch en un proxmox diferente al del GrayLog y Grafana. Como consejo para no afectar el rendimiento y la carga, de las demás máquinas virtuales que están corriendo en el proxmox donde se encuentra el contenedor de elasticsearch. Recomiendo la inserción de un disco duro aparte en su proxmox que contendría al elasticsearch. Ahora que nos queda claro la estructura que usaremos procedemos a crearlas. Usare como plataforma de virtualización Proxmox por su fácil manejo y efectividad.

Instalando Grafana

Creamos un contenedor (CT) en nuestro Proxmox con Ubuntu 16.04 como OS.

  • CPU: 2 Cores
  • RAM: 1 GB
  • SWAP: 2 GB
  • HDD: 8 GB

Seguido lo actualizaremos.

apt update
apt upgrade

Ahora instalaremos herramientas necesarias

apt install mc
apt install curl
apt install htop

Este proceso será el mismo para los 3 contenedores por lo tanto solo lo mostrare una sola vez. Configuramos nuestro CT para poder acceder por SSH. Editamos el file sshd_config:

>nano /etc/ssh/sshd_config

Comentamos y agregamos:

# Authentication:
LoginGraceTime 120
#PermitRootLogin prohibit-password  (comentamos esto)
PermitRootLogin yes                 (agregamos esto)
StrictModes yes

Reiniciamos el CT y ya tendremos acceso por SSH .


Ahora les mostrare 2 métodos de instalar grafana:
a) Este método funciona en cuba que tenemos bloqueo de muchos sitios de internet. Nos bajamos de su sitio la última versión para Debian/Ubuntu (en la fecha de confección del tutorial era la versión 5.0.1)

root@grafana:~# wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana_4.6.3_amd64.deb
--2018-02-24 04:52:44--  https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana_4.6.3_amd64.deb
Connecting to 192.168.1.65:81... connected.
Proxy request sent, awaiting response... 200 OK
Length: 47314032 (45M) [application/x-debian-package]
Saving to: 'grafana_4.6.3_amd64.deb'

grafana_4.6.3_amd64.deb                    100%[======================================================================================>]  45.12M   216KB/s    in 3m 40s

2018-02-24 04:56:25 (210 KB/s) - 'grafana_4.6.3_amd64.deb' saved [47314032/47314032]

Instalamos dependencias:

root@grafana:~# sudo apt-get install -y adduser libfontconfig
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'libfontconfig1' instead of 'libfontconfig'
adduser is already the newest version (3.113+nmu3ubuntu4).
libfontconfig1 is already the newest version (2.11.94-0ubuntu1.1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Puede que nos diga que ya las teníamos y que están actualizadas, pero son obligatorio tenerlas así que no está demás comprobar. Y ahora por ultimo instalamos grafana:

root@grafana:~# sudo dpkg -i grafana_4.6.3_amd64.deb
Selecting previously unselected package grafana.
(Reading database ... 16252 files and directories currently installed.)
Preparing to unpack grafana_4.6.3_amd64.deb ...
Unpacking grafana (4.6.3) ...
Setting up grafana (4.6.3) ...
Adding system user `grafana' (UID 110) ...
Adding new user `grafana' (UID 110) with group `grafana' ...
Not creating home directory `/usr/share/grafana'.
### NOT starting on installation, please execute the following statements to configure grafana to start automatically using systemd
 sudo /bin/systemctl daemon-reload
 sudo /bin/systemctl enable grafana-server
### You can start grafana-server by executing
 sudo /bin/systemctl start grafana-server
Processing triggers for systemd (229-4ubuntu21.1) ...
Processing triggers for ureadahead (0.100.0-19) ...
root@grafana:~#

b) Este método no funciona en cuba. Se basa en agregar el repositorio oficial de grafana.

Agregamos la siguiente línea al fichero /etc/apt/sources.list .

deb https://packagecloud.io/grafana/stable/debian/ jessie main

Ahora agregamos la llave del sitio Package Cloud . Que nos permitirá instalar paquetes firmados.

curl https://packagecloud.io/gpg.key | sudo apt-key add -      (sin proxy)
curl -x http://user:pass@ip_proxy:port -s https://packagecloud.io/gpg.key | sudo apt-key add -  (con proxy)

Actualizamos los repositorios con el source de grafana agregado y seguido instalamos.

sudo apt update
sudo apt install grafana

Ya tenemos nuestro grafana instalado ahora procedemos a ejecutarlo

a)Iniciar el servidor usando (init.d)

sudo service grafana-server start

Configuramos el grafana para inciar en el arranque del CT

sudo update-rc.d grafana-server defaults

b)Inciar el servidor usando (systemd)

systemctl daemon-reload
systemctl start grafana-server

Configuramos el grafana para inciar en el arranque del CT

sudo systemctl enable grafana-server.service

Una vez iniciado el server podremos acceder mediante el siguiente link
http://ip_del _server_Grafana:3000

Como credenciales usaremos admin tanto para el usuario como para su clave. En este punto salvaremos nuestro CT.

Instalando Elasticsearch

Creamos un contenedor (CT) en nuestro Proxmox con Ubuntu 16.04 como OS.

  • CPU: 2 Cores
  • RAM: 4 GB
  • SWAP: 8 GB (Si el tamaño de la swap no es suficiente se deberá modificar)
  • HDD: 40 GB (Se almacenarán sus índices aquí por lo que su tamaño deberá ser grande y a gusto del usuario)

Seguido lo actualizaremos.

apt update
apt upgrade

Ahora instalaremos herramientas necesarias

apt install mc
apt install curl
apt install htop

ElasticSearch usa java para su correcto funcionamiento, lo mismo podemos usar OpenJDK que Oracle Java. Les mostrare como instalar ambos y ustedes decidirán cual usar.
a)Version OpenJDK

root@elastic:~# apt install default-jre
root@elastic:~# java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-8u151-b12-0ubuntu0.16.04.2-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

Simple y sencillo ya que es la versión libre de Linux de java.
b) Versión Oracle java
Nos bajamos el JRE 8 de ORACLE de cualquier otro sitio al que si le podamos llegar. Como, por ejemplo:
http://ftp.osuosl.org/pub/funtoo/distfiles/oracle-java/
Hasta la fecha de creación de este tutorial la versión mas actual es jre-8u162-linux-x64.tar.gz

tar -zxf jre-8u162-linux-x64.tar.gz -C /opt/

Debido a que hay muchas versiones del jre 8 y puede que ustedes consigan otra diferente a la que use, para hacer este tutorial más universal entonces renombraremos la carpeta creada.
De /opt/jre1.8.0_u162 a /opt/jre1.8.0
Procederemos ahora a instalar nuestro java:

update-alternatives --install /usr/bin/java java /opt/jre1.8.0/bin/java 100

update-alternatives --display java

Aquí vemos como quedarían estos comandos

root@elastic:~# tar -zxf jre-8u162-linux-x64.tar.gz -C /opt/
root@elastic:~# update-alternatives --install /usr/bin/java java /opt/jre1.8.0/bin/java 100
update-alternatives: using /opt/jre1.8.0/bin/java to provide /usr/bin/java (java) in auto mode
root@elastic:~# update-alternatives --display java
java - auto mode
  link best version is /opt/jre1.8.0/bin/java
  link currently points to /opt/jre1.8.0/bin/java
  link java is /usr/bin/java
/opt/jre1.8.0/bin/java - priority 100
root@elastic:~#

root@elastic:~# java -version
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
root@elastic:~#

Debido a que graylog 2.4.x no trabaja aun con la versión Elasticsearch 6.x. nos descargamos la última versión Elasticsearch 5.x que encontremos en su sitio. Por lo tanto, nos descargamos la versión Elasticsearch 5.6.8 de aquí. Una vez descargado (para cuba necesitaremos de un tor o tunnel) lo instalamos.

root@elastic:~# dpkg -i elasticsearch-5.6.8.deb
Selecting previously unselected package elasticsearch.
(Reading database ... 18428 files and directories currently installed.)
Preparing to unpack elasticsearch-5.6.8.deb ...
Creating elasticsearch group... OK
Creating elasticsearch user... OK
Unpacking elasticsearch (5.6.8) ...
Setting up elasticsearch (5.6.8) ...
Processing triggers for systemd (229-4ubuntu21.1) ...
Processing triggers for ureadahead (0.100.0-19) ...
root@elastic:~#

Nuestro ElasticSearch se instalara en /usr/share/elasticsearch/ su configuración estará en /etc/elasticsearch y su script de inicio en /etc/init.d/elasticsearch. Ahora nos aseguramos que elasticsearch inicie junto con nuestro ct.

root@elastic:~# sudo systemctl enable elasticsearch.service
Synchronizing state of elasticsearch.service with SysV init with /lib/systemd/systemd-sysv-install...
Executing /lib/systemd/systemd-sysv-install enable elasticsearch
Created symlink from /etc/systemd/system/multi-user.target.wants/elasticsearch.service to /usr/lib/systemd/system/elasticsearch.service.
root@elastic:~#

Inciamos el servcio y comprobamos si esta corriendo

root@elastic:~# service elasticsearch start
root@elastic:~# service elasticsearch status
* elasticsearch.service - Elasticsearch
   Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2018-02-25 18:23:38 UTC; 6s ago
     Docs: http://www.elastic.co
  Process: 554 ExecStartPre=/usr/share/elasticsearch/bin/elasticsearch-systemd-pre-exec (code=exited, status=0/SUCCESS)
 Main PID: 555 (java)
   CGroup: /system.slice/elasticsearch.service
           `-555 /usr/bin/java -Xms2g -Xmx2g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+AlwaysPreTouch -server

Feb 25 18:23:38 elastic systemd[1]: Starting Elasticsearch...
Feb 25 18:23:38 elastic systemd[1]: Started Elasticsearch.
lines 1-11/11 (END)

Para comprobar que todo este bien corremos esto:

root@elastic:~# curl -i -XGET 'localhost:9200/'
HTTP/1.1 200 OK
content-type: application/json; charset=UTF-8
content-length: 327

{
  "name" : "Vy7CwYj",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "j0VVxgmSTDmTNPeXKsBnRw",
  "version" : {
    "number" : "5.6.8",
    "build_hash" : "688ecce",
    "build_date" : "2018-02-16T16:46:30.010Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.1"
  },
  "tagline" : "You Know, for Search"
}
root@elastic:~#

Podemos ver el estado del nodo:

root@elastic:~# curl http://localhost:9200/_nodes/process?pretty
{
  "_nodes" : {
    "total" : 1,
    "successful" : 1,
    "failed" : 0
  },
  "cluster_name" : "elasticsearch",
  "nodes" : {
    "hR1Bz3p-T7iecVxWPlBoTA" : {
      "name" : "Graylog",
      "transport_address" : "127.0.0.1:9300",
      "host" : "127.0.0.1",
      "ip" : "127.0.0.1",
      "version" : "5.6.8",
      "build_hash" : "688ecce",
      "roles" : [
        "master",
        "data",
        "ingest"
      ],
      "process" : {
        "refresh_interval_in_millis" : 1000,
        "id" : 29245,
        "mlockall" : false
      }
    }
  }
}

Ahora configuraremos el elasticsearch . Primero optimizaremos el uso de la RAM del servicio elasticsearch.

nano /etc/default/elasticsearch 
y descomentar:
MAX_LOCKED_MEMORY=unlimited

Abrimos el fichero de configuracion de elasticsearch

nano /etc/elasticsearch/elasticsearch.yml

Activar mlockall quitando el #

    bootstrap.memory_lock: true

Como estamos usando distros de Linux modernas (Ubuntu 16 o Debian 9) las mismas usan systemd, por lo que las limitaciones del sistema deben ser especificadas vía systemd.

El fichero (/usr/lib/systemd/system/elasticsearch.service) contiene el limite que se aplica por defecto. Algunos lo editan agregandole esta linea

LimitMEMLOCK=infinity

En lo personal, no me gusto usar esa vía porque no me fue muy efectiva, ustedes pueden probarla si desean y ver si les da el resultado deseado. Yo prefiero anular el límite de memoria, creando un fichero llamado /etc/systemd/system/elasticsearch.service.d/override.conf para ello usaremos este comando que nos creara automáticamente el override.conf.

sudo systemctl edit elasticsearch

Nos abrira automáticamente el editor y dentro agregamos esto:

[Service] 
LimitMEMLOCK=infinity

Una vez terminado, recargamos el demonio:

sudo systemctl daemon-reload
service elasticsearch restart

Comprobamos otra vez el nodo.

root@elastic:~# curl http://localhost:9200/_nodes/process?pretty
{
  "_nodes" : {
    "total" : 1,
    "successful" : 1,
    "failed" : 0
  },
  "cluster_name" : "elasticsearch",
  "nodes" : {
    "hR1Bz3p-T7iecVxWPlBoTA" : {
      "name" : "Graylog",
      "transport_address" : "127.0.0.1:9300",
      "host" : "127.0.0.1",
      "ip" : "127.0.0.1",
      "version" : "5.6.8",
      "build_hash" : "688ecce",
      "roles" : [
        "master",
        "data",
        "ingest"
      ],
      "process" : {
        "refresh_interval_in_millis" : 1000,
        "id" : 29380,
        "mlockall" : true
      }
    }
  }
}

Se aprecia ahora el cambio de la variable mlockall que ahora paso su estado a TRUE esto implica un menor consumo por parte del JVM en RAM. Volvemos a editar el fichero de configuración de elasticsearch para dejarlo listo y pueda recibir información del Graylog.

nano /etc/elasticsearch/elasticsearch.yml

# Use a descriptive name for the node:
#
node.name: Graylog

Y agregamos al final de todo lo siguiente

http.host: 0.0.0.0
http.cors.allow-origin: "*"
http.cors.enabled: true

Reinciamos el servicio.

systemctl daemon-reload
service elasticsearch restart

Ahora vamos a hacer amigable nuestra interacción con elasticsearch a través de Cerebro. Cerebro es una herramienta web de administración para elasticsearch usando Scala, Play Framework, AngularJS y Bootstrap. Vamos a su web nos fijamos en la última versión y la descargamos.

wget -t0 -c https://github.com/lmenezes/cerebro/releases/download/v0.7.2/cerebro-0.7.2.tgz

y extraemos el archivo descargado en /opt

#tar -zxf cerebro-0.7.2.tgz -C /opt>/pre>
Si queremos ejecutarlo vamos directamente a la carpeta bin
#cd /opt/cerebro-0.7.2/bin
#./cerebro

Para acceder a cerebro solo debemos ingresar en nuestro navegador el siguiente link http://ip_del_elastic:9000
Donde dice Node Address poner nuestro elastic http://localhost:9200

Hagamos ahora que cerebro inicie al principio. Crearemos un servicio.

nano /etc/systemd/system/cerebro.service
#Dentro pondremos esto:

[Unit]
Description=Cerebro

[Service]
Type=simple
User=root
Group=root
ExecStart=/opt/cerebro-0.7.2/bin/cerebro "-Dpidfile.path=/var/run/cerebro.pid"
Restart=always
WorkingDirectory=/

[Install]
WantedBy=multi-user.target

Si tienen otro camino o version de cerebro, deben cambiarlo. Entonces reiniciaremos el demonio y activamos el servicio.

root@elastic:~# systemctl daemon-reload
root@elastic:~# systemctl enable cerebro
Created symlink from /etc/systemd/system/multi-user.target.wants/cerebro.service to /etc/systemd/system/cerebro.service.
root@elastic:~# systemctl start cerebro

En este punto salvaremos nuestro CT.

Instalando Graylog

Creamos un contenedor (CT) en nuestro Proxmox con Ubuntu 16.04 como OS.

  • CPU: 2 Cores
  • RAM: 2 GB
  • SWAP: 4 GB
  • HDD: 8 GB

Seguido lo actualizaremos.

apt update
apt upgrade

Ahora instalaremos herramientas y dependencias necesarias

apt install apt-transport-https openjdk-8-jre-headless uuid-runtime pwgen mc htop libdigest-sha-perl

Como Graylog usa MongoDB como base de datos, procedemos a instalarlo de primero. Agregaremos la llave publica de su repositorio para instalar paquetes firmados.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 (sin proxy)

sudo apt-key adv --keyserver-options http-proxy=http://ip_proxy:port/ --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5  (con proxy)

Agregamos el repositorio de MongoDB a los nuestros

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list

Actualizamos:

root@graylog:~# apt update
Hit:1 http://archive.ubuntu.com/ubuntu xenial InRelease
Get:2 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [102 kB]
Get:3 http://archive.ubuntu.com/ubuntu xenial-security InRelease [102 kB]
Ign:4 https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 InRelease
Get:5 https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 Release [3457 B]
Get:6 https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 Release.gpg [801 B]
Get:7 https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6/multiverse amd64 Packages [4058 B]
Get:8 https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6/multiverse arm64 Packages [4044 B]
Fetched 217 kB in 3s (69.7 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.
root@graylog:~#

Y procedemos a instalar MongoDB

apt install -y mongodb-org

Iniciamos nuestro servicio:

sudo systemctl start mongod

Hacemos autoarrancable el servicio

root@graylog:~# sudo systemctl enable mongod
Created symlink from /etc/systemd/system/multi-user.target.wants/mongod.service to /lib/systemd/system/mongod.service.
root@graylog:~#

Continuamos con la instalacion de GrayLog y lo hacemos agregando su repositorio a nuesto listado de fuentes.

wget https://packages.graylog2.org/repo/packages/graylog-2.4-repository_latest.deb

Instalamos:

sudo dpkg -i graylog-2.4-repository_latest.deb

Actualizamos e instalamos finalmente Graylog:

sudo apt update 
sudo apt install graylog-server

Haremos una salva en este punto de nuestro contenedor.

Ahora configuraremos la clave de admin(root) y la clave secreta, ambas seran usadas para levantar nuestro servidor GrayLog.

root@graylog:~# SECRET=$(pwgen -s 96 1)
root@graylog:~# cp /etc/graylog/server/server.conf /etc/graylog/server/server.conf.orig
root@graylog:~# sudo -E sed -i -e 's/password_secret =.*/password_secret = '$SECRET'/' /etc/graylog/server/server.conf

Nuestra llave secreta quedara directamente registrada en la configuracion del servidor de GrayLog. Ahora le pasaremos la clave de admin.

root@graylog:~# PASSWORD=$(echo -n password | shasum -a 256 | awk '{print $1}')
root@graylog:~# sudo -E sed -i -e 's/root_password_sha2 =.*/root_password_sha2 = '$PASSWORD'/' /etc/graylog/server/server.conf
root@graylog:~#

Donde password es la clave que le asignaremos al usuario admin del Graylog, y quedara directamente reflejado en su configuración.

Editamos la configuración del servidor y nos aseguramos de ver si ambas claves se insertaron bien

nano /etc/graylog/server/server.conf

Como se aprecia en la figura ambas claves estan bien establecidas.

Configuramos otros aspectos de interes:

# The time zone setting of the root user. See http://www.joda.org/joda-time/timezones.html for a list of valid time zones.
# Default is UTC
root_timezone = America/Havana

# REST API listen URI. Must be reachable by other Graylog server nodes if you run a cluster.
# When using Graylog Collectors, this URI will be used to receive heartbeat messages and must be accessible for all collectors.
rest_listen_uri = http://0.0.0.0:9000/api/

# Web interface listen URI.
# Configuring a path for the URI here effectively prefixes all URIs in the web interface. This is a replacement
# for the application.context configuration parameter in pre-2.0 versions of the Graylog web interface.
web_listen_uri = http://0.0.0.0:9000/

# List of Elasticsearch hosts Graylog should connect to.
# Need to be specified as a comma-separated list of valid URIs for the http ports of your elasticsearch nodes.
# If one or more of your elasticsearch hosts require authentication, include the credentials in each node URI that
# requires authentication.
#
# Default: http://127.0.0.1:9200
elasticsearch_hosts = http://ip_elasticsearch:9200/

# How many Elasticsearch shards and replicas should be used per index? Note that this only applies to newly created indices.
# ATTENTION: These settings have been moved to the database in Graylog 2.2.0. When you upgrade, make sure to set these
# to your previous settings so they will be migrated to the database!
elasticsearch_shards = 1
elasticsearch_replicas = 0

# The email address of the root user.
# Default is empty
root_email = [email protected]

# REST API transport address. Defaults to the value of rest_listen_uri. Exception: If rest_listen_uri
# is set to a wildcard IP address (0.0.0.0) the first non-loopback IPv4 system address is used.
# If set, this will be promoted in the cluster discovery APIs, so other nodes may try to connect on
# this address and it is used to generate URLs addressing entities in the REST API. (see rest_listen_uri)
# You will need to define this, if your Graylog server is running behind a HTTP proxy that is rewriting
# the scheme, host name or URI.
# This must not contain a wildcard address (0.0.0.0).
rest_transport_uri = http://ip_graylog:9000/api/

Hacemos autoarrancable nuestro servicio:

sudo systemctl enable graylog-server.service

Inciamos el servicio:

sudo systemctl start graylog-server.service

Ya podemos acceder a nuestra web http://ip_graylog:9000 y usaremos de credenciales admin y la password que definimos anteriormente.

De forma predeterminada, la interfaz web de Graylog escucha a localhost por el puerto 9000 y la API escucha por el puerto 9000 con URL / api. Como un extra, les mostrare como configurar Nginx como proxy inverso para que la aplicación pueda tener acceso a través del puerto HTTP estándar y agregarle seguridad con certificados. Comenzamos instalando Nginx:

apt install nginx

Crearemos una carpeta en /etc/ssl/ llamada gray donde alojaremos nuestros certificados. Luego editamos nuestra configuracion de Nginx.

nano /etc/nginx/sites-available/default

Borraremos su contenido y pegamos este:

server
{
    listen      443 ssl spdy;
    server_name graylog.midominio.cu;
    # <- your SSL Settings here!
    ssl_certificate /etc/ssl/gray/gray.crt;
    ssl_certificate_key /etc/ssl/gray/gray.key;
    ssl_trusted_certificate /etc/ssl/gray/gray.crt;
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:50m;
    ssl_session_tickets off;

    location /
    {
      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-Host $host;
      proxy_set_header X-Forwarded-Server $host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Graylog-Server-URL https://$server_name/api;
      proxy_pass       http://127.0.0.1:9000;
    }
}

Reinciamos el servicio de Nginx y lo hacemos autoarrancable al inicio:

sudo systemctl restart nginx
sudo systemctl enable nginx

Ahora podemos acceder a la web de una forma mas sencilla y segura.

En este punto salvaremos nuestro CT.

Bueno como podemos ver en esta 1era parte armamos nuestro servidor Graylog y lo dejamos listo para empezar a configurarlo. En los siguientes tutoriales les mostrare como recolectar los logs más importantes de nuestra red para su análisis y su grafiado, para un mejor entendimiento de nuestra infraestructura.

alex out

MENU:

2da Parte– Parseando logs de Zimbra con Graylog y mostrandolos en Grafana

3ra Parte– Parseando logs de Pfsense con Graylog y mostrandolos en Grafana

4ta Parte– Parseando logs de Squid con Graylog y mostrandolos en Grafana

Filed Under: elastic, utilidades Tagged With: graylog, graylog elastic, graylog grafana

Reader Interactions

Comments

  1. Daioni says

    5 April, 2018 at 22:43

    Encantado de conoceros! Tenía un pregunta: Qué diferencias principales ven ustedes entre Graylog vs Kibana?

    Reply
    • Alexander Rivas says

      6 April, 2018 at 0:35

      Hola, gracias por leerte el tutorial. La pregunta realmente deberia ser, cuales son las diferencias entre Graylog y ELK. Bueno realmente no muchas, ambos son magníficos. ELK es una herramienta de monitoreo mas amplia y Graylog solo es para logs. ELK no posee un sistema de usuarios y logueo y Graylog si. A mi me gusto mas la interfaz de Graylog, es mas facil de entender y mas intuitiva que la de ELK. ELK usa logstash que consume muchos recursos y al no tener una GUI debe ser configurado manualmente. En mi experiencia con ambos me ha gustado mas para el analisis de logs, el Graylog. Aunque reconozco que el ELK es una solucion mas potente.

      Reply
      • Daioni says

        10 April, 2018 at 9:30

        Muchas gracias! todo claro.

        Saludos

        Reply
  2. Gustavo Cañete says

    10 April, 2018 at 18:08

    Alex, recibí por mail el link a la segunda parte de este excelente artículo pero me da :
    Oops! That page can’t be found.
    Hice uso del sistema de búsqueda dentro del site y la única nota a la que me refiere Graylog es la presente, de la segunda parte parece no haber rastros…

    Saludos

    Reply
    • Jorge de la Cruz says

      10 April, 2018 at 21:39

      Saludos, la segunda parte sale el 11 de Abril, un saludo

      Reply
  3. Alejandro Hernández Pastora says

    20 April, 2018 at 18:51

    Alex, con el permiso de ustedes y de otros colegas en Internet, he adaptado todo el proceso completo a centOS 7 con éxito y estaré publicandolo en mi web y canal de youtube.
    Gracias por el gran aporte y alzar a los sysadmin de Cuba.
    Saludos

    Reply
  4. Ghost says

    20 November, 2019 at 22:00

    sudo apt install graylog-server
    Este paso me da error. me dice que no se encuentra ese paquete graylog-server. Tiene algo que ver que se instale en Ubuntu Desktop. No lo estamos instalando en Maquina Virtuales.

    Reply
  5. Jose Manuel says

    21 January, 2023 at 9:31

    Hola Jorge de la Cruz y compañía
    Estoy intentando encryptar con ssl tls las comunicaciones entre graylog y los clientes usando sidecar y filebeat, nxiog y winlogbeat pero no conseguí hacerlo, creo el certificado y las llaves pero me dice que no puede pasear o llave y que no encuentra el archivo pem. En fin no sé si me podréis hechar una mano con algún manual porque el manual de graylog es confuso.

    Un saludo

    Reply

Trackbacks

  1. Parseando Logs de Zimbra con Graylog y Mostrándolos en Grafana. 2da Parte. - El Blog de Jorge de la Cruz says:
    3 May, 2018 at 14:17

    […] 1ra Parte– Como instalar y configurar Graylog en Ubuntu16.04 […]

    Reply
  2. Parseando Logs de PfSense con Graylog y Mostrándolos en Grafana. 3ra Parte. - El Blog de Jorge de la Cruz says:
    3 May, 2018 at 14:20

    […] 1ra Parte– Como instalar y configurar Graylog en Ubuntu16.04 […]

    Reply
  3. Parseando Logs de Squid con Graylog y Mostrándolos en Grafana. 4ta. Parte - El Blog de Jorge de la Cruz says:
    3 May, 2018 at 14:22

    […] 1ra Parte– Como instalar y configurar Graylog en Ubuntu16.04 […]

    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

April 2018
M T W T F S S
 1
2345678
9101112131415
16171819202122
23242526272829
30  
« Mar   May »

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