Kibana

Este documento descreve como configurar a implementação do Google Kubernetes Engine para que possa usar o Google Cloud Managed Service for Prometheus para recolher métricas do Kibana. Este documento mostra como fazer o seguinte:

  • Configure o Kibana para comunicar métricas.
  • Aceda a um painel de controlo no Cloud Monitoring para ver as métricas.
  • Configure regras de alerta para monitorizar as métricas.

Estas instruções aplicam-se apenas se estiver a usar a recolha gerida com o serviço gerido para Prometheus. Se estiver a usar a recolha implementada automaticamente, consulte a documentação do Kibana para obter informações de instalação.

Estas instruções são fornecidas como exemplo e espera-se que funcionem na maioria dos ambientes do Kubernetes. Se estiver com problemas na instalação de uma aplicação ou de um exportador devido a políticas organizacionais ou de segurança restritivas, recomendamos que consulte a documentação de código aberto para receber apoio técnico.

Para informações sobre o Kibana, consulte Kibana.

Pré-requisitos

Para recolher métricas do exportador do Kibana através do Managed Service for Prometheus e da recolha gerida, a sua implementação tem de cumprir os seguintes requisitos:

  • O cluster tem de estar a executar a versão 1.28.15-gke.2475000 ou posterior do Google Kubernetes Engine.
  • Tem de estar a executar o Managed Service for Prometheus com a recolha gerida ativada. Para mais informações, consulte o artigo Comece a usar a recolha gerida.

  • Para usar os painéis de controlo disponíveis no Cloud Monitoring para a integração do Kibana, tem de usar a versão 8.0.0 ou posterior.kibana-prometheus-exporter

    Para mais informações acerca dos painéis de controlo disponíveis, consulte o artigo Ver painéis de controlo.

O Kibana expõe métricas no formato Prometheus apenas depois de instalar o plug-in do exportador do Kibana. Para instalar o plug-in, siga as instruções de instalação.

O processo de instalação requer a utilização do bin/kibana-plugin install PLUGIN. Uma forma de instalar o plug-in é definir uma imagem Docker do Kibana personalizada. Consulte o seguinte exemplo:

  FROM kibana:KIBANA_VERSION
  RUN bin/kibana-plugin install https://github.com/pjhampton/kibana-prometheus-exporter/releases/download/PLUGIN_VERSION/kibanaPrometheusExporter-PLUGIN_VERSION.zip

Depois de criar a imagem e enviá-la para um repositório remoto, pode usá-la na implementação do Kubernetes. Por exemplo:

  apiVersion: v1
  kind: ConfigMap
  metadata:
    name: kibana
  data:
    kibana.yml: |
      server.name: kibana
      server.host: "0.0.0.0"
      # Update this with credentials to match your Elasticsearch instance
      elasticsearch.hosts: http://username:password@elasticsearch-service-name:9200
  ---
  apiVersion: apps/v1
  kind: Deployment
  metadata:
    name: kibana
    labels:
      app.kubernetes.io/name: kibana
  spec:
    ...
    template:
      ...
      spec:
        containers:
        - name: kibana
          image: CUSTOM_IMAGE
          ports:
          - containerPort: 5601
            name: kibana
            protocol: TCP
          volumeMounts:
          - mountPath: /usr/share/kibana/config/kibana.yml
            subPath: kibana.yml
            name: kibana
        volumes:
        - name: kibana
          configMap:
            name: kibana
            items:
            - key: kibana.yml
              path: kibana.yml

Para verificar se o exportador do Kibana está a emitir métricas nos pontos finais esperados, faça o seguinte:

  1. Configure o encaminhamento de portas com o seguinte comando:

    kubectl -n NAMESPACE_NAME port-forward POD_NAME 5601
    
  2. Aceda ao ponto final localhost:5601/_prometheus/metrics através do navegador ou da utilidade curl noutra sessão de terminal.

Defina um recurso PodMonitoring

Para a deteção de destinos, o operador do Managed Service for Prometheus requer um recurso PodMonitoring que corresponda ao exportador do Kibana no mesmo espaço de nomes.

Pode usar a seguinte configuração PodMonitoring:

# Copyright 2024 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

apiVersion: monitoring.googleapis.com/v1
kind: PodMonitoring
metadata:
  name: kibana
  labels:
    app.kubernetes.io/name: kibana
    app.kubernetes.io/part-of: google-cloud-managed-prometheus
spec:
  endpoints:
  - port: 5601
    scheme: http
    interval: 30s
    path: /_prometheus/metrics
  selector:
    matchLabels:
     app.kubernetes.io/name: kibana

Para aplicar alterações de configuração a partir de um ficheiro local, execute o seguinte comando:

kubectl apply -n NAMESPACE_NAME -f FILE_NAME

Também pode usar o Terraform para gerir as suas configurações.

Defina regras e alertas

Pode usar a seguinte configuração Rules para definir alertas nas suas métricas do Kibana:

# Copyright 2024 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

apiVersion: monitoring.googleapis.com/v1
kind: Rules
metadata:
  name: kibana-rules
  labels:
    app.kubernetes.io/component: rules
    app.kubernetes.io/name: kibana-rules
    app.kubernetes.io/part-of: google-cloud-managed-prometheus
spec:
  groups:
  - name: kibana
    interval: 30s
    rules:
    - alert: KibanaHighCPUUsage
      annotations:
        description: |-
          Kibana high cpu usage
            VALUE = {{ $value }}
            LABELS: {{ $labels }}
        summary: Kibana high cpu usage (instance {{ $labels.instance }})
      expr: kibana_os_load5 >= 90
      for: 5m
      labels:
        severity: critical
    - alert: KibanaHighMemoryUsage
      annotations:
        description: |-
          Kibana high memory usage
            VALUE = {{ $value }}
            LABELS: {{ $labels }}
        summary: Kibana high memory usage (instance {{ $labels.instance }})
      expr: kibana_os_mem_bytes_used / kibana_os_mem_bytes_total >= 0.9
      for: 5m
      labels:
        severity: critical

Para aplicar alterações de configuração a partir de um ficheiro local, execute o seguinte comando:

kubectl apply -n NAMESPACE_NAME -f FILE_NAME

Também pode usar o Terraform para gerir as suas configurações.

Para mais informações sobre a aplicação de regras ao seu cluster, consulte o artigo Avaliação e alertas de regras geridas.

Pode ajustar os limites de alerta de acordo com a sua aplicação.

Valide a configuração

Pode usar o Explorador de métricas para verificar se configurou corretamente o exportador do Kibana. O Cloud Monitoring pode demorar um ou dois minutos a carregar as suas métricas.

Para verificar se as métricas são carregadas, faça o seguinte:

  1. Na Google Cloud consola, aceda à página  Explorador de métricas:

    Aceda ao Metrics Explorer

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.

  2. Na barra de ferramentas do painel do criador de consultas, selecione o botão cujo nome é  MQL ou  PromQL.
  3. Verifique se a opção PromQL está selecionada no botão Idioma. O botão para alternar o idioma encontra-se na mesma barra de ferramentas que lhe permite formatar a consulta.
  4. Introduza e execute a seguinte consulta:
    up{job="kibana", cluster="CLUSTER_NAME", namespace="NAMESPACE_NAME"}

Veja painéis de controlo

A integração do Cloud Monitoring inclui o painel de controlo Vista geral do Kibana Prometheus. Os painéis de controlo são instalados automaticamente quando configura a integração. Também pode ver pré-visualizações estáticas de painéis de controlo sem instalar a integração.

Para ver um painel de controlo instalado, faça o seguinte:

  1. Na Google Cloud consola, aceda à página  Painéis de controlo:

    Aceda a Painéis de controlo

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.

  2. Selecione o separador Lista do painel de controlo.
  3. Escolha a categoria Integrações.
  4. Clique no nome do painel de controlo, por exemplo, Vista geral do Kibana Prometheus.

Para ver uma pré-visualização estática do painel de controlo, faça o seguinte:

  1. Na Google Cloud consola, aceda à página  Integrações:

    Aceda a Integrações

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.

  2. Clique no filtro de plataforma de implementação Kubernetes Engine.
  3. Localize a integração do Kibana e clique em Ver detalhes.
  4. Selecione o separador Painéis de controlo.

Resolução de problemas

Para informações sobre a resolução de problemas de carregamento de métricas, consulte a secção Problemas com a recolha de exportadores em Resolução de problemas do lado do carregamento.