Skip to content

Instantly share code, notes, and snippets.

@eduardohki
Last active February 5, 2019 22:52
Show Gist options
  • Save eduardohki/5867bc83117b7199b1da60a88f3d4ff1 to your computer and use it in GitHub Desktop.
Save eduardohki/5867bc83117b7199b1da60a88f3d4ff1 to your computer and use it in GitHub Desktop.
Instalação da Interface Web do Elasticsearch (Cerebro)

Instalação do Cerebro (Elasticsearch Web Interface)

Este manual descreve a instalação do Cerebro para administrar o Elasticsearch do ambiente Graylog rodando sob CentOS 7. Aqui se compreende a instalação do componente, configuração para rodar como serviço no Linux e publicação através do NGINX como proxy reverso. A autenticação será gerenciada pelo próprio NGINX.

Pré-requisitos:

  • Java/OpenJDK 1.8
  • pwgen
  • NGINX instalado e operacional

Procedimento:

  1. Baixar e descompactar o Cerebro:
cd /opt/
wget https://github.com/lmenezes/cerebro/releases/download/v0.6.6/cerebro-0.6.6.tgz
tar zxvf cerebro-0.6.6.tgz
mv cerebro-0.6.6/ cerebro/
  1. Ajustar os parâmetros do Cerebro:
  • Criar uma chave de 64 caracteres para ser utilizado como secret:
pwgen -s 64 | head -1
  • Copiar a chave gerada e substituir o conteúdo do campo secret nos arquivos /opt/cerebro/conf/application.conf e /opt/cerebro/conf/reference.conf:
secret = "<insert_your_64characters_secret_here>"
  • Adicionar os dados de acesso ao Elasticsearch na seção hosts do arquivo /opt/cerebro/conf/application.conf:
hosts = [
  {
    host = "http://<es_ip_or_hostname>:9200"
    name = "<node_description>"
  },
]

Obs: caso você tenha mais nós do Elasticsearch, deverá adicionar todos nesta configuração.

  1. Configurar e iniciar o serviço Cerebro:
  • Configurar permissões do usuário elasticsearch ao diretório do Cerebro:
chown -R elasticsearch:elasticsearch /opt/cerebro/
  • Criar o arquivo /etc/systemd/system/cerebro.service e inseir o seguinte conteúdo:
[Unit]
Description=Cerebro - Elasticsearch Web Interface
Wants=network-online.target
After=network-online.target

[Service]
WorkingDirectory=/opt/cerebro
User=elasticsearch
Group=elasticsearch
ExecStart=/opt/cerebro/bin/cerebro -Dhttp.port=11000 -Dhttp.address=127.0.0.1
StandardOutput=journal
StandardError=inherit
KillSignal=SIGTERM
KillMode=process
SendSIGKILL=no
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

Obs: a configuração acima fará o Cerebro rodar sob o usuário elasticsearch, com o listener apontando para localhost na porta 11000/TCP.

  • Habilitar e iniciar o serviço do Cerebro:
systemctl daemon-reload
systemctl enable cerebro
systemctl start cerebro
  1. Configurar o acesso do Cerebro via Proxy Reverso do NGINX

Para configurar o acesso ao Cerebro através da rede externa com autenticação, adicione o seguinte conteúdo na sua configuração do NGINX:

location /cerebro/ {
  auth_basic "Cerebro Auth";
  auth_basic_user_file <path_to_your_htpasswd_file>;
  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_pass          http://127.0.0.1:11000/;
}

Depois reinicie o NGINX com o comando systemctl nginx restart.

Obs: você pode alterar o caminho do location conforme a necessidade do seu ambiente.

  1. Se você estiver usando SELinux, execute o seguinte comando para liberar o acesso do NGINX na porta do Cerebro:
semanage port -a -t http_port_t -p tcp 11000

Pronto! Agora você pode acessar o Cerebro pelo seu navegador através do endereço http://<ip_or_hostname>/cerebro.

Importante: sempre use HTTPS!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment