Depois de criar regras de alerta no projeto de appliance isolado do Google Distributed Cloud (GDC), é possível consultar e visualizar alertas em painéis na interface do usuário (UI) da instância de monitoramento do sistema do projeto ou consultar alertas na API HTTP de observabilidade do GDC.
Consultar e visualizar alertas em painéis
É possível conferir os alertas nos painéis da instância do Grafana do projeto platform-obs
, também chamada de instância de monitoramento do sistema.
instância de monitoramento do sistema do projeto platform-obs
.
A instância de monitoramento do sistema inclui métricas, registros e alertas no nível do projeto para realizar processos de monitoramento, como monitoramento de rede e de servidor.
Antes de começar
Antes de consultar e visualizar alertas nos painéis, você precisa ter acesso à instância de monitoramento do sistema. Para mais informações, consulte Acessar painéis.
Para fazer login e visualizar alertas, peça ao administrador de IAM do projeto para conceder a você o papel de leitor do Grafana do projeto (project-grafana-viewer
). Esse processo de controle de acesso baseado em função permite acessar visualizações de dados com segurança.
Endpoint da instância de monitoramento do sistema
Para operador de aplicativo (AO, na sigla em inglês):
Abra o seguinte URL para acessar o endpoint do seu projeto:
https://GDC_URL/PROJECT_NAMESPACE/grafana
Substitua:
- GDC_URL: o URL da sua organização no GDC.
- PROJECT_NAMESPACE: o namespace do projeto.
A UI do projeto contém painéis padrão, como o Alertas – Visão geral, com informações sobre alertas. Ao consultar alertas na UI, você pode recuperar visualmente informações de alerta do seu projeto e ter uma visão integrada dos recursos para reconhecimento e resolução rápida de problemas.
Para administradores da plataforma (PA, na sigla em inglês):
Abra o seguinte URL para acessar o endpoint do seu projeto platform-obs
:
https://GDC_URL/platform-obs/grafana
Substitua GDC_URL pelo URL da sua organização no GDC.
A interface do usuário (UI) da instância de monitoramento do sistema contém painéis padrão, como o Alertas – Visão geral, com informações sobre alertas para observabilidade de dados. Ao consultar alertas na UI, você pode recuperar visualmente informações de alerta do seu projeto e ter uma visão integrada dos recursos para reconhecimento e resolução rápida de problemas.
Figura 1. O painel Alertas – Visão geral na interface do Grafana.
Alertmanager
O Alertmanager permite monitorar notificações de alerta de aplicativos clientes. É possível inspecionar e silenciar alertas usando o Alertmanager, além de filtrar ou agrupar alertas:
Figura 2. Opção de menu para consultar registros de auditoria do Alertmanager.
Políticas de alertas predefinidas
A tabela a seguir lista as regras de alerta pré-instaladas no Prometheus:
Nome | Descrição |
---|---|
KubeAPIDown (crítico) | A KubeAPI desapareceu da descoberta de destino do Prometheus por 15 minutos. |
KubeClientErrors (aviso) | Proporção de erros do cliente do servidor da API Kubernetes > 0,01 por 15 minutos. |
KubeClientErrors (crítico) | Proporção de erros do cliente do servidor da API Kubernetes > 0,1 por 15 minutos. |
KubePodCrashLooping (aviso) | O pod está em um estado de loop de falha há mais de 15 minutos. |
KubePodNotReady (aviso) | O pod está em estado não pronto há mais de 15 minutos. |
KubePersistentVolumeFillingUp (crítico) | Bytes livres de um PersistentVolume solicitado < 0,03. |
KubePersistentVolumeFillingUp (aviso) | Bytes livres de um PersistentVolume solicitado < 0,15. |
KubePersistentVolumeErrors (crítico) | O volume permanente está na fase "Com falha" ou "Pendente" por cinco minutos. |
KubeNodeNotReady (aviso) | O nó está inativo há mais de 15 minutos. |
KubeNodeCPUUsageHigh (crítico) | O uso da CPU do nó é > 80%. |
KubeNodeMemoryUsageHigh (crítico) | O uso da memória do nó é > 80%. |
NodeFilesystemSpaceFillingUp (aviso) | O uso do sistema de arquivos de nós é > 60%. |
NodeFilesystemSpaceFillingUp (crítico) | O uso do sistema de arquivos do nó é > 85%. |
CertManagerCertExpirySoon (aviso) | O certificado expira em 21 dias. |
CertManagerCertNotReady (crítico) | Um certificado não está pronto para exibir tráfego após 10 minutos. |
CertManagerHittingRateLimits (crítico) | Foi alcançado um limite de taxa para a criação e renovação de certificados por cinco minutos. |
DeploymentNotReady (crítico). | Uma implantação no cluster de administrador da organização está em estado não pronto há mais de 15 minutos. |
Amostra de alertmanagerConfigurationConfigmaps
A sintaxe das configurações em ConfigMaps listada em alertmanagerConfigurationConfigmaps
precisa seguir https://prometheus.io/docs/alerting/latest/configuration/
apiVersion: observability.gdc.goog/v1alpha1
kind: ObservabilityPipeline
metadata:
# Choose namespace that matches the project's namespace
namespace: kube-system
name: observability-config
# Configure Alertmanager
alerting:
# Storage size for alerting data within organization
# Permission: PA
localStorageSize: 1Gi
# Permission: PA & AO
# alertmanager config must be under the key "alertmanager.yml" in the configMap
alertmanagerConfig: <configmap-for-alertmanager-config>
# Permission: PA
volumes:
- <volume referenced in volumeMounts>
# Permission: PA
volumeMounts:
- <volumeMount referenced in alertmanagerConfig>
Exemplo de configuração de regra
# Configures either an alert or a target record for precomputation
apiVersion: monitoring.gdc.goog/v1alpha1
kind: MonitoringRule
metadata:
# Choose namespace that contains the metrics that rules are based on
# Note: alert/record will be produced in the same namespace
namespace: g-fleetns-a
name: alerting-config
spec:
# Rule evaluation interval
interval: <duration>
# Configure limit for number of alerts (0: no limit)
# Optional, Default: 0 (no limit)
limit: <int>
# Configure record rules
recordRules:
# Define which timeseries to write to (must be a valid metric name)
- record: <string>
# Define PromQL expression to evaluate for this rule
expr: <string>
# Define labels to add or overwrite
# Optional, Map of {key, value} pairs
labels:
<labelname>: <labelvalue>
# Configure alert rules
alertRules:
# Define alert name
- alert: <string>
# Define PromQL expression to evaluate for this rule
# https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/
expr: <string>
# Define when an active alert moves from pending to firing
# Optional, Default: 0s
for: <duration>
# Define labels to add or overwrite
# Required, Map of {key, value} pairs
# Required labels:
# severity: [error, critical, warning, info]
# code:
# resource: component/service/hardware related to alert
# additional labels are optional
labels:
severity: <enum: [error, critical, warning, info]>
code:
resource: <Short name of the related operable component>
<labelname>: <tmpl_string>
# Define annotations to add
# Optional, Map of {key, value} pairs
# Recommended annotations:
# message: value of Message field in UI
# expression: value of Rule field in UI
# runbookurl: URL for link in Actions to take field in UI
annotations:
<labelname>: <tmpl_string>
# Configures either an alert or a target record for precomputation
apiVersion: logging.gdc.goog/v1alpha1
kind: LoggingRule
metadata:
# Choose namespace that contains the logs that rules are based on
# Note: alert/record will be produced in the same namespace
namespace: g-fleetns-a
name: alerting-config
spec:
# Choose which log source to base alerts on (Operational/Audit/Security Logs)
# Optional, Default: Operational
source: <string>
# Rule evaluation interval
interval: <duration>
# Configure limit for number of alerts (0: no limit)
# Optional, Default: 0 (no limit)
limit: <int>
# Configure record rules
recordRules:
# Define which timeseries to write to (must be a valid metric name)
- record: <string>
# Define LogQL expression to evaluate for this rule
# https://grafana.com/docs/loki/latest/rules/
expr: <string>
# Define labels to add or overwrite
# Optional, Map of {key, value} pairs
labels:
<labelname>: <labelvalue>
# Configure alert rules
alertRules:
# Define alert name
- alert: <string>
# Define LogQL expression to evaluate for this rule
expr: <string>
# Define when an active alert moves from pending to firing
# Optional, Default: 0s
for: <duration>
# Define labels to add or overwrite
# Required, Map of {key, value} pairs
# Required labels:
# severity: [error, critical, warning, info]
# code:
# resource: component/service/hardware related to alert
# additional labels are optional
labels:
severity: <enum: [error, critical, warning, info]>
code:
resource: <Short name of the related operable component>
<labelname>: <tmpl_string>
# Define annotations to add
# Optional, Map of {key, value} pairs
# Recommended annotations:
# message: value of Message field in UI
# expression: value of Rule field in UI
# runbookurl: URL for link in Actions to take field in UI
annotations:
<labelname>: <tmpl_string>
Consultar alertas da API HTTP
A plataforma de observabilidade expõe um endpoint de API HTTP para consultar e ler métricas, alertas e outros dados de série temporal do seu projeto para monitoramento do sistema.Consulte alertas diretamente da API HTTP de observabilidade para configurar tarefas automatizadas, adaptar respostas e criar integrações de acordo com seu caso de uso. Por exemplo, insira a saída em outro comando, exporte detalhes para formatos de arquivo de texto ou configure um cron job do Linux. É possível chamar a API HTTP de observabilidade na interface de linha de comando (CLI) ou em um navegador da Web e receber o resultado no formato JSON.
Esta seção explica como chamar o endpoint de API HTTP de observabilidade da CLI usando a especificação da APIpara consultar alertas.
Consulte alertas diretamente da API HTTP de observabilidade para configurar tarefas automatizadas, adaptar respostas e criar integrações de acordo com seu caso de uso. Por exemplo, insira a saída em outro comando, exporte detalhes para formatos de arquivo de texto ou configure um cron job do Linux. É possível chamar a API HTTP de observabilidade na interface de linha de comando (CLI) ou em um navegador da Web e receber o resultado no formato JSON.
Esta seção explica como chamar o endpoint de API HTTP de observabilidade na CLI usando a especificação da API Alertmanager para consultar métricas.
Antes de começar
Para receber as permissões necessárias para acessar o endpoint de API HTTP de observabilidade, peça ao administrador do IAM do projeto para conceder a você a função de leitor do Alertmanager do Project Cortex (project-cortex-alertmanager-viewer
) no namespace do projeto.
O administrador do IAM do projeto pode conceder acesso criando uma vinculação de função:
a. Administrador raiz do operador de infraestrutura (IO) - Project Cortex Alertmanager Viewer
:
kubectl --kubeconfig $HOME/root-admin-kubeconfig create rolebinding
io-cortex-alertmanager-viewer-binding -n infra-obs
--user=fop-infrastructure-operator@example.com
--role=project-cortex-alertmanager-viewer
b. Administrador da plataforma (PA) Administrador raiz: Project Cortex Alertmanager Viewer
kubectl --kubeconfig $HOME/root-admin-kubeconfig create rolebinding
pa-cortex-alertmanager-viewer-binding -n platform-obs
--user=fop-platform-admin@example.com
--role=project-cortex-alertmanager-viewer
c. Administrador raiz do operador de aplicativos (AO) - Leitor do Alertmanager do Project Cortex: Projeto: $AO_PROJECT Nome de usuário do AO: $AO_USER
kubectl --kubeconfig $HOME/root-admin-kubeconfig create rolebinding
project-cortex-alertmanager-viewer-binding -n $AO_PROJECT
--user=$AO_USER
--role=project-cortex-alertmanager-viewer
Depois que a vinculação de função for criada, você poderá acessar o Alertmanager correspondente com seu nome de usuário de login.
Verificar a vinculação de papéis
kubectl --kubeconfig $HOME/org-1-admin-kubeconfig get rolebinding -n platform-obs
Para informações sobre como definir vinculações de função no console do GDC, consulte Conceder acesso a recursos.
Endpoint do Cortex
O URL a seguir é o endpoint do Cortex para acessar alertas:
https://GDC_URL/PROJECT_NAME/cortex/alertmanager/
Substitua:
- GDC_URL: o URL da sua organização no GDC.
- PROJECT_NAME: o nome do projeto.
Chamar o endpoint de API
Siga estas etapas para acessar o endpoint de API Cortex na CLI e consultar alertas:
- Verifique se você atende aos pré-requisitos.
- Abra a CLI.
Use a ferramenta
curl
para chamar o URL do endpoint do Cortex e estenda o URL usando o https://prometheus.io/docs/prometheus/latest/querying/api/#alertmanagers padrão para consultar alertas. Exemplo:curl https://console.org-1.zone1.google.gdch.test/alice/cortex/alertmanager/api/v1/alertmanagers
Você vai receber a saída na CLI após o comando. O formato de resposta da API é JSON.