Elastic Stack · 13 min read · Nov 25, 2025

Como Instalar o Elastic Stack no Ubuntu 18.04 LTS

Elasticsearch é um mecanismo de busca de código aberto baseado em Lucene, desenvolvido em Java. Ele fornece um mecanismo de busca de texto completo distribuído e multitenant com uma interface web de painel (Kibana). Os dados são consultados, recuperados e armazenados em um esquema de documento JSON. Elasticsearch é um mecanismo de busca escalável que pode ser usado para buscar todos os tipos de documentos de texto, incluindo arquivos de log. Elasticsearch é o coração do ‘Elastic Stack’ ou ELK Stack.

Logstash é uma ferramenta de código aberto para gerenciar eventos e logs. Ele fornece um pipeline em tempo real para coleções de dados. O Logstash coletará seus dados de log, converterá os dados em documentos JSON e os armazenará no Elasticsearch.

Kibana é uma ferramenta de visualização de dados de código aberto para Elasticsearch. O Kibana fornece uma interface web de painel bastante bonita. Ele permite que você gerencie e visualize dados do Elasticsearch. Não é apenas bonito, mas também poderoso.

Neste tutorial, vou mostrar como instalar e configurar o Elastic Stack em um servidor Ubuntu 18.04 para monitoramento de logs de servidor. Em seguida, vou mostrar como instalar e configurar os ‘Elastic beats’ em um servidor cliente Ubuntu 18.04 e CentOS 7.

Pré-requisitos

  • 3 Servidores - Ubuntu 18.04 com 4GB de RAM/memória como ‘elk-master’ - 10.0.15.10
  • Ubuntu 18.04 com 512MB/1GB de RAM/memória como ‘elk-client01’ - 10.0.15.21
  • CentOS 7.5 com 512MB/1GB de RAM/memória como ‘elk-client02’ - 10.0.15.22
  • Privilégios de root

O que faremos?

  1. Instalar o Elastic Stack 1. Instalar Java
  2. Instalar e Configurar o ElasticSearch
  3. Instalar e Configurar o Kibana
  4. Instalar e Configurar o Nginx como Proxy Reverso para o Kibana
  5. Instalar e Configurar o Logstash
  6. Instalar e Configurar o Filebeat no Ubuntu 18.04
  7. Instalar e Configurar o Filebeat no CentOS 7.5
  8. Testando

Passo 1 - Instalar o Elastic Stack

Neste primeiro passo, instalaremos e configuraremos o ‘Elastic Stack’ no servidor ‘elk-master’, então execute todos os comandos e etapas para este passo apenas no servidor ‘elk-master’. Instalaremos e configuraremos cada componente do elastic stack, incluindo Elasticsearch, Logstash shipper e Kibana Dashboard com o servidor web Nginx.

Instalar Java

Java é necessário para a implantação do Elastic stack. O Elasticsearch requer Java 8. É recomendado usar o Oracle JDK 1.8, e instalaremos o Java 8 de um repositório PPA.

Instale os pacotes ‘software-properties-common’ e ‘apt-transport-https’, e então adicione o repositório PPA ‘webupd8team’ Java. Execute o comando ‘apt install’ e ‘add-apt-repository’ abaixo.

sudo apt install software-properties-common apt-transport-https -y  
sudo add-apt-repository ppa:webupd8team/java -y

Agora instale o java8-installer.

sudo apt install oracle-java8-installer -y

Após a instalação ser concluída, verifique a versão do java.

java -version

Java 1.8 instalado no sistema.

Em seguida, configuraremos o ambiente java. Verifique o arquivo binário java usando o comando abaixo.

update-alternatives --config java

E você obterá o arquivo binário java no diretório ‘ /usr/lib/jvm/java-8-oracle ‘.

Agora crie o arquivo de perfil ‘java.sh’ no diretório ‘profile.d’.

vim /etc/profile.d/java.sh

Cole a configuração do ambiente java abaixo.

#Set JAVA_HOME
JAVA_HOME="/usr/lib/jvm/java-8-oracle"
export JAVA_HOME
PATH=$PATH:$JAVA_HOME
export PATH

Salve e saia.

Torne o arquivo executável e carregue o arquivo de configuração.

chmod +x /etc/profile.d/java.sh  
source /etc/profile.d/java.sh

Agora verifique o ambiente java usando o comando abaixo.

echo $JAVA_HOME

E você verá que o diretório java está localizado no diretório ‘ /usr/lib/jvm/java-8-oracle ‘.

Configurar Java

Instalar Elasticsearch

Após instalar o Java, instalaremos o primeiro componente do Elastic Stack, que é o elasticsearch.

Adicione a chave do elastic stack e adicione o repositório elastic ao sistema.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -  
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list

Agora atualize o repositório e instale o pacote elasticsearch usando o comando abaixo.

sudo apt update  
sudo apt install elasticsearch -y

Após a instalação ser concluída, vá para o diretório ‘/etc/elasticsearch’ e edite o arquivo de configuração ‘elasticsearch.yml’.

cd /etc/elasticsearch/  
vim elasticsearch.yml

Descomente a linha ‘network.host’ e altere o valor para ‘localhost’, e descomente a linha ‘http.port’ para a configuração da porta do elasticsearch.

network.host: localhost
http.port: 9200

Salve e saia.

Agora inicie o serviço elasticsearch e habilite-o para iniciar toda vez que o sistema for inicializado.

systemctl start elasticsearch  
systemctl enable elasticsearch

O elasticsearch agora está em funcionamento, verifique usando o comando netstat e os comandos curl abaixo.

netstat -plntu  
curl -XGET 'localhost:9200/?pretty'

Agora você verá que a versão do elasticsearch ‘6.2.4’ está rodando na porta padrão ‘9200’.

Verificar porta do elasticsearch

A instalação do elasticsearch foi concluída.

Instalar e Configurar o Painel do Kibana

O segundo componente é o painel do kibana. Instalaremos o painel do Kibana a partir do repositório elastic e configuraremos o serviço kibana para rodar no endereço localhost.

Instale o painel do Kibana usando o comando apt abaixo.

sudo apt install kibana -y

Agora vá para o diretório ‘/etc/kibana’ e edite o arquivo de configuração ‘kibana.yml’.

cd /etc/kibana/  
vim kibana.yml

Descomente as linhas ‘server.port’, ‘server.host’ e ‘elasticsearch.url’.

server.port: 5601
server.host: "localhost"
elasticsearch.url: "http://localhost:9200"

Salve e saia.

Agora inicie o serviço kibana e habilite-o para iniciar toda vez que o sistema for inicializado.

sudo systemctl enable kibana  
sudo systemctl start kibana

O painel do kibana agora está em funcionamento no endereço ‘localhost’ e na porta padrão ‘5601’. Verifique usando o comando netstat abaixo.

netstat -plntu

Instalar Kibana

A instalação do painel do Kibana foi concluída.

Instalar e Configurar o Nginx como Proxy Reverso para o Kibana

Neste tutorial, usaremos o servidor web Nginx como um proxy reverso para o Painel do Kibana.

Instale o Nginx e os pacotes ‘apache2-utils’ no sistema.

sudo apt install nginx apache2-utils -y

Após a instalação ser concluída, vá para o diretório de configuração ‘/etc/nginx’ e crie um novo arquivo de host virtual chamado ‘kibana’.

cd /etc/nginx/  
vim sites-available/kibana

Cole a configuração do host virtual do Nginx abaixo.

server {
    listen 80;
 
    server_name elastic-stack.io;
 
    auth_basic "Acesso Restrito";
    auth_basic_user_file /etc/nginx/.kibana-user;
 
    location / {
        proxy_pass http://localhost:5601;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

Salve e saia.

Em seguida, criaremos um novo servidor web de autenticação básica para acessar o painel do Kibana. Criaremos a autenticação básica usando o comando htpasswd como abaixo.

sudo htpasswd -c /etc/nginx/.kibana-user elastic  
Digite a senha do usuário elastic

Ative o host virtual do kibana e teste toda a configuração do nginx.

ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/  
ginx -t

Certifique-se de que não haja erro, agora inicie o serviço Nginx e habilite-o para iniciar toda vez que o sistema for inicializado.

systemctl enable nginx  
systemctl restart nginx

A instalação e configuração do Nginx como um Proxy Reverso para o painel do Kibana foram concluídas.

Configurar Nginx

Instalar e Configurar o Logstash

O último componente do Elastic Stack para este guia é o ‘Logstash’. Instalaremos e configuraremos o Logstash para centralizar logs de servidor de fontes clientes com filebeat, em seguida, filtrar e transformar todos os dados (Syslog) e transportá-los para o stash (Elasticsearch).

Antes de instalar o logstash, certifique-se de verificar a versão do OpenSSL do seu servidor.

openssl version -a

Para este guia, usaremos o OpenSSL ‘1.0.2o’. Se você ainda estiver usando a versão do OpenSSL 1.1.2, você receberá um erro na conexão SSL do logstash e filebeat.

Instale o logstash usando o comando apt abaixo.

sudo apt install logstash -y

Após a instalação ser concluída, geraremos a chave do certificado SSL para proteger a transferência de dados de log do cliente filebeat para o servidor logstash.

Edite o arquivo ‘/etc/hosts’ usando vim.

vim /etc/hosts

Adicione a configuração abaixo.

10.0.15.10  elk-master  elk-master

Salve e saia.

Agora crie um novo diretório SSL no diretório de configuração do logstash ‘/etc/logstash’ e vá para esse diretório.

mkdir -p /etc/logstash/ssl  
cd /etc/logstash/

Gere o certificado SSL para o Logstash usando o comando openssl como abaixo.

openssl req -subj '/CN=elk-master/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout ssl/logstash-forwarder.key -out ssl/logstash-forwarder.crt

Os arquivos de certificado SSL para o Logstash foram criados no diretório ‘/etc/logstash/ssl’.

Em seguida, criaremos novos arquivos de configuração para o logstash. Criaremos um arquivo de configuração ‘filebeat-input.conf’ como arquivo de entrada do filebeat, ‘syslog-filter.conf’ para processamento de syslog, e então um arquivo ‘output-elasticsearch.conf’ para definir a saída do Elasticsearch.

Vá para o diretório de configuração do logstash e crie os novos arquivos de configuração ‘filebeat-input.conf’ no diretório ‘conf.d’.

cd /etc/logstash/  
vim conf.d/filebeat-input.conf

Cole a seguinte configuração lá.

input {
  beats {
    port => 5443
    type => syslog
    ssl => true
    ssl_certificate => "/etc/logstash/ssl/logstash-forwarder.crt"
    ssl_key => "/etc/logstash/ssl/logstash-forwarder.key"
  }
}

Salve e saia.

Para o processamento de dados de log syslog, estamos usando o plugin de filtro chamado ‘grok’ para analisar os arquivos syslog.

Crie uma nova configuração ‘syslog-filter.conf’.

vim conf.d/syslog-filter.conf

Cole a seguinte configuração lá.

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}" ]
    }
    date {
      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
}

Salve e saia.

E para a saída do elasticsearch, criaremos o arquivo de configuração chamado ‘output-elasticsearch.conf’.

vim conf.d/output-elasticsearch.conf

Cole a seguinte configuração lá.

output {
  elasticsearch { hosts => ["localhost:9200"]
    hosts => "localhost:9200"
    manage_template => false
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
    document_type => "%{[@metadata][type]}"
  }
}

Salve e saia.

Quando isso estiver feito, inicie o serviço logstash e habilite-o para iniciar toda vez que o sistema for inicializado.

sudo systemctl enable logstash  
sudo systemctl start logstash

Habilitar e iniciar logstash

Verifique o serviço logstash usando os comandos netstat e systemctl abaixo.

netstat -plntu  
systemctl status logstash

E o serviço logstash agora está em funcionamento. Rodando no endereço IP público com a porta ‘5443’.

Verificar portas

A instalação do Elastic Stack foi concluída.

Passo 2 - Instalar e Configurar o Filebeat no Ubuntu 18.04

Neste passo, configuraremos o cliente Ubuntu 18.04 ‘elk-client01’ instalando os ‘Filebeat’ do Elastic Beats.

Antes de instalar o filebeat no sistema, precisamos editar o ‘/etc/hosts’ e baixar o arquivo de certificado do logstash ‘logstash-forwarder.crt’ para o servidor ‘elk-client01’.

Edite o arquivo ‘/etc/hosts’ usando o editor vim.

vim /etc/hosts

Cole a seguinte configuração lá.

10.0.15.10      elk-master      elk-master

Salve e saia.

Copie o arquivo de certificado do logstash ‘logstash-forwarder.crt’ usando o comando scp.

scp root@elk-master:/etc/logstash/ssl/logstash-forwarder.crt .

Instalar Filebeat

Em seguida, instale o ‘Filebeat’ do Elastic Beats adicionando a chave elastic e adicionando o repositório elastic.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -  
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list

Atualize o repositório e instale o pacote ‘filebeat’ usando o comando apt abaixo.

sudo apt update  
sudo apt install filebeat -y

Após a instalação ser concluída, vá para o diretório ‘/etc/filebeat’ e edite o arquivo de configuração ‘filebeat.yml’.

cd /etc/filebeat/  
vim filebeat.yml

Agora habilite os prospectores do filebeat alterando o valor da linha ‘enabled’ para ‘true’.

  enabled: true

Defina os arquivos de log do sistema a serem enviados para o servidor logstash. Para este guia, adicionaremos o arquivo de log ssh ‘auth.log’ e o arquivo syslog.

  paths:
    - /var/log/auth.log
    - /var/log/syslog

Configure a saída para logstash comentando a saída padrão ‘elasticsearch’ e descomentando a linha de saída do logstash como abaixo.

output.logstash:
  # Os hosts do Logstash
  hosts: ["elk-master:5443"]
  ssl.certificate_authorities: ["/etc/filebeat/logstash-forwarder.crt"]

Salve e saia.

Em seguida, precisamos editar o arquivo ‘filebeat.reference.yml’ para habilitar os módulos do filebeat, e habilitaremos o módulo ‘syslog’.

vim filebeat.reference.yml

Habilite o módulo de sistema syslog para o filebeat como abaixo.

- module: system
  # Syslog
  syslog:
    enabled: true

Salve e saia.

Copie o arquivo de certificado do logstash ‘logstash-forwarder.crt’ para o diretório ‘/etc/filebeat’.

cp ~/logstash-forwarder.crt /etc/filebeat/logstash-forwarder.crt

A instalação e configuração do Filebeat foram concluídas. Agora inicie o serviço filebeat e habilite-o para iniciar toda vez que o sistema for inicializado.

systemctl start filebeat  
systemctl enable filebeat

Verifique o serviço filebeat usando os comandos abaixo.

systemctl status filebeat  
tail -f /var/log/filebeat/filebeat

Os transportadores filebeat estão em funcionamento no servidor Ubuntu 18.04.

Filebeat está em funcionamento

Passo 3 - Instalar e Configurar o Filebeat no CentOS 7.5

Neste passo, configuraremos o cliente CentOS 7.5 ‘elk-client02’ instalando os ‘Filebeat’ do Elastic Beats.

Antes de instalar o Filebeat no sistema, precisamos editar o ‘/etc/hosts’ e baixar o arquivo de certificado do logstash ‘logstash-forwarder.crt’ para o servidor ‘elk-client02’.

Edite o arquivo ‘/etc/hosts’ usando vim.

vim /etc/hosts

Cole a configuração abaixo.

10.0.15.10      elk-master      elk-master

Salve e saia.

Copie o arquivo de certificado do logstash ‘logstash-forwarder.crt’ usando o comando scp.

scp root@elk-master:/etc/logstash/ssl/logstash-forwarder.crt .

Instalar Filebeat no CentOS

Em seguida, instale o ‘Filebeat’ do Elastic Beats adicionando a chave elastic e adicionando o repositório elastic.

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch  
   
cat < /etc/yum.repos.d/elastic.repo  
[elasticsearch-6.x]  
name=Repositório Elasticsearch para pacotes 6.x  
baseurl=https://artifacts.elastic.co/packages/6.x/yum  
gpgcheck=1  
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch  
enabled=1  
autorefresh=1  
type=rpm-md  
EOF

Instale o filebeat usando o comando yum abaixo.

yum install filebeat -y

Após a instalação ser concluída, vá para o diretório ‘/etc/filebeat’ e edite o arquivo de configuração ‘filebeat.yml’.

cd /etc/filebeat/  
vim filebeat.yml

Agora habilite os prospectores do filebeat alterando o valor da linha ‘enabled’ para ‘true’.

  enabled: true

Defina os arquivos de log do sistema a serem enviados para o servidor logstash. Para este guia, adicionaremos o arquivo de log ssh ‘auth.log’ e o arquivo syslog.

  paths:
    - /var/log/secure
    - /var/log/messages

Configure a saída para logstash comentando a saída padrão ‘elasticsearch’ e descomentando a linha de saída do logstash como abaixo.

output.logstash:
  # Os hosts do Logstash
  hosts: ["elk-master:5443"]
  ssl.certificate_authorities: ["/etc/filebeat/logstash-forwarder.crt"]

Salve e saia.

Em seguida, precisamos editar o arquivo ‘filebeat.reference.yml’ para habilitar os módulos do filebeat, e habilitaremos o módulo ‘syslog’.

vim filebeat.reference.yml

Habilite o módulo de sistema syslog para o filebeat como abaixo.

- module: system
  # Syslog
  syslog:
    enabled: true

Salve e saia.

Copie o arquivo de certificado do logstash ‘logstash-forwarder.crt’ para o diretório ‘/etc/filebeat’.

cp ~/logstash-forwarder.crt /etc/filebeat/logstash-forwarder.crt

A instalação e configuração do Filebeat foram concluídas. Agora inicie o serviço filebeat e adicione-o ao tempo de inicialização.

systemctl start filebeat  
systemctl enable filebeat

Verifique o serviço filebeat usando os comandos abaixo.

systemctl status filebeat  
tail -f /var/log/filebeat/filebeat

Os transportadores filebeat estão em funcionamento no servidor CentOS 7.5.

Filebeat está em funcionamento

Passo 4 - Testando

Abra seu navegador e digite o nome de domínio do elastic stack, o meu é: ‘elastic-stack.io’.

Você será solicitado a inserir o nome de usuário e a senha da autenticação básica para o Painel do Kibana.

Digite o nome de usuário ‘elastic’ com sua senha.

Agora você verá o belo painel do kibana, clique no botão ‘Configurar padrões de índice’ à direita.

Painel do Kibana

Defina o padrão de índice ‘filebeat-*’ e clique no botão ‘Próximo passo’.

Definir um filebeat

Para o ‘nome do campo de filtro de tempo’, escolha o ‘@timestamp’ e clique em ‘Criar padrão de índice’.

Criar índice

E o padrão de índice filebeat foi criado.

Padrão de índice filebeat criado

Em seguida, tentaremos obter as informações de log para o login SSH falhado em cada servidor cliente ‘elk-client01’ do sistema Ubuntu e ‘elk-client02’ do sistema CentOS.

Dentro do Painel do Kibana, clique no menu ‘Descobrir’ para obter todos os logs do servidor.

Defina o ‘beat.hostname’ para o servidor ‘elk-client01’, a ‘source’ é o arquivo ‘/var/log/auth.log’, e você obterá o resultado conforme mostrado abaixo.

Resultado do log

E a seguir estão os detalhes do log de exemplo para a senha falhada do SSH do arquivo ‘auth.log’.

Login SSH falhado

Para o servidor ‘elk-client02’ CentOS, defina o ‘beat.hostname’ para o servidor ‘elk-client02’, a ‘source’ é o arquivo ‘/var/log/secure’, e você obterá o resultado conforme mostrado abaixo.

Relatório para o servidor 2

E a seguir estão os detalhes do log de exemplo para a senha falhada do SSH do arquivo ‘secure’.

Relatório de login

A instalação e configuração do Elastic Stack e do Elastic Beat ‘Filebeat’ foram concluídas com sucesso.

Referência

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.