Se você tiver que gerenciar grandes quantidades de dados, então você se encontrará um dia desejando uma ferramenta que simplesmente apontasse as anomalias ou inconsistências nos dados e o alertasse em tempo real.
O que é ElastAlert?
ElastAlert é projetado exatamente para fazer isso. É uma estrutura simples que alerta quando detecta anomalias, picos ou outros padrões de regras de dados adicionados no Elasticsearch.
Por exemplo, você pode configurar um alerta de 'frequência', que irá notificá-lo quando houver um número X de eventos no tempo Y.
Ou você pode querer ser avisado imediatamente quando houver um evento de 'pico', ou seja, quando a taxa na qual um evento ocorre aumenta ou diminui repentinamente.
Outros tipos de regras incluídos são:
- 'flatline' - quando há menos de X eventos no tempo Y
- 'lista negra / lista branca' - quando um determinado campo corresponde a 'lista negra' ou 'lista branca'
- 'qualquer' - quando ocorre um evento que corresponde a um determinado filtro
- 'mudança' - quando um campo tem dois valores diferentes dentro de um período de tempo especificado
Tipos de alerta suportados
Atualmente, ElastAlert tem suporte integrado para os seguintes tipos de alerta.
- Comando
- JIRA
- OpsGenie
- SNS
- HipChat
- Folga
- Telegrama
- GoogleChat
- Depurar
- Stomp
- a colméia
Instale ElastAlert com Elasticsearch no Ubuntu
Neste artigo, mostramos como instalar o ElastAlert no ubuntu 18.04.
Requisitos
- Elasticsearch
- Dados com carimbo de data / hora ISO8601 ou Unix
- Python 2.7
- pip, veja os requisitos.txt - (https: // github.com / Yelp / elastalert / blob / master / requisitos.TXT)
- Pacotes para ubuntu - python-pip python-dev libffi-dev libssl-dev
Pré-requisitos de instalação
Instale Python 2.7:
sudo apt-get install python-minimal
Verifique a versão Python:
sudo python --version
Então você obterá saída para python 2.7.
Instale os pacotes necessários:
sudo apt-get install python-pip python-dev libffi-dev libssl-dev
Existem algumas maneiras diferentes de instalar o ElastAlert e aqui vamos fazer a instalação clonando o repositório git.
Portanto, precisamos instalar o “git” antes de prosseguir. Normalmente, Ubuntu 18.04 já tem git instalado.
Verifique a versão instalada ou disponível do git:
sudo apt-cache policy git
Isso fornecerá os detalhes das versões git instaladas e candidatas.
Se você não consegue ver a versão instalada do git, execute o seguinte comando.
sudo apt-get install git
Vamos clonar o repositório ElastAlert para a pasta “/ opt”, portanto, alterar o diretório.
sudo cd / opt
Agora clone um repositório git.
sudo git clone https: // github.com / Yelp / elastalert.idiota
Agora instale os módulos.
sudo pip install "setuptools> = 11.3 "
configuração sudo python.py install
Você pode obter um erro como este.
Em seguida, execute o comando abaixo para instalar “PyOpenSSL”
sudo pip install PyOpenSSL
Aqui vamos integrar com o Elastic search 6.x. Então Elasticsearch 5.0+ será instalado aqui.
sudo pip install "elasticsearch> = 5.0.0 "
Configurar ElastAlert
Clonamos o repo ElastAlert para o diretório “/ opt”, portanto, altere o diretório antes de continuar.
sudo cd / opt / elastalert /
Agora temos uma cópia do config.yaml.arquivo de exemplo como uma configuração.yaml
sudo cp config.yaml.configuração de exemplo.yaml
Modificar configuração.arquivo yaml.
configuração do vim.yaml
Remova o comentário das seguintes linhas e modifique.
ElasticSearch Hostname or IP
es_host: elk-server
Porta ElasticServer
es_port: 9200
Remova o comentário de autenticação básica:
es_username: es_password:
Salve e feche o arquivo.
Criar índice ElastAlert.
sudo elastalert-create-index
Criando uma regra
Agora edite o arquivo intitulado “example_frequency.yaml ”dentro da pasta“ / opt / elastalert / example_rules / ”
sudo vim example_rules / example_frequency.yaml
Remova o comentário e modifique o índice da seguinte maneira:
índice: filebeat- *
Agora defina um filtro para um alerta. Aqui, filtramos palavras-chave com a string “exceção”.
filtro: - query_string: query: "mensagem: * exceção *"
Configurar Alter com Slack. Aqui você precisa criar um canal do Slack e um webhook de entrada. Em seguida, adicione os detalhes de configuração da seguinte forma.
alerta: - "slack" slack: slack_webhook_url: "https: // hooks.folga.com / services / T3YSFN0GL / BFU1HPLKD / BPM2jOlIOzKxbEOHAepu6d26 "slack_emername_override:" Fosslinux-Elastic-Bot "slack_channel_override:" #fosslinuxalert "slack_emcolor_override:": robot_face "slack_emcolor_override:": "
Você pode seguir as etapas abaixo para criar o canal do Slack.
Configurando o canal Slack para ElastAlert
Se você não tem uma conta no Slack, pode obter uma simplesmente se inscrevendo. Vá para “folga.com ”e digite seu endereço de e-mail e clique em“ COMEÇAR ”.
Em seguida, clique em 'criar novo espaço de trabalho' e verifique o seu endereço de e-mail. Agora você pode fazer login e visualizar o painel.
Vá para Navegar em aplicativos -> Integrações personalizadas -> Webhooks de entrada -> Nova configuração
Em seguida, clique em 'Criar novo canal' para criar um canal para enviar alertas.
Em seguida, clique no botão 'Criar canal' e você será direcionado para a página de integração do Webhook.
Clique no botão 'Adicionar integração de WebHooks de entrada'. Isso criará configurações de integração.
Regra de Teste
Alterar diretório para ElastAlert.
sudo cd / opt / elastalert /
Execute o comando abaixo para testar a regra configurada.
sudo elastalert-test-rule example_rules / example_frequency.yaml
Execute ElastAlert
Iniciaremos o ElastAlert como um serviço de segundo plano. Este comando deve ser executado dentro da pasta “/ opt / elastalert /”.
sudo python -m elastalert.elastalert --verbose --rule example_frequency.yaml &
Agora o ElastAlert começará a verificar as consultas no Elasticsearch (no servidor ELK). Se houver uma correspondência, ele disparará um alerta para o Slack.
Alerta disparado.
O alerta irá para o Slack Channel.
É isso, instalamos e configuramos com sucesso o ElastAlert com a busca elástica e também configuramos alertas para o Slack. Esperamos que este tutorial completo ajude você a instalar o ElastAlert e configurar algumas regras para acionar alertas facilmente. Perguntas e feedback são bem-vindos na seção de comentários.