Monitorar e analisar logs para várias infraestruturas em tempo real pode ser uma tarefa muito tediosa. Ao lidar com serviços como servidores web que registram dados constantemente, o processo pode ser muito complexo e quase impossível.
Como tal, saber como usar ferramentas para monitorar, visualizar e analisar registros em tempo real pode ajudá-lo a rastrear e solucionar problemas e monitorar atividades suspeitas do sistema.
Este tutorial irá discutir como você pode usar uma das melhores coleções de logs em tempo real e ferramentas de análise - ELK. Usando ELK, comumente conhecido como Elasticsearch, Logstash e Kibana, você pode coletar, registrar e analisar dados de um servidor web apache em tempo real.
O que é ELK Stack?
ELK é um acrônimo usado para se referir a três ferramentas principais de código aberto: Elasticsearch, Logstash e Kibana.
Elasticsearch é uma ferramenta de código aberto desenvolvida para encontrar correspondências em uma grande coleção de conjuntos de dados usando uma seleção de linguagens e tipos de consulta. É uma ferramenta leve e rápida, capaz de lidar com terabytes de dados com facilidade.
Logstash motor é um link entre o lado do servidor e o Elasticsearch, permitindo que você colete dados de uma seleção de fontes para o Elasticsearch. Ele oferece APIs poderosas que são integráveis com aplicativos desenvolvidos em várias linguagens de programação com facilidade.
Kibana é a peça final da pilha ELK. É uma ferramenta de visualização de dados que permite que você analise os dados visualmente e gere relatórios perspicazes. Ele também oferece gráficos e animações que podem ajudá-lo a interagir com seus dados.
A pilha ELK é muito poderosa e pode fazer coisas incríveis de análise de dados.
Embora os vários conceitos que discutiremos neste tutorial forneçam uma boa compreensão da pilha ELK, considere a documentação para obter mais informações.
Elasticsearch: https: // linkfy.para / Elasticsearch-Reference
Logstash: https: // linkfy.para / LogstashReference
Kibana: https: // linkfy.para / KibanaGuide
Como instalar o Apache?
Antes de começarmos a instalar o Apache e todas as dependências, é bom observar algumas coisas.
Testamos este tutorial no Debian 10.6, mas também funcionará com outras distribuições Linux.
Dependendo da configuração do seu sistema, você precisa de permissões de sudo ou root.
A compatibilidade e usabilidade da pilha ELK podem variar dependendo das versões.
A primeira etapa é garantir que seu sistema esteja totalmente atualizado:
sudo apt-get updatesudo apt-get upgrade
O próximo comando é instalar o servidor web apache2. Se você quiser um apache mínimo instalado, remova a documentação e utilitários do comando abaixo.
sudo apt-get install apache2 apache2-utils apache2-doc -ysudo service apache2 start
Agora, você deve ter um servidor Apache rodando em seu sistema.
Como instalar Elasticsearch, Logstash e Kibana?
Agora precisamos instalar a pilha ELK. Estaremos instalando cada ferramenta individualmente.
Elasticsearch
Vamos começar instalando o Elasticsearch. Vamos usar o apt para instalá-lo, mas você pode obter uma versão estável na página de download oficial aqui:
https: // www.elástico.co / downloads / elasticsearch
Elasticsearch requer Java para ser executado. Felizmente, a versão mais recente vem com um pacote OpenJDK, eliminando o incômodo de instalá-lo manualmente. Se você precisar fazer uma instalação manual, consulte o seguinte recurso:
https: // www.elástico.co / guide / en / elasticsearch / reference / current / setup.html # jvm-version
Na próxima etapa, precisamos baixar e instalar a chave de assinatura oficial do Elastic APT usando o comando:
wget -qO - https: // artefatos.elástico.co / GPG-KEY-elasticsearch | sudo apt-key add -
Antes de continuar, você pode exigir um pacote apt-transport-https (necessário para pacotes servidos por https) antes de prosseguir com a instalação.
sudo apt-get install apt-transport-httpsAgora, adicione as informações do repositório apt às fontes.Lista.arquivo d.
echo “deb https: // artefatos.elástico.co / packages / 7.x / apt stable main ”| sudo tee / etc / apt / sources.Lista.d / elástico-7.x.Lista
Em seguida, atualize a lista de pacotes em seu sistema.
sudo apt-get updateInstale o Elasticsearch usando o comando abaixo:
sudo apt-get install elasticsearchDepois de instalar o Elasticsearch, inicie e habilite a inicialização com os comandos systemctl:
sudo systemctl daemon-reloadsudo systemctl ativar elasticsearch.serviço
sudo systemctl start elasticsearch
O serviço pode demorar um pouco para começar. Aguarde alguns minutos e confirme se o serviço está instalado e funcionando com o comando:
sudo systemctl status elasticsearch.serviçoUsando cURL, teste se a API Elasticsearch está disponível, conforme mostrado na saída JSON abaixo:
curl -X GET "localhost: 9200 /?bonito""nome": "debian",
"cluster_name": "elasticsearch",
"cluster_uuid": "VZHcuTUqSsKO1ryHqMDWsg",
"versão":
"número": "7.10.1 ",
"build_flavor": "default",
"build_type": "deb",
"build_hash": "1c34507e66d7db1211f66f3513706fdf548736aa",
"build_date": "2020-12-05T01: 00: 33.671820Z ",
"build_snapshot": false,
"lucene_version": "8.7.0 ",
"minimum_wire_compatibility_version": "6.8.0 ",
"minimum_index_compatibility_version": "6.0.0-beta1 "
,
“Slogan”: “Você sabe, para pesquisar”
Como instalar o Logstash?
Instale o pacote logstash usando o comando:
sudo apt-get install logstashComo instalar o Kibana?
Digite o comando abaixo para instalar o kibana:
sudo apt-get install kibanaComo configurar Elasticsearch, Logstash e Kibana?
Veja como configurar a pilha ELK:
Como configurar o Elasticsearch?
No Elasticsearch, os dados são ordenados em índices. Cada um desses índices tem um ou mais fragmentos. Um fragmento é um mecanismo de pesquisa independente usado para manipular e gerenciar índices e consultas para um subconjunto em um cluster dentro do Elasticsearch. Um fragmento funciona como uma instância de um índice Lucene.
A instalação padrão do Elasticsearch cria cinco fragmentos e uma réplica para cada índice. Este é um bom mecanismo quando em produção. No entanto, neste tutorial, trabalharemos com um fragmento e sem réplicas.
Comece criando um modelo de índice no formato JSON. No arquivo, definiremos o número de fragmentos para uma e zero réplicas para nomes de índice correspondentes (fins de desenvolvimento).
No Elasticsearch, um modelo de índice se refere a como você instrui o Elasticsearch na configuração do índice durante o processo de criação.
Dentro do arquivo de modelo json (index_template.json), insira as seguintes instruções:
"modelo":"*",
"definições":
"índice":
"numero_de_shards": 1,
"numero_de_replicas": 0
Usando cURL, aplique a configuração json ao modelo, que será aplicado a todos os índices criados.
curl -X PUT http: // localhost: 9200 / _template / defaults -H 'Content-Type: application / json' -d @index_template.json"reconhecido": verdadeiro
Uma vez aplicado, Elasticsearch responderá com uma declaração reconhecida: verdadeira.
Como configurar o Logstash?
Para que o Logstash colete logs do Apache, devemos configurá-lo para observar quaisquer mudanças nos logs, coletando, processando e salvando os logs no Elasticsearch. Para que isso aconteça, você precisa configurar o caminho do log de coleta no Logstash.
Comece criando a configuração do Logstash no arquivo / etc / logstash / conf.d / apache.conf
entradaArquivo
path => '/ var / www / * / logs / access.registro'
type => "apache"
filtro
grok
match => "message" => "% COMBINEDAPACHELOG"
resultado
elasticsearch
Agora certifique-se de habilitar e iniciar o serviço logstash.
sudo systemctl enable logstash.serviçosudo systemctl start logstash.serviço
Como habilitar e configurar o Kibana?
Para habilitar o Kibana, edite o principal .arquivo de configuração yml localizado em / etc / kibana / kibana.yml. Localize as seguintes entradas e descomente-as. Uma vez feito isso, use systemctl para iniciar o serviço Kibana.
servidor.porta: 5601servidor.host: "localhost"
sudo systemctl enable kibana.serviço && sudo systemctl start kibana.serviço
Kibana cria padrões de índice com base nos dados processados. Portanto, você precisa coletar logs usando Logstash e armazená-los no Elasticsearch, que Kibana pode usar. Use curl para gerar logs do Apache.
Depois de obter os registros do Apache, inicie o Kibana em seu navegador usando o endereço http: // localhost: 5601, que iniciará a página de índice do Kibana.
No principal, você precisa configurar o padrão de índice usado pelo Kibana para pesquisar logs e gerar relatórios. Por padrão, Kibana usa o padrão de índice logstash *, que corresponde a todos os índices padrão gerados pelo Logstash.
Se você não tiver nenhuma configuração, clique em criar para começar a visualizar os registros.
Como visualizar registros Kibana?
Conforme você continua realizando solicitações do Apache, o Logstash coletará os logs e os adicionará ao Elasticsearch. Você pode ver esses registros no Kibana clicando na opção Descobrir no menu à esquerda.
A guia de descoberta permite que você visualize os registros à medida que o servidor os gera. Para ver os detalhes de um registro, basta clicar no menu suspenso.
Leia e entenda os dados dos logs do Apache.
Como pesquisar registros?
Na interface do Kibana, você encontrará uma barra de pesquisa que permite pesquisar dados usando strings de consulta.
Exemplo: status: ativo
Saiba mais sobre strings de consulta ELK aqui:
https: // www.elástico.co / guide / en / elasticsearch / reference / 5.5 / query-dsl-query-string-query.html # query-string-syntax
Já que estamos lidando com logs do Apache, uma possível correspondência é um código de status. Portanto, pesquise:
resposta: 200Este código irá pesquisar por logs com o código de status de 200 (OK) e exibi-los para Kibana.
Como visualizar registros?
Você pode criar painéis visuais no Kibana selecionando a guia Visualizar. Selecione o tipo de painel para criar e selecione seu índice de pesquisa. Você pode usar o padrão para fins de teste.
Conclusão
Neste guia, discutimos uma visão geral de como usar a pilha ELK para gerenciar registros. No entanto, há mais nessas tecnologias que este artigo pode cobrir. Recomendamos explorar por conta própria.