Um Alertmanager é instalado no cluster de administrador para coletar e entregar alertas. Consulte Políticas de alerta predefinidas para regras de alerta predefinidas.
Configurar os canais de notificação
Crie um configmap com as configurações do alertmanager no namespace
kube-system
com o rótulologmon: system_metrics
. A configuração do alertmanager tem a mesma sintaxe das regras de configuração do alertmanager e deve ser adicionada aalertmanager.yml
no campodata
. Veja as amostras de arquivos de configuração.Siga a configuração do alertmanager para definir os canais de notificação na configuração do Alertmanager.
(Opcional) Se você quiser usar webhooks do Slack, consulte Webhooks do Slack para informações sobre como ativar o webhook.
apiVersion: v1 kind: ConfigMap metadata: # The name should match the configmap name specified in step 3. name: <customized-alertmanager-configmap-name> # Don't change the namespace namespace: kube-system labels: # This label is required. logmon: system_metrics data: # The file name must be alertmanager.yml alertmanager.yml: | # Add the customized alertmanager configuration here
Execute o comando a seguir para abrir o recurso personalizado
LogMon
em um editor de linha de comando:kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
No recurso personalizado
LogMon
, adicione o campoalertmanagerConfigurationConfigmaps
ao campospec/system_metrics/outputs/default_prometheus/deployment/alertmanager
.apiVersion: addons.gke.io/v1alpha1 kind: Logmon metadata: # Don't change the name name: logmon-default # Don't change the namespace namespace: kube-system spec: system_metrics: outputs: default_prometheus: deployment: components: alertmanager: alertmanagerConfigurationConfigmaps: # The name should match the configmap name created in step 1. - "<customized-alertmanager-configmap-name>"
Para salvar as alterações no recurso personalizado
LogMon
, salve e saia do editor de linha de comando.
[Opcional] Personalizar políticas de alertas
Crie um configmap com regras do Prometheus no namespace
kube-system
com ologmon: system_metrics label
. No Prometheus, a definição de regras tem a mesma sintaxe das regras de alerta e das regras de gravação. É possível incluir vários arquivos de regras do Prometheus no configmap. Veja as amostras de arquivos de configuração.apiVersion: v1 kind: ConfigMap metadata: # The name should match the configmap name specified in step 3. name: <customized-prometheus-rules-configmap-name> # Don't change the namespace namespace: kube-system labels: # This label is required. logmon: system_metrics data: # The file name must be unique across all customized prometheus rule files. <a-unique-file-name>: | # Add customized recording rules here … # The file name must be unique across all customized prometheus rule files. <a-unique-file-name>: | # Add customized alerting rules here …
Execute o comando a seguir para abrir o recurso personalizado
LogMon
em um editor de linha de comando:kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
No recurso personalizado
LogMon
, adicione o campoprometheusRulesConfigmaps
ao campospec/system_metrics/outputs/default_prometheus/deployment/prometheus
.apiVersion: addons.gke.io/v1alpha1 kind: Logmon metadata: # Don't change the name name: logmon-default # Don't change the namespace namespace: kube-system spec: system_metrics: outputs: default_prometheus: deployment: components: prometheus: prometheusRulesConfigmaps: # The name should match the configmap name created in step 1. - "<customized-prometheus-rules-configmap-name>"
Para salvar as alterações no recurso personalizado
LogMon
, salve e saia do editor de linha de comando.
Painel da visão geral de alertas
Um painel de visão geral de alertas está disponível nos painéis do Monitoring:
Políticas de alerta predefinidas
Veja a seguir 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á no 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 nós do nó é > 85%. |
CertManagerAbsent (crítico) | O cert-manager desaparece do Prometheus por 10 minutos. É possível que os certificados não estejam criando / renovando corretamente. |
CertManagerCertExpirySoon (aviso) | O certificado expira em 21 dias. |
CertManagerCertNotReady (crítico) | Um certificado não está pronto para ser usado para exibir tráfego após 10 minutos. |
CertManagerHittingRateLimits (crítico) | Foi alcançado um limite de taxa para a criação / renovação de certificados por cinco minutos. |