ELK Stack é a plataforma de gerenciamento de log mais popular do mundo. É uma coleção de produtos de código aberto, incluindo Elasticsearch, Logstash e Kibana. Todos esses 3 produtos são desenvolvidos, gerenciados e mantidos pela Elastic.
ELK Stack é uma plataforma poderosa e de código aberto que pode gerenciar uma grande quantidade de dados registrados. O registro de entradas é geralmente de uma interface gráfica da web (GUI).
- Elasticsearch é um mecanismo de pesquisa e análise baseado em JSON destinado a escalabilidade horizontal e gerenciamento mais fácil.
- Logstash é uma interface de processamento de dados do lado do servidor que tem a capacidade de coletar dados de várias fontes simultaneamente. Em seguida, ele o transforma e envia os dados para o estoque desejado. É um aplicativo de código aberto.
- Kibana é usado para visualizar seus dados e navegar no Elastic Stack. É uma ferramenta de código aberto também.
Instale e configure o ELK Stack no Ubuntu
Neste tutorial, vamos usar filebeat para enviar dados de registro para Logstash. Beats são remetentes de dados leves e, para começar, devemos instalar o agente nos servidores.
Etapa 1) Instalando o Java 8
ElasticSearch suporta Java 8 e 9, mas o problema é que Logstash só é compatível com Java 8. Java 9 ainda não é compatível. Portanto, vamos instalar o Oracle Java 8.
Inicie o Terminal e adicione o repositório Oracle Java 8, seguido por uma atualização do sistema e instalação real.
sudo add-apt-repository ppa: webupd8team / java
sudo apt-get update
sudo apt install oracle-java8-set-default
Preste atenção ao Terminal. Você terá que concordar com as janelas do contrato de licença e selecionar “sim” para continuar. Após a conclusão da instalação, você pode verificar a versão java usando os seguintes comandos:
.sudo java -version
sudo echo $ JAVA_HOME
Etapa 2) Instalando e configurando o Elasticsearch
Vamos começar com wget comando para baixar Elasticsearch seguido pela chave de assinatura pública:
sudo wget -qO - https: // artefatos.elástico.co / GPG-KEY-elasticsearch | sudo apt-key add -
Em segundo lugar, instale o pacote apt-transport-https (as distros baseadas em Debian precisam disso).
sudo apt-get install apt-transport-https
Adicione o repositório:
echo "deb https: // artefatos.elástico.co / pacotes / 6.x / apt stable main "| sudo tee -a / etc / apt / sources.Lista.d / elástico-6.x.Lista
Atualize a lista de repo e instale o pacote:
sudo apt-get update
sudo apt-get install elasticsearch
Vamos modificar “elasticsearch.arquivo yml ”:
sudo vim / etc / elasticsearch / elasticsearch.yml
Remova o comentário “rede.host ”e“ http.porta". A seguinte configuração deve ser adicionada:
rede.host: localhost http.porta: 9200
Em seguida, salve e feche o arquivo.
Para garantir que o ElasticSearch funcione perfeitamente, habilite-o na inicialização e inicie o ElasticSearch.
sudo systemctl ativar elasticsearch.serviço
sudo systemctl start elasticsearch.serviço
Verifique a instalação:
sudo curl -XGET 'localhost: 9200 /?bonito'
Etapa 3) Instalando o Kibana
Vamos começar a instalar o Kibana agora e modificar as configurações do Kibana:
sudo apt-get install kibana
sudo vim / etc / kibana / kibana.yml
Descomente as seguintes linhas:
servidor.porta: servidor 5601.host: "localhost" elasticsearch.url: "http: // localhost: 9200"
Salve e saia do arquivo.
Habilite-o na inicialização e inicie o serviço Kibana:
sudo systemctl enable kibana.serviço
sudo systemctl start kibana.serviço
Etapa 4) Configurando Nginx como proxy reverso para Kibana
Em linhas semelhantes, vamos instalar o Nginx, configurá-lo e iniciar o serviço. Use os seguintes comandos, um de cada vez:
sudo apt-get install nginx apache2-utils
Configure o host virtual:
sudo vim / etc / nginx / sites-available / elk
Adicione a seguinte configuração ao arquivo:
servidor escuta 80; elk nome_do_servidor.fosslinux.com; auth_basic "Acesso restrito"; auth_basic_user_file / etc / nginx /.elkusersecret; localização / proxy_pass http: // localhost: 5601; proxy_http_version 1.1; proxy_set_header Atualizar $ http_upgrade; proxy_set_header Conexão 'upgrade'; proxy_set_header Host $ host; proxy_cache_bypass $ http_upgrade;
Crie um arquivo de usuário e senha para autenticação do navegador da web:
sudo htpasswd -c / etc / nginx /.elkusersecret elkusr
Digite a senha e repita. Verifique as configurações do Nginx:
sudo nginx -t
Ative o Nginx na inicialização do sistema e reinicie o serviço:
sudo systemctl enable nginx.serviço
sudo systemctl restart nginx.serviço
Etapa 5) Instalação e configuração do Logstash
Instale o Logstash:
sudo apt-get install logstash
Aqui, vamos gerar a chave do certificado SSL para proteger a transferência de log do cliente de arquivo. Modifique o arquivo “hosts” antes de criar o certificado SSL.
sudo vim / etc / hosts
Adicione a seguinte linha ao arquivo. Certifique-se de alterar o IP e o nome do servidor para o seu.
172.31.31.158 elk-server elk-server
Quando terminar, salve e saia do arquivo.
Agora mude o diretório para Logstash.
sudo cd / etc / logstash /
Crie uma pasta para SSL:
sudo mkdir ssl
Gerar certificado SSL. Mude elk-server para o nome do seu servidor no comando abaixo.
sudo openssl req -subj '/ CN = elk-server /' -x509 -days 3650 -batch -nodes -newkey rsa: 2048 -keyout ssl / logstash-forwarder.key -out ssl / logstash-forwarder.crt
Crie os seguintes arquivos dentro de “/ etc / logstash / conf.d ”.
sudo cd / etc / logstash / conf.d /
criar um arquivo filebeat-input usando o vim.
sudo vim filebeat-input.conf
Adicione as seguintes linhas a ele.
input beats port => 5443 type => syslog ssl => true ssl_certificate => "/ etc / logstash / ssl / logstash-forwarder.crt "ssl_key =>" / etc / logstash / ssl / logstash-forwarder.chave"
Salve e feche o arquivo e crie um novo arquivo de configuração.
filtro syslog sudo vim.conf
Adicione o seguinte conteúdo a ele.
filtrar 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 "] data match => [" syslog_timestamp " , "MMM d HH: mm: ss", "MMM dd HH: mm: ss"]
Salve e saia do arquivo. Crio elasticsearch arquivo de saída.
sudo vim output-elasticsearch.conf
Adicione as seguintes linhas a ele.
output elasticsearch hosts => ["localhost: 9200"] hosts => "localhost: 9200" manage_template => false index => "% [@ metadata] [beat] -% + YYYY.MILÍMETROS.dd "document_type =>"% [@ metadata] [type] "
Vamos ativar o Logstash na inicialização e iniciar o serviço:
sudo systemctl enable logstash.serviço
sudo systemctl start logstash.serviço
Etapa 6) Instalação e configuração do Filebeat em servidores cliente
Comece editando o hospedeiros arquivo para adicionar entradas de host elk. Certifique-se de substituir o IP e o nome pelo seu.
sudo vim / etc / hosts
172.31.31.158 elk-server
Salve e saia do arquivo.
Baixe e instale a chave de assinatura pública:
sudo wget -qO - https: // artefatos.elástico.co / GPG-KEY-elasticsearch | sudo apt-key add -
Instale “apt-transport-https” e adicione repo.
sudo apt-get install apt-transport-https
sudo echo "deb https: // artefatos.elástico.co / pacotes / 6.x / apt stable principal "| sudo tee -a / etc / apt / sources.Lista.d / elástico-6.x.Lista
Atualize o repo e instale o Filebeat.
sudo apt-get update
sudo apt-get install filebeat
Modificar configurações do Filebeat.
sudo vim / etc / filebeat / filebeat.yml
Encontre a linha a seguir e modifique o valor para “verdadeiro”.
habilitado: verdadeiro
Aqui não estamos modificando o caminho do log e Filebeat irá encaminhar todos os logs dentro da pasta “var / log”
caminhos: - / var / log / *.registro
Remova o comentário das seguintes linhas:
resultado.logstash: # O Logstash hospeda hosts: ["elk-server: 5443"] ssl.certificate_authorities: ["/ etc / filebeat / logstash-forwarder.crt "]
Comente Elasticsearch:
#resultado.elasticsearch: # Matriz de hosts para se conectar. # hosts: ["localhost: 9200"]
Salve e saia do arquivo.
Agora vá para o servidor ELK e obtenha “logstash-forwarder.conteúdo do crt
sudo cat / etc / logstash / ssl / logstash-forwarder.crt
copie a saída e vá para o cliente-servidor Elk.
Crie um arquivo de certificado
sudo vim / etc / filebeat / logstash-forwarder.crt
insira a saída copiada e salve e saia.
Habilitar filebeat na inicialização do sistema Iniciar filebeat serviço.
sudo systemctl enable filebeat.serviço
sudo systemctl start filebeat.serviço
Etapa 7) Navegar no Kibana Dashboard
Abra seu navegador favorito e digite o nome de domínio seguido pelo nome de usuário e senha.
http: // elk.fosslinux.com
Insira o nome de usuário e senha criados. Você deve ver a página de boas-vindas do Kibana. Clique no botão “Explorar meu próprio”.
Você deve ser direcionado para a página inicial do Kibana.
Clique em “Descobrir” no lado esquerdo. Clique em “Criar padrão de índice”.
Em seguida, defina o padrão de índice “filebeat- *”.
Clique em Avançar e escolha @timestamp 'e clique em' Criar padrão de índice '.
O padrão de índice deve ser criado.
Clique no menu “Descobrir” para ver os logs do servidor.
Os registros serão mostrados de acordo com o carimbo de data / hora. Clique em qualquer carimbo de data / hora para expandi-lo e ver o conteúdo do arquivo de log e seus detalhes.
Se você chegou aqui, significa que instalou e configurou com sucesso a pilha ELK com filebeat. Tenho algum problema? Fique à vontade para nos informar nos comentários abaixo.