Movatterモバイル変換


[0]ホーム

URL:


Skip to content
DEV Community
Log in Create account

DEV Community

Sysadminas profile imageThaynara Mendes
Thaynara Mendes forSysadminas

Posted on • Edited on

     

Conhecendo a ferramenta Opensearch

Heeey!

Podemos nos referir ao Opensearch como um fork do Elasticsearch e Kibana 7.10. Basicamente, o Opensearch é uma ferramente de monitoração de aplicação e análise de logs totalmente opensource (mas neste post vamos explorar um pouco mais sobre demais recursos que a ferramenta oferece).

Antes de tudo, vamos entender um pouco mais sobre o que a própria AWS nos conta sobre a ferramenta:

O que é Opensearch?

O OpenSearch é um conjunto distribuído de pesquisa e análise de código aberto usado para uma ampla variedade de casos de uso, como monitoramento de aplicações em tempo real, análise de logs e pesquisa de sites. O OpenSearch fornece um sistema altamente escalável para fornecer acesso rápido e resposta a grandes volumes de dados com uma ferramenta de visualização integrada, o OpenSearch Dashboards, que facilita a exploração de dados pelos usuários.
Assim como o Elasticsearch, o Opensearch oferece um mecanismo de pesquisa de texto completo distribuído baseado no Apache Lucene com uma interface de API RESTful e suporte para documentos JSON.

Qual a ideia por trás da criação?

Em 2021 a Elastic mudou a licença de software permissiva ALv2 para a Elastic License v2 (ELv2) and SSPL, essas licenças não seguem firmemente a ideia do Open Source e não oferecem as mesmas liberdades para os usuários. Logo, o opensearch virou um fork do Elasticsearch e Kibana na versão 7.10. Com o objetivo de oferecer uma ferramenta totalmente opensource para a comunidade.

Principais recursos do Opensearch que não fazem parte da licença free do Elasticsearch

RecursoBenefício
Segurança avançadaOferece recursos de criptografia, autenticação, autorização e auditoria. Eles incluem integrações com Active Directory, LDAP, SAML, Kerberos, tokens da Web JSON
Geração de relatóriosAgende, exporte e compartilhe relatórios de painéis, pesquisas salvas, alertas e visualizações.
Detecção de anomaliasAproveite a detecção de anomalias de Machine Learning com base no algoritmo Random Cut Forest (RCF) para detectar anomalias automaticamente à medida que seus dados são ingeridos. Combine com Alertas para monitorar dados quase em tempo real e enviar notificações de alertas automaticamente.
Analisador de performance e framework RCAConsulte várias métricas e agregações de performance do cluster. Use o PerfTop, a interface de linha de comando (CLI) para exibir e analisar essas métricas rapidamente. Use a framework de análise de causas-raiz (RCA) para investigar problemas de performance e confiabilidade em clusters.
Trace AnalyticsIngere e visualize dados OpenTelemetry para aplicações distribuídas. Visualize o fluxo de eventos entre essas aplicações para identificar problemas de performance.
Geração de alertasMonitore dados automaticamente e envie notificações de alertas automaticamente para as partes interessadas. Crie condições de alerta altamente específicas usando a linguagem de consulta completa e os recursos de script do OpenSearch.

Vamos a prática!

Vamos subir o Opensearch e o Opensearch dashboards na versão de teste, esta versão, o Opensearch já provisiona todas as configurações de segurança (certificados).

Garanta que você tenha odocker-compose instalado.

Garanta que a variávelvm.max_map_count esteja setada com o valor de 262144:

sysctl-w vm.max_map_count=262144
Enter fullscreen modeExit fullscreen mode

Essa configuração do sysctl não é permanente

Crie o arquivo docker-compose.yml:

version:'3'services:opensearch-node1:image:opensearchproject/opensearch:latestcontainer_name:opensearch-node1environment:-cluster.name=opensearch-cluster-node.name=opensearch-node1-discovery.seed_hosts=opensearch-node1,opensearch-node2-cluster.initial_master_nodes=opensearch-node1,opensearch-node2-bootstrap.memory_lock=true-"OPENSEARCH_JAVA_OPTS=-Xms1g-Xmx1g"ulimits:memlock:soft:-1hard:-1nofile:soft:65536hard:65536volumes:-opensearch-data1:/usr/share/opensearch/dataports:-9200:9200-9600:9600networks:-opensearch-netopensearch-node2:image:opensearchproject/opensearch:latestcontainer_name:opensearch-node2environment:-cluster.name=opensearch-cluster-node.name=opensearch-node2-discovery.seed_hosts=opensearch-node1,opensearch-node2-cluster.initial_master_nodes=opensearch-node1,opensearch-node2-bootstrap.memory_lock=true-"OPENSEARCH_JAVA_OPTS=-Xms1g-Xmx1g"ulimits:memlock:soft:-1hard:-1nofile:soft:65536hard:65536volumes:-opensearch-data2:/usr/share/opensearch/datanetworks:-opensearch-netopensearch-dashboards:image:opensearchproject/opensearch-dashboards:latestcontainer_name:opensearch-dashboardsports:-5601:5601expose:-"5601"environment:OPENSEARCH_HOSTS:'["https://opensearch-node1:9200","https://opensearch-node2:9200"]'networks:-opensearch-netvolumes:opensearch-data1:opensearch-data2:networks:opensearch-net:
Enter fullscreen modeExit fullscreen mode

Assim que salvar o arquivo, suba todos os serviços:

docker-compose up-d
Enter fullscreen modeExit fullscreen mode

Temos que ter 3 containers rodando, dois opensearch e um opensearch Dashboards

CONTAINER ID   IMAGE                                            COMMAND                  CREATED         STATUS              PORTS                                                                                                      NAMES7e1de85c3f8c   opensearchproject/opensearch-dashboards:latest"./opensearch-dashbo…"   2 minutes ago   Up About a minute   0.0.0.0:5601->5601/tcp, :::5601->5601/tcp                                                                  opensearch-dashboards40b047a9123e   opensearchproject/opensearch:latest"./opensearch-docker…"   2 minutes ago   Up About a minute   9200/tcp, 9300/tcp, 9600/tcp, 9650/tcp                                                                     opensearch-node2c72ebd7f6e3b   opensearchproject/opensearch:latest"./opensearch-docker…"   2 minutes ago   Up About a minute   0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 9300/tcp, 0.0.0.0:9600->9600/tcp, :::9600->9600/tcp, 9650/tcp   opensearch-node1
Enter fullscreen modeExit fullscreen mode

Agora basta acessar o Opensearch Dashboard na porta5601:
Opensearch Dashboards

Você consegue acessar com user admin, senha admin.

Inserindo dados para visualização

Para visualizar dados eu importei alguns dados.

NoMenu lateral, na área de Management, selecione oDev Tools.

Através do Dev Tools, é possível realizar requisições direto no nós de Opensearch.

Os nossos documentos não tem nenhum campo do tipo datetime (ele é necessário para uma melhor visualização e análise), então primeiro vamos criar uma pipeline que irá criar o campo "indexed_at" em todo arquivo que for adicionado:

PUT/_ingest/pipeline/timestamp{"description":"Adicionando o campo indexed_at nos documentos","processors":[{"set":{"field":"indexed_at","value":"{{_ingest.timestamp}}"}}]}
Enter fullscreen modeExit fullscreen mode

Vamos criar o índice e definir essa pipeline como default:

PUT/movies{"settings":{"index.default_pipeline":"timestamp"}}
Enter fullscreen modeExit fullscreen mode

Vamos adicionar um bulk request para alguns documentos:

PUT/movies/_bulk/{"index":{}}{"title":" Predestination","year":2014,"genre":["Action","Drama","Sci-Fi"]}{"index":{}}{"title":"Star Wars: Episode VII - The Force Awakens","year":2015,"genre":["Action","Adventure","Fantasy","Sci-Fi"]}{"index":{}}{"title":"Interstellar","year":2014,"genre":["Sci-Fi","Adventure","Drama"]}{"index":{}}{"title":"Venom","year":2018,"genre":["Action"," Adventure","Sci-Fi"]}{"index":{}}{"title":"A Quiet Place Part II","year":2020,"genre":["Horror","Sci-Fi","Drama"]}{"index":{}}{"title":"Donnie Darko","year":2001,"genre":["Drama","Sci-Fi","Mistery"]}{"index":{}}{"title":"Black Widow","year":2021,"genre":["Action"," Adventure","Sci-Fi"]}{"index":{}}{"title":"Nobody","year":2021,"genre":["Action","Drama","Crime"]}{"index":{}}{"title":"The Dark Knight","year":2008,"genre":["Action","Drama","Crime"]}{"index":{}}{"title":"Inception","year":2010,"genre":["Action"," Adventure","Sci-Fi"]}{"index":{}}{"title":" The Matrix","year":1999,"genre":["Action","Sci-Fi"]}{"index":{}}{"title":"Avatar","year":2009,"genre":["Action"," Adventure","Fantasy"]}{"index":{}}{"title":"Ex Machina","year":2014,"genre":["Action"," Adventure","Sci-Fi"]}{"index":{}}{"title":" The Hobbit: An Unexpected Journey","year":2012,"genre":[" Adventure","Fantasy"]}{"index":{}}{"title":"Wonder Woman","year":2017,"genre":["Action"," Adventure","Fantasy"]}
Enter fullscreen modeExit fullscreen mode

Clique em um ícone de play para enviar a requisição:
Opensearch Dashboards-Dev Tools

Configurando Index Pattern

Ao retornar noDiscover aparecerá uma página para criar oIndex Pattern, clique emCreate index pattern:

Index pattern name: movies*

Time field: indexed_at

Clique emCreate Index pattern

Aparecerá todos os campos existentes neste index, podemos alterar o modo de visualização. Por exemplo:

Acesse o campoyear e clique no ícone de editar:

Format: Number
Numeral.js format pattern: 0

Opensearch Dashboards- movies-fields

Clique emSave field

Após retornar para oDiscover, já conseguimos visualizar os documentos que adicionamos:
Opensearch Dashboards-Discover

Um recurso que faz falta no Opensearch Dashboard é o Lens. Não foi possível inseri-lo porque esta feature do Kibana não é Open Source.

Espero que tenham gostado da ferramenta!
Até mais o/

Top comments(0)

Subscribe
pic
Create template

Templates let you quickly answer FAQs or store snippets for re-use.

Dismiss

Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment'spermalink.

For further actions, you may consider blocking this person and/orreporting abuse

sysadminas

More fromSysadminas

DEV Community

We're a place where coders share, stay up-to-date and grow their careers.

Log in Create account

[8]ページ先頭

©2009-2025 Movatter.jp