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:
- 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/
- 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.
- 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
- 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.
- 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!