A análise comportamental desempenha um papel essencial na otimização das aplicações de busca, permitindo entender o comportamento dos usuários e ajustá-las para atender melhor às suas necessidades. No caso das aplicações de busca baseadas no Elastic Stack, como a aplicação React Search, um componente fundamental da análise comportamental é a coleta de dados de sessões, termos de busca, números de pesquisas realizadas e contagem de buscas sem resultado, como mostrado na Figura 3.16. Esta abordagem permite refinar a relevância dos resultados de busca e identificar lacunas no conteúdo.
Utilizando a funcionalidade de "Behavioral Analytics", introduzida na versão 8.7.0 do Elastic, podemos coletar e analisar estatísticas que oferecem insights valiosos. Através da integração com o cliente JavaScript, é possível rastrear os dados de sessões, buscas e cliques. Estes dados são armazenados nos índices do Elasticsearch, o que permite uma análise mais avançada e visualização eficiente das métricas coletadas. Importante ressaltar que, para garantir conformidade com o GDPR, não são coletados dados pessoais, o que assegura a privacidade dos usuários.
Com os dados armazenados em índices no Elasticsearch, podemos facilmente acessá-los através do Kibana. A interface "Discover" no Kibana oferece uma visão clara dos dados brutos do índice "behavioral_analytics.events-movie-stats", que nos permite visualizar as estatísticas correspondentes à nossa coleção de dados de filmes, como mostrado na Figura 3.17. A partir dessa visualização, podemos criar painéis e gráficos personalizados que nos ajudam a compreender melhor os padrões de comportamento dos usuários e aprimorar os resultados de busca de maneira mais precisa.
Além disso, a análise comportamental está integrada ao Searchkit, uma biblioteca de código aberto usada para construir interfaces de busca com o Elasticsearch. A flexibilidade oferecida por essa integração permite a personalização das interfaces de busca e a adaptação das visualizações de dados conforme a necessidade do projeto.
Uma das vantagens da coleta de dados comportamentais é a capacidade de identificar tendências que podem passar despercebidas durante a análise manual de resultados. Por exemplo, podemos detectar quais termos de busca são mais populares, como os usuários interagem com os resultados apresentados e até onde eles clicam nas páginas de resultados. Esse nível de insight é crucial para ajustar o algoritmo de busca e melhorar a relevância dos resultados exibidos aos usuários.
Outro aspecto importante é que os dados coletados podem revelar lacunas no conteúdo. Ao observar quais buscas não retornam resultados, é possível identificar áreas em que o conteúdo precisa ser expandido ou melhorado. Isso não só melhora a experiência do usuário, mas também aumenta a qualidade e a abrangência do conteúdo disponível na plataforma.
Além da análise de dados comportamentais, a ingestão de dados com carimbo de tempo, outro recurso importante do Elastic Stack, permite monitorar dados operacionais com precisão. A ingestão de dados é feita de maneira eficiente utilizando o Elastic Agent e os Beats. O Elastic Agent, uma solução integrada para monitoramento de logs e métricas, facilita a coleta de dados de sistemas diversos, enquanto os Beats, ferramentas leves para envio de dados, são ideais para transmitir dados operacionais ao Elasticsearch.
Essas ferramentas oferecem flexibilidade, pois é possível escolher entre o Elastic Agent, que pode ser gerenciado centralmente via Fleet, ou os Beats, que permitem a instalação em hosts individuais para uma coleta mais personalizada de dados. Ambos os métodos ajudam na monitoração de logs de sistemas, como o Apache HTTP, além de permitir a configuração de fluxos de dados para uma análise mais detalhada.
É fundamental que, ao utilizar essas ferramentas, o usuário compreenda a estrutura e a importância dos índices no Elasticsearch, assim como a maneira como as integrações são configuradas no Kibana. A interação com a interface de gestão do Fleet, por exemplo, é um processo centralizado que permite a administração das políticas do Elastic Agent, garantindo que os dados coletados sejam devidamente monitorados e analisados. Isso é essencial não apenas para a eficiência operacional, mas também para garantir a segurança dos dados durante o processo de coleta e análise.
Ao integrar essas abordagens, o profissional consegue não só otimizar os resultados das buscas, mas também oferecer uma plataforma que se adapta e evolui conforme as necessidades e comportamentos dos usuários. A compreensão da relevância e da aplicabilidade de cada ferramenta é crucial para aproveitar ao máximo o Elastic Stack, garantindo que a aplicação de busca não só funcione, mas também ofereça resultados cada vez mais precisos e personalizados.
Como Criar e Usar Painéis Interativos no Kibana
Ao trabalhar com dados no Kibana, os painéis são ferramentas essenciais para a visualização e análise eficazes. Após a importação de objetos necessários, o próximo passo é configurar interatividade entre os painéis, o que permite uma navegação mais fluida e personalizada dentro dos dados. O Kibana oferece diversas opções de visualização e personalização para adequar os painéis a diferentes necessidades e casos de uso. Um exemplo claro de como usar essa interatividade é a criação de drilldowns, uma funcionalidade que permite explorar dados de forma mais detalhada, a partir de um painel de visão geral.
Para iniciar, ao retornar ao painel principal do [Rennes Traffic], você pode acessar o menu de hierarquia de velocidade por estrada e selecionar a opção "Criar drilldown". Isso abrirá uma página onde você definirá o nome do seu drilldown, sugerindo "Ver Detalhes da Hierarquia da Estrada". Em seguida, você escolherá o painel de destino, que será o [Rennes Traffic] Detailed Traffic Drilldown Dashboard. Isso cria um caminho de navegação direcionado dentro do seu ambiente de painel, permitindo uma transição fluida entre o painel de visão geral e o painel de análise detalhada.
Depois de configurar o drilldown, é hora de testar sua funcionalidade. Salve o painel e, ao clicar em qualquer um dos cinco gráficos da hierarquia de velocidade por estrada, você será redirecionado automaticamente para o painel detalhado, já filtrado pelo valor selecionado. Esse processo é uma maneira simples de criar uma experiência interativa para os usuários, melhorando a acessibilidade aos dados relevantes de forma dinâmica.
Os painéis no Kibana são uma poderosa ferramenta de análise de dados, pois permitem visualizar várias representações gráficas ao mesmo tempo, o que facilita a identificação de padrões e tendências. Além disso, os painéis podem ser usados para monitorar métricas-chave em tempo real, o que é especialmente útil em casos operacionais. O Kibana oferece uma vasta gama de tipos de visualizações que podem ser usadas para criar painéis personalizados, incluindo gráficos de barras, gráficos de linhas, gráficos de pizza, tabelas e muito mais.
Ao escolher a visualização mais adequada para o seu painel, é importante considerar o contexto dos dados. Por exemplo, para representar uma grande quantidade de itens, um gráfico de barras horizontais pode ser a melhor escolha. Já para comparar poucos itens, um gráfico de barras verticais é mais eficaz. A tabela abaixo ilustra como escolher a visualização certa, levando em conta o número de pontos de dados e o tipo de comparação que se deseja realizar.
Em adição às visualizações, os painéis do Kibana também suportam pesquisas salvas, que permitem filtrar rapidamente os dados com base em critérios específicos. Essas pesquisas podem ser adicionadas aos painéis para facilitar o acesso a dados frequentemente consultados, tornando o processo de análise ainda mais eficiente. No geral, os painéis do Kibana são ferramentas poderosas para análise e monitoramento de dados, permitindo que você identifique rapidamente padrões e tendências, monitore métricas em tempo real e personalize sua visualização de dados conforme suas necessidades.
Para além das funcionalidades básicas de drilldowns, o Kibana oferece a opção de criar drilldowns por URL e por Discover. O drilldown por URL permite que você vincule dados externos ao seu painel, enquanto o drilldown por Discover possibilita abrir o Discover a partir de um painel Lens, mantendo todas as informações contextuais. Essas opções ampliam ainda mais as possibilidades de personalização e interatividade, permitindo que você conecte diferentes fontes de dados e facilite a análise abrangente.
Além disso, os painéis do Kibana não são limitados ao uso interno. Você pode compartilhá-los com equipes e colegas fora do Kibana. O menu de compartilhamento, acessível na barra de ferramentas, oferece diversas opções, como incorporar interativamente o painel em um iFrame, exportá-lo como relatórios em diferentes formatos (PNG, CSV, PDF, etc.), ou simplesmente compartilhar um link direto para facilitar o acesso.
Ao construir seus painéis, a prática de design thinking é essencial. Antes de começar, é importante questionar o objetivo do painel e quem o usará. O design deve ser orientado para o usuário, visualizando como ele precisará interagir com os dados e quais informações são mais relevantes para suas necessidades. Além disso, ao criar painéis mais complexos, é útil buscar inspiração em blogs e artigos técnicos que discutem como criar painéis mais eficientes e intuitivos no Kibana.
Além disso, uma parte importante da visualização de dados é a estética e a clareza das informações apresentadas. Painéis excessivamente complexos ou mal estruturados podem dificultar a interpretação dos dados. Portanto, sempre que possível, busque simplicidade e clareza na organização dos elementos visuais. Lembre-se também de que a interatividade não deve ser apenas uma característica técnica, mas deve ser pensada como uma forma de facilitar a exploração dos dados e fornecer insights de maneira eficaz.
Como importar e testar modelos NLP no Elasticsearch para classificação de textos e anonimização de entidades nomeadas?
O uso de modelos de Processamento de Linguagem Natural (NLP) no Elasticsearch expandiu consideravelmente a capacidade da plataforma de manipular textos de forma inteligente. Através da integração com modelos de terceiros da Hugging Face, é possível realizar tarefas como reconhecimento de entidades nomeadas (NER) e classificação de texto diretamente a partir da interface gráfica do Kibana. O processo de importação, teste e aplicação desses modelos segue uma lógica bem definida e permite o enriquecimento semântico dos dados textuais durante a ingestão.
Após a importação dos modelos usando o cliente Python Eland, o próximo passo é acessá-los pela interface do Kibana em Analytics | Machine Learning | Model management | Trained models. Para localizar um modelo de NER, basta digitar “ner” na barra de busca, e o modelo dslim_bert-base-ner deve aparecer como devidamente importado e implantado. Caso contrário, um aviso pode indicar a necessidade de sincronizar os trabalhos de ML e modelos treinados — ação realizada com um clique no link de sincronização no topo da tela.
Com o modelo NER implantado, é possível testá-lo diretamente na interface. Clicando no botão de ações e em seguida em Test model, um painel lateral se abre. Inserindo um texto exemplo — como a sinopse de um filme disponível em repositório público — e clicando em Test, o modelo retorna as entidades nomeadas identificadas, evidenciando sua eficácia.
Procede-se então ao teste do segundo modelo, este voltado à classificação de gênero cinematográfico. Buscando por “movie” na barra, encontra-se o modelo correspondente. O processo de teste é similar: insere-se o mesmo texto de sinopse, e o modelo retorna uma lista de gêneros previstos, ordenados por probabilidade. Essa abordagem revela-se poderosa para categorizar conteúdos narrativos com base em sua descrição textual, automatizando tarefas que antes demandavam interpretação humana.
Esses testes, porém, não se limitam à interface. A etapa seguinte consiste em aplicar esses modelos durante a ingestão de dados para enriquecimento e transformação automática da informação textual. Utilizando o recurso Data Visualizer e importando um dataset reduzido de sinopses de filmes (wiki_movie_plots_short.csv), inicia-se a construção de um pipeline de ingestão customizado. Durante a importação, no separador Advanced, define-se o nome do índice como movie-anonymized e insere-se o mapeamento e o pipeline de ingestão conforme especificações públicas.
Esse pipeline é composto por múltiplos processadores. O primeiro, um inference processor, aplica o modelo de NER para extrair entidades e armazená-las no campo anonymized_plot. Em seguida, um script processor remove as menções originais e retém apenas as tags. Um redact processor identifica padrões como datas e substitui-os por tokens genéricos. Outros processadores como csv, set, convert e remove cuidam da normalização dos dados, remoção de campos redundantes e ajuste de formatos.
A validação do resultado pode ser feita através do Discover no Kibana, selecionando um filme específico como Terrible Teddy, the Grizzly King. Ao expandir o documento, verifica-se que as entidades nomeadas foram substituídas de forma coerente no campo anonymized_plot.
A flexibilidade dos pipelines no Elasticsearch permite o
Como Instrumentar e Monitorar Aplicações com OpenTelemetry na Stack Elastic
Instrumentação personalizada
Em nosso exemplo anterior, utilizamos a instrumentação automática fornecida pelo agente Elastic RUM. No entanto, é possível realizar uma instrumentação personalizada, o que pode ser especialmente útil em aplicações de página única (SPAs), onde a instrumentação automática de carregamento de páginas pode não ser suficiente. A instrumentação personalizada permite maior controle sobre as transações e eventos monitorados, proporcionando um nível de detalhes mais refinado. Exemplos de transações personalizadas podem ser encontrados na documentação oficial da Elastic, o que possibilita expandir a cobertura e a precisão da monitoração em sistemas complexos.
O uso de instrumentação personalizada pode ser vantajoso em cenários nos quais é necessário capturar eventos específicos que não são cobertos por abordagens automáticas, ou quando o comportamento da aplicação é altamente dinâmico, como é o caso das SPAs. Essa flexibilidade torna a instrumentação personalizada uma escolha essencial quando se busca uma monitoração mais precisa e adaptada às necessidades do projeto.
Suporte ao OpenTelemetry
O OpenTelemetry (https://opentelemetry.io) é uma iniciativa de código aberto que oferece um conjunto robusto de APIs, bibliotecas, agentes e integrações para a geração, coleta e gerenciamento padronizado de dados de observabilidade — métricas, logs e rastreamentos. Quando as receitas foram elaboradas, o OpenTelemetry já oferecia suporte para instrumentação de RUM (Real User Monitoring), mas ainda não havia integração completa dos dados de RUM instrumentados com a interface de observabilidade da Elastic.
Essa limitação, no entanto, foi contornada ao utilizar o agente Elastic APM juntamente com o agente Elastic RUM JavaScript, o que permite correlacionar dados de desempenho do frontend com os insights de monitoramento do backend. Isso oferece uma visão abrangente tanto do lado do cliente quanto do servidor, fundamental para otimizar o desempenho das aplicações de forma mais eficaz. Embora o OpenTelemetry ainda não tenha sua integração totalmente consolidada, a flexibilidade oferecida por esse framework possibilita uma abordagem personalizada e adaptável para diversos cenários de instrumentação.
No restante deste capítulo, nos concentraremos na integração oficial do OpenTelemetry, explorando como ingerir dados de observabilidade utilizando o protocolo OpenTelemetry e como ampliar a coleta de dados por meio de diferentes pilares de observabilidade, incluindo métricas, logs, perfilamento e monitoramento sintético.
Instrumentação e monitoramento com OpenTelemetry
O objetivo desta seção é demonstrar como instrumentar uma aplicação utilizando os agentes e bibliotecas do OpenTelemetry, com a Stack Elastic como backend de observabilidade. Enquanto as receitas anteriores utilizaram os agentes Elastic APM para instrumentar as aplicações, nesta etapa a coleta de rastreamentos, logs e métricas será feita por meio dos agentes OpenTelemetry.
O OpenTelemetry proporciona uma abordagem padronizada para a coleta de dados de desempenho, o que facilita a integração e a análise de dados provenientes de sistemas distribuídos. Seu design busca promover a colaboração dentro da indústria, criando um repositório unificado de APIs e bibliotecas dedicadas ao monitoramento e à resolução de problemas em sistemas distribuídos. A escolha do OpenTelemetry como solução de instrumentação oferece flexibilidade ao desenvolvedor para selecionar as ferramentas e serviços mais adequados ao seu caso de uso, o que é uma das grandes vantagens do projeto.
A seguir, apresentamos o processo de configuração e instrumentação de uma aplicação utilizando o OpenTelemetry e a Stack Elastic.
Preparando o ambiente
Certifique-se de que seu cluster Kubernetes esteja operando conforme os requisitos mínimos especificados na documentação oficial do OpenTelemetry:
-
Kubernetes 1.24+
-
6 GB de RAM livre para a aplicação
-
Helm 3.9+
Além disso, será necessário ter um ambiente do Elastic Stack em funcionamento, com o servidor de integração habilitado. Para isso, é preciso criar um segredo no Kubernetes contendo a URL do APM Server e o token secreto, que são necessários para encaminhar os dados para o servidor APM hospedado na Elastic Cloud.
O processo a seguir descreve os passos para instrumentar a aplicação:
-
Obtenha a URL do APM Server e o token secreto.
-
Crie uma variável de ambiente para a URL do APM:
$ export APM_URL_WITHOUT_PREFIX. -
Crie uma variável de ambiente para o token secreto:
$ export APM_SECRET_TOKEN. -
Crie um segredo no Kubernetes com os dados da URL e token do APM:
$ kubectl create secret generic elastic-secret --from-literal=elastic_apm_endpoint=$APM_URL_WITHOUT_PREFIX --from-literal=elastic_apm_secret_token=$APM_SECRET_TOKEN. -
Utilize o Helm para instalar o aplicativo de demonstração oficial do OpenTelemetry:
$ helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-chartse atualize os repositórios:$ helm repo update. -
Instale o aplicativo de demonstração utilizando o arquivo values.yaml customizado.
-
Verifique se todos os pods estão em execução com o comando:
$ kubectl get pods. -
Acesse o frontend da aplicação utilizando o IP externo do serviço frontendproxy:
$ kubectl -n default get svc cookbook-otel-demo-frontendproxy.
Esse processo configura uma aplicação de demonstração instrumentada com OpenTelemetry, permitindo coletar dados de desempenho e monitoramento em tempo real através da Elastic Stack. Após a configuração, a interface de Observabilidade do Kibana permitirá visualizar os dados de desempenho coletados, oferecendo uma visão clara da saúde e do comportamento da aplicação.
Importante
A integração do OpenTelemetry com a Elastic Stack exige uma atenção cuidadosa à configuração do ambiente, principalmente ao gerenciar as variáveis de ambiente e os segredos no Kubernetes. Além disso, vale ressaltar que a instrumentação personalizada oferece um grau maior de flexibilidade na coleta de dados, mas requer um entendimento profundo do comportamento da aplicação e das métricas críticas a serem monitoradas.
Como Controlar a Quantidade de Dados nos Logs de Auditoria do Elasticsearch: Estratégias e Considerações
No contexto da configuração de logs de auditoria no Elasticsearch, é crucial entender como controlar o volume de eventos registrados e garantir que esses dados sejam gerenciáveis e úteis. A coleta de eventos é um processo fundamental para monitoramento e segurança, mas pode gerar uma quantidade significativa de dados que, se não gerenciada corretamente, pode sobrecarregar os sistemas de armazenamento e processamento. Existem duas opções principais para ajustar a quantidade de eventos gerados: a inclusão e a exclusão de eventos específicos.
A primeira opção, xpack.security.audit.logfile.events.include, permite especificar de forma explícita quais eventos devem ser registrados. Essa configuração é útil quando se deseja reduzir ou expandir os eventos capturados em relação ao padrão, tornando o sistema de auditoria mais eficiente e focado nas informações realmente necessárias. Já a segunda opção, xpack.security.audit.logfile.events.exclude, funciona de maneira inversa, permitindo excluir eventos específicos dos logs. Essa abordagem é indicada quando há a necessidade de filtrar dados desnecessários, garantindo que apenas os eventos relevantes sejam registrados.
Entretanto, nem todos os eventos têm o mesmo impacto na quantidade de dados gerados. Por exemplo, o evento xpack.security.audit.logfile.events.emit_request_body pode resultar em uma quantidade significativa de dados sendo registrada. Esse evento controla se o corpo das requisições REST deve ser incluído nos logs de auditoria. Embora a inclusão do corpo das requisições possa fornecer informações valiosas sobre o comportamento do usuário — como o tipo de requisição feita ou os índices mais acessados — ela também pode rapidamente sobrecarregar a infraestrutura de logs, especialmente em sistemas de grande escala. Portanto, deve-se usar essa funcionalidade com cautela, ativando-a apenas quando realmente necessário.
Uma recomendação importante, caso seja necessário manter os eventos de auditoria por períodos mais longos, é utilizar uma política de Gestão de Ciclo de Vida de Índices (ILM - Index Lifecycle Management). O ILM ajuda a otimizar a retenção de dados e o uso de recursos, permitindo que dados antigos sejam arquivados ou excluídos de forma eficiente, sem sobrecarregar o cluster de logs. Esse recurso é abordado com mais profundidade no Capítulo 12, onde é discutida a configuração de uma política de ciclo de vida de índices.
Por fim, ao gerenciar logs em clusters autogerenciados, é importante seguir as diretrizes da documentação oficial do Elasticsearch para configurar corretamente os logs de auditoria, o que garantirá uma coleta mais eficiente e segura dos dados de eventos. A documentação pode ser acessada no link https://www.elastic.co/guide/en/elasticsearch/reference/current/enable-audit-logging.html.
Ao implementar essas configurações e estratégias, os administradores podem evitar problemas de escalabilidade e manter a integridade do sistema de logs, sem perder a capacidade de monitorar e auditar de maneira eficaz. Além disso, a compreensão da configuração de logs de auditoria vai além da simples ativação ou desativação de eventos. É fundamental entender o impacto das escolhas feitas sobre o desempenho do sistema e o consumo de recursos.
Considerações Religiosas e Paliativas no Suporte Circulatório Mecânico
Como a Inteligência de Fonte Aberta e a Reconstrução da Web Podem Transformar Análises de Dados
A Falácia do Livre Mercado: Como a Propaganda Corporativa Manipula a Opinião Pública e Prejudica a Democracia

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский