Olá!

O Elasticsearch é uma solução poderosa para busca e análise de dados, mas sua operação no OpenShift pode apresentar desafios. Se seu cluster não está funcionando corretamente, este guia fornece os principais passos para investigação e resolução de problemas.

O que é o Elastic Operator?

O Elastic Operator é um operador Kubernetes que facilita a implantação, gerenciamento e escalabilidade do Elasticsearch dentro do OpenShift e outras plataformas Kubernetes. Ele permite a automação de tarefas como:

  • Implantação de clusters Elasticsearch, Kibana e outros componentes do Elastic Stack.
  • Monitoramento do estado do cluster e reconfiguração automática em caso de falhas.
  • Gerenciamento de atualizações e upgrades do Elasticsearch de forma controlada.

Com o Elastic Operator, a complexidade da administração manual do Elasticsearch é reduzida, tornando o cluster mais resiliente e confiável.


1. Verificando o Status do Elastic Operator

O Elastic Operator gerencia os recursos do Elasticsearch no OpenShift. Se ele não estiver funcionando corretamente, o cluster pode falhar na inicialização ou apresentar problemas na execução.

Verificar os Pods do Elastic Operator

oc get pods -n <namespace>

Saída esperada:

NAME                                    READY   STATUS    RESTARTS   AGE
elastic-operator-xxxxx-xxxxx            1/1     Running   0          5m

Se o status não for Running, verifique os logs do operador:

oc logs -l control-plane=elastic-operator -n <namespace>

Verificar os Eventos do Operator

oc get events -n <namespace> --sort-by=.metadata.creationTimestamp

Isso ajuda a identificar falhas recentes.


2. Verificando o Status do Elasticsearch Cluster

Listar os Recursos do Elasticsearch

oc get elasticsearch -n <namespace>

Saída esperada:

NAME                   HEALTH   NODES   VERSION   PHASE
<cluster-name>         green    3       8.5.0     Ready
  • Green = Tudo funcionando normalmente.
  • Yellow = Algumas réplicas podem estar indisponíveis.
  • Red = Problema crítico, possíveis falhas no acesso aos dados.

Verificar os Pods do Elasticsearch

oc get pods -n <namespace> -l elasticsearch.k8s.elastic.co/cluster-name=<cluster-name>

Saída esperada:

NAME                                 READY   STATUS    RESTARTS   AGE
<cluster-name>-es-default-0          1/1     Running   0          10m
<cluster-name>-es-default-1          1/1     Running   0          10m
<cluster-name>-es-default-2          1/1     Running   0          10m

Se algum pod estiver Pending, CrashLoopBackOff ou Terminating, pode haver problemas de armazenamento ou agendamento.

Verificar Logs do Elasticsearch

oc logs <cluster-name>-es-default-0 -n <namespace>

Isso pode revelar falhas como problemas de autenticação, conectividade ou armazenamento.

Verificar o Status do Cluster via API

oc exec -n <namespace> <cluster-name>-es-default-0 -- curl -X GET "https://<cluster-name>-es-http:9200/_cluster/health?pretty" -k -u elastic:<senha>

Essa requisição retorna informações detalhadas do cluster, incluindo estado, nós ativos e problemas detectados.


3. Verificando o Status do Kibana

Se Kibana foi implantado junto ao Elasticsearch, ele também pode indicar problemas no cluster.

Verificar os Pods do Kibana

oc get pods -n <namespace> -l kibana.k8s.elastic.co/name=<cluster-name>

Saída esperada:

NAME                              READY   STATUS    RESTARTS   AGE
<cluster-name>-kb-xxxxx           1/1     Running   0          10m

Se estiver em CrashLoopBackOff, verifique os logs:

oc logs <cluster-name>-kb-xxxxx -n <namespace>

Para acessar Kibana:

oc get route -n <namespace>

Isso retorna o link para acesso.


4. Verificando PVCs e Storage do Elasticsearch

Problemas no Persistent Volume Claim (PVC) podem impedir o Elasticsearch de inicializar corretamente.

Verificar PVCs Associados

oc get pvc -n <namespace>

Se algum PVC estiver Pending, pode haver falta de volumes disponíveis.

Para verificar o estado dos volumes:

oc get pv

Se necessário, remova um PVC problemático (ATENÇÃO: Isso pode resultar em perda de dados):

oc delete pvc <pvc-name> -n <namespace> --force --grace-period=0

5. Verificando a Configuração de Tolerations

Se os pods do Elasticsearch não estão sendo programados corretamente, pode haver restrições de tolerations e nodeSelector.

Verificar as Tolerations Configuradas

oc get configmap rook-ceph-operator-config -n <namespace> -o yaml | grep ROOK_CEPH_TOLERATIONS -A5

Se necessário, adicione tolerations para permitir a execução em todos os nós:

oc patch configmap rook-ceph-operator-config -n <namespace> --type=merge -p '{
  "data": {
    "ROOK_CEPH_TOLERATIONS": "- operator: Exists"
  }
}'

Depois, reinicie o operador:

oc delete pod -l app=rook-ceph-operator -n <namespace>

Conclusão

Seguir esses passos ajuda a identificar e resolver problemas comuns no Elasticsearch dentro do OpenShift. Os principais pontos de atenção incluem:

Status do Elastic Operator

Saúde do Cluster Elasticsearch

Verificação dos Pods do Elasticsearch e Kibana

Armazenamento e PVCs

Tolerations e Node Scheduling

Caso encontre erros específicos, os logs dos pods são a melhor forma de entender o problema e aplicar a correção adequada. Se precisar de suporte adicional, consulte a documentação oficial do Elasticsearch ou a equipe responsável pelo OpenShift no seu ambiente.

Se este guia foi útil, compartilhe com sua equipe! 🚀

Deixe um comentário

Tendência