Executando verificação de segurança...
5

Busca, Monitoramento e Relatorios? Conhece o OpenSearch?

O que é o OpenSearch?

O OpenSearch é um software de indexação e busca de dados, que tem uma flexibilidade enorme. Aliado com outras ferramentas como o Dashboards e o Logstash, ela permite uma infinidade de aplicações:

  • Full-text search
  • Analytics
  • Alertas

Na verdade, o projeto OpenSearch é um fork do ElasticSearch, impulsionado pela Amazon após a Elastic mudar a licença do seu software como forma de combater o seu uso pela AWS.

Minha experiência

Comecei a usar o ElasticSearch bem antes de toda a confusão com a AWS e a criação do fork OpenSearch, lá em 2017.

No inicio busquei a ferramenta pois eu tinha um sistema com um banco global de cidades, com mais de 3 milhões de cidades, e nesse sistema era essencial a busca rápida por cidades em um typeahead, sem filtrar por país ou estado antes.

Começamos implementando a busca no MySQL, mas cada letra digitada levava 300ms a 3 segundos para dar resultados. Foi então que encontrei o ElasticSearch e implementei uma busca full-text, que além de "entender" erros de digitação, ordenar pela relevância (definida por mim, por exemplo capitais vem primeiro), conseguia me entregar resultados consistentemente em menos de 50 millisegundos.

Depois disso, toda e qualquer busca do meu sistema passou a usar ele, bem como filtragens (usando uma linguagem propria de query que me permitiu adiiconar junto aos termos de busca, alguns filtros, por exemplo "Fortaleza AND country:BR".

E o Analytics?

Eu passei então a jogar todos os logs do servidor e aplicação dentro dele, e com isso consegui ter relatorios dos erros que ocorriam, usando a ferramenta Kibana (no opensearch chama Dashboards).

Com isso, quando um usuário me ligava por um erro do sistema, minha primeira tarefa era acessar o Kibana, e filtrar erros daquele usuário, dentro do periodo que ele falou.

Como eu registrava todas as requests, inclusive as que funcionavam, eu conseguia traçar tudo que o usuário fez até o erro acontecer.

Conseguia também ver quais os endpoints mais davam erro, quais demoravam mais tempo para executar.

E os alertas?

Já na era Opensearch, eu passei a usar a ferramenta de alertas do Dashboards para receber no meu e-mail alertas sempre que determinada situação acontecia (por exemplo quando o fail2ban bania mais de 5 IPs pelo mesmo motivo, ou quando erros aconteciam, ou quando o storage do servidor ficava cheio.

Você conhecia?

Não aprofundei no como funciona ou como usar, mas sim nos casos de uso que a ferramenta me ajudou bastante.

Algum de vocês conhecia e já utilizava?

Carregando publicação patrocinada...