Como instalar o Elasticsearch, Logstash e Kibana (Elk Stack) no CentOS/Rhel 7

Como instalar o Elasticsearch, Logstash e Kibana (Elk Stack) no CentOS/Rhel 7

Se você é uma pessoa que é, ou já esteve no passado, responsável por inspecionar e analisar os registros do sistema no Linux, você sabe o que um pesadelo pode se tornar se vários serviços estiverem sendo monitorados simultaneamente.

Nos dias anteriores, essa tarefa tinha que ser feita principalmente manualmente, com cada tipo de log sendo tratado separadamente. Felizmente, a combinação de Elasticsearch, Logstash, e Kibana no lado do servidor, junto com FileBeat No lado do cliente, faz com que essa tarefa antes pareça uma caminhada no parque hoje.

Os três primeiros componentes formam o que é chamado de um Elk Stack, cujo principal objetivo é coletar logs de vários servidores ao mesmo tempo (também conhecidos como registro centralizado).

Leia sugerida: 4 Boas ferramentas de monitoramento e gerenciamento de log de código aberto para Linux

Uma interface da web baseada em Java embutida permite inspecionar logs rapidamente, para facilitar a comparação e a solução de problemas. Esses logs de clientes são enviados para um servidor central por FileBeat, que pode ser descrito como um agente de remessa de log.

Vamos ver como todas essas peças se encaixam. Nosso ambiente de teste consistirá nas seguintes máquinas:

Servidor central: CENTOS 7 (Endereço de IP: 192.168.0.29). 2 GB de RAM. Cliente #1: CENTOS 7 (Endereço de IP: 192.168.0.100). 1 GB de RAM. Cliente #2: Debian 8 (Endereço de IP: 192.168.0.101). 1 GB de RAM. 

Por favor, observe que o BATER Os valores fornecidos aqui não são pré -requisitos rígidos, mas valores recomendados para a implementação bem -sucedida do Elk empilhe no servidor central. Menos BATER nos clientes não fará muita diferença, se houver,.

Instalando a pilha de alces no servidor

Vamos começar instalando o Elk Empilhe no servidor, juntamente com uma breve explicação sobre o que cada componente faz:

  1. Elasticsearch armazena os troncos enviados pelos clientes.
  2. Logstash processa esses logs.
  3. Kibana Fornece a interface da web que nos ajudará a inspecionar e analisar os logs.

Instale os seguintes pacotes no servidor central. Primeiro, vamos instalar Java JDK versão 8 (atualizar 102, o mais recente no momento da redação deste artigo), que é uma dependência do Elk componentes.

Você pode verificar primeiro na página Java Downloads aqui para ver se há uma atualização mais recente disponível.

# yum update # cd /opt # wget--no-cookies--não-check-certificate-header "cookie: gpw_e24 = http%3a%2f%2fwww.oráculo.com%2f; oraclelicense = aceit-securebackup-cookie "" http: // download.oráculo.com/otn-pub/java/jdk/8u102-b14/jre-8u102-linux-x64.rpm " # rpm -uvh jre-8u102-linux-x64.RPM 

Hora de verificar se a instalação foi concluída com êxito:

# java -version 
Verifique a versão Java da CommandLine

Para instalar as versões mais recentes de Elasticsearch, Logstash, e Kibana, Teremos que criar repositórios para yum manualmente como segue:

Ativar repositório Elasticsearch

1. Importe a chave GPG pública Elasticsearch para o RPM Package Manager:

# rpm --import http: // pacotes.elástico.Pesquisa de co/gpg-key-elástica 

2. Insira as seguintes linhas no arquivo de configuração do repositório Elasticsearch.repo:

/etc/yum.Repos.D/Elasticsearch.repo
[Elasticsearch] Nome = Elasticsearch Repository Baseurl = http: // pacotes.elástico.Co/Elasticsearch/2.X/CENTOS GPGCHECK = 1 GPGKEY = http: // pacotes.elástico.Pesquisa de Co/GPG-Key-ELASTICS Habiled = 1 

3. Instale o pacote Elasticsearch.

# yum install Elasticsearch 

Quando a instalação estiver concluída, você será solicitado a iniciar e ativar o Elasticsearch:

Instale o Elasticsearch no Linux

4. Inicie e habilite o serviço.

# SystemCtl Daemon-Reload # SystemCtl Ativar Elasticsearch # SystemCtl START Elasticsearch 

5. Permitir tráfego através da porta TCP 9200 no seu firewall:

# firewall-cmd --add-port = 9200/tcp # firewall-cmd --add-port = 9200/tcp --permanente 

6. Verifique se Elasticsearch responde a solicitações simples sobre Http:

# Curl -x Obtenha http: // localhost: 9200 

A saída do comando acima deve ser semelhante a:

Verifique a instalação do Elasticsearch

Certifique -se de concluir as etapas acima e prosseguir com Logstash. Desde ambos Logstash e Kibana compartilhe o Elasticsearch gpg Chave, não há necessidade de reimportá-lo antes de instalar os pacotes.

Leia sugerida: Gerenciar logs do sistema (configurar, girar e importar para o banco de dados) no CentOS 7

Ativar repositório de logstash

7. Insira as seguintes linhas no arquivo de configuração do repositório Logstash.repo:

/etc/yum.Repos.D/Logstash.repo
[Logstash] Nome = Logstash Baseurl = http: // pacotes.Elasticsearch.org/logstash/2.2/CENTOS GPGCHECK = 1 GPGKEY = http: // pacotes.Elasticsearch.Org/GPG-Key-ELASTICSearch Habiled = 1 

8. Instale o Logstash pacote:

# yum instalar logstash 

9. Adicione a Ssl certificado com base no endereço IP do servidor de alces na linha a seguir abaixo do [v3_ca] seção em /etc/pki/tls/openssl.CNF:

[V3_CA] SubjectName = IP: 192.168.0.29 
Adicionar endereço IP do Elasticsearch Server

10. Gerar um certificado autoassinado válido para 365 dias:

# cd/etc/pki/tls # openssl req -config/etc/pki/tls/openSSL.CNF -x509 -Days 3650 -Batch -Nodes -NewKey RSA: 2048 -Keyout Private/Logstash -Forwer.Chave -out Certs/Logstash -Forwarder.Crt 

11. Configure Logstash Arquivos de entrada, saída e filtro:

Entrada: Criar /etc/logstash/conf.d/entrada.conf e insira as seguintes linhas nele. Isso é necessário para o Logstash "aprender”Como processar batidas vindo de clientes. Verifique se o caminho para o certificado e a chave corresponde aos caminhos certos, conforme descrito na etapa anterior:

/etc/logstash/conf.d/entrada.conf
entrada beats porta => 5044 ssl => true ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.CRT "ssl_key =>"/etc/pki/tls/private/logstash-forwer.chave"   

Saída (/etc/logstash/conf.d/saída.conf) arquivo:

/etc/logstash/conf.d/saída.conf
saída Elasticsearch hosts => ["localhost: 9200"] Sniffing => true Manage_Template => false index => "%[@metadata] [Beat]-%+aaaaaaaaaaa.MILÍMETROS.dd "document_type =>"%[@metadata] [tipo] " 

Filtro (/etc/logstash/conf.d/filtro.conf) arquivo. Vamos registrar mensagens syslog por simplicidade:

/etc/logstash/conf.d/filtro.conf
filtro if [type] == "syslog" grok match => "message" => "%syslogline" data match => ["timestamp", "mmm d hh: mm: ss" , "Mmm dd hh: mm: ss"] 

12. Verifique o Logstash Arquivos de configuração.

# Service Logstash ConfigTest 
Verifique a configuração do LOGSTASH

13. Inicie e habilite o Logstash:

# SystemCtl Daemon-Reload # SystemCtl Iniciar LogSh 

14. Configure o firewall para permitir que Logstash obtenha os logs dos clientes (porta TCP 5044):

# firewall-cmd --add-port = 5044/tcp # firewall-cmd --add-port = 5044/tcp --permanente 

Ativar repositório Kibana

14. Insira as seguintes linhas no arquivo de configuração do repositório Kibana.repo:

/etc/yum.Repos.D/Kibana.repo
[Kibana] Nome = Kibana Repository Baseurl = http: // pacotes.elástico.Co/Kibana/4.4/CENTOS GPGCHECK = 1 GPGKEY = http: // pacotes.elástico.Pesquisa de Co/GPG-Key-ELASTICS Habiled = 1 

15. Instale o Kibana pacote:

# yum install kibana 

16. Inicie e habilite Kibana.

# SystemCtl Daemon-Reload # SystemCtl Start Kibana # SystemCtl Ativar Kibana 

17. Verifique se você pode acessar a interface da web de Kibana de outro computador (permita o tráfego na porta TCP 5601):

# firewall-cmd --add-port = 5601/tcp # firewall-cmd --add-port = 5601/tcp --permanente 

18. Lançar Kibana (http: // 192.168.0.29: 5601) Para verificar se você pode acessar a interface da web:

Access Kibana Web Interface

Voltaremos aqui depois de instalar e configurar FileBeat nos clientes.

Leia sugerida: Monitor Server faz login em tempo real com “Log.ferramenta io ”no Linux

Instale o FileBeat nos servidores do cliente

Vamos mostrar como fazer isso para Cliente #1 (Repita para Cliente #2 depois, mudando os caminhos, se aplicável à sua distribuição).

1. Copie o certificado SSL do servidor para os clientes:

# scp/etc/pki/tls/certs/logstash-forwer.CRT [email protegido]:/etc/pki/tls/certs/ 

2. Importar o Elasticsearch Chave Public GPG para o RPM Package Manager:

# rpm --import http: // pacotes.elástico.Pesquisa de co/gpg-key-elástica 

3. Criar um repositório para FileBeat (/etc/yum.Repos.D/FileBeat.repo) em CENTOS Distribuições baseadas:

/etc/yum.Repos.D/FileBeat.repo
[FileBeat] Nome = FileBeat for Elk Clients Baseurl = https: // pacotes.elástico.Co/Beats/Yum/El/$ Basearch ativado = 1 gpgkey = https: // pacotes.elástico.Co/GPG-Key-ELASTICSEARCH GPGCHECK = 1 

4. Configure a fonte para instalar o FileBeat Debian e seus derivados:

# Aptidão Instale o apt-transport-https # echo "Deb https: // pacotes.elástico.Co/Beats/Apt estável ">/etc/apt/fontes.lista.D/FileBeat.Lista # Atualização de aptidão 

5. Instale o FileBeat pacote:

# yum instale o arquivo de arquivo [em CENTOS e distos baseados] # aptitude install filebeat [on on Debian e seus derivados] 

6. Inicie e habilite o FileBeat:

# SystemCtl Iniciar o FileBeat # SystemCtl Ativar FileBeat 

Configure o FileBeat

uma palavra de cautela aqui. FileBeat A configuração é armazenada em um Yaml arquivo, que requer recuo rigoroso. Tenha cuidado com isso enquanto você edita /etc/FileBeat/FileBeat.yml do seguinte modo:

  1. Sob caminhos, Indique quais arquivos de log devem ser "enviados" para o servidor de alces.
  2. Sob Prospectors:
input_type: log document_type: syslog 
  1. Sob saída:
    1. Descomamento a linha que começa com Logstash.
    2. Indique o endereço IP do seu servidor e porta de alces onde o Logstash está ouvindo anfitriões.
    3. Verifique se o caminho para o certificado aponta para o arquivo real que você criou Etapa i (Logstash seção) acima.

As etapas acima são ilustradas na imagem a seguir:

Configurar o FileBeat em servidores clientes

Salvar alterações e depois reiniciar FileBeat nos clientes:

# SystemCtl Restart FileBeat 

Depois de concluirmos as etapas acima dos clientes, fique à vontade para prosseguir.

Testando o arquivo de arquivo

Para verificar se os logs dos clientes podem ser enviados e recebidos com sucesso, execute o seguinte comando no Elk servidor:

# Curl -xget 'http: // localhost: 9200/FileBeat -*/_ Search?bonito' 

A saída deve ser semelhante a (observe como as mensagens de /var/log/mensagens e /var/log/seguro estão sendo recebidos de Client1 e Client2):

Testando o arquivo de arquivo

Caso contrário, verifique o FileBeat Arquivo de configuração para erros.

# JournalCtl -xe 

Depois de tentar reiniciar o FileBeat, o apontará para as linhas ofensivas.

Testando Kibana

Depois de verificamos que os registros estão sendo enviados pelos clientes e recebidos com sucesso no servidor. A primeira coisa que teremos que fazer em Kibana está configurando um padrão de índice e defina -o como padrão.

Você pode descrever um índice como um banco de dados completo em um contexto de banco de dados relacional. Nós iremos com FileBeat-* (ou você pode usar um critério de pesquisa mais preciso, conforme explicado na documentação oficial).

Digitar FileBeat-* no Nome do índice ou campo de padrão e depois clique Criar:

Testando Kibana

Observe que você terá permissão para inserir um critério de pesquisa mais refinado posteriormente. Em seguida, clique na estrela dentro do retângulo verde para configurá -lo como o padrão de índice padrão:

Configurar padrão padrão de índice Kibana

Finalmente, no Descobrir Menu, você encontrará vários campos para adicionar ao relatório de visualização de log. Apenas pairu sobre eles e clique Adicionar:

Adicionar relatório de visualização de log

Os resultados serão mostrados na área central da tela, como mostrado acima. Sinta -se à vontade para brincar (adicione e remova os campos do relatório de log) para se familiarizar com Kibana.

Por padrão, Kibana exibirá os registros que foram processados ​​durante o último 15 minutos (consulte o canto superior direito), mas você pode alterar esse comportamento selecionando outro prazo:

Relatórios de log de Kibana

Resumo

Neste artigo, explicamos como configurar uma pilha de alces para coletar os registros do sistema enviados por dois clientes, um CentOS 7 e um Debian 8 Machines.

Agora você pode se referir à documentação oficial do Elasticsearch e encontrar mais detalhes sobre como usar essa configuração para inspecionar e analisar seus logs com mais eficiência.

Se você tiver alguma dúvida, não hesite em perguntar. Estamos ansiosos para ouvir de você.