A integração do Prometheus no ARMS Alert Management recebe eventos de alerta de instâncias do Prometheus autogerenciadas e os encaminha pelo pipeline de alertas do ARMS. É possível conectar instâncias do Prometheus gerenciadas pelo Prometheus-Operator ou outras implantações autogerenciadas.
Informações básicas
O Prometheus open source envia alertas para o Alertmanager. Configure <alertmanager_config> no arquivo Prometheus.yaml para enviar alertas ao ARMS Alert Management. Para referência de configuração, consulte [[alertmanager_config]](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#alertmanager_config).
O ARMS Alert Management oferece um endpoint compatível com o Alertmanager para o Prometheus open source. Ao criar uma integração do Prometheus, o ARMS Alert Management gera um endereço de integração e um bearer token que sua instância do Prometheus utiliza para enviar alertas.
Pré-requisitos
Acesso ao console do ARMS. Obtenha o bearer token para autenticação na página de configurações da integração após criá-la.
Para o método Prometheus-Operator:
kubectlinstalado e configurado com acesso ao seu cluster Kubernetes.Para outras instâncias do Prometheus autogerenciadas: acesso de escrita ao arquivo de configuração
prometheus.yamlno host do Prometheus.
Etapa 1: Criar uma integração e conectar uma instância do Prometheus autogerenciada
Faça login no console do ARMS. No painel de navegação à esquerda, escolha .
Na aba
Alert Integration
clique em
Prometheus
.
-
Na caixa de diálogo New Prometheus Integration, insira o nome e a descrição da integração do Prometheus, além do tempo de recuperação automática dos eventos de alerta e clique em Save.Instâncias do Prometheus gerenciadas pelo Prometheus-OperatorOutras instâncias do Prometheus autogerenciadasOK
NotaTempo de recuperação automática após timeout: se um evento de alerta não for acionado novamente dentro do período especificado, o sistema limpará o evento automaticamente.
Selecione o método de conexão com base na implantação do seu Prometheus. Se o Prometheus estiver implantado via Prometheus-Operator, selecione
. Caso contrário, selecione
. Em seguida, clique em
.
Instâncias do Prometheus gerenciadas pelo Prometheus-Operator
Crie o arquivo arms-alertmanager-config.yaml na sua máquina local e cole o seguinte conteúdo nele.
- scheme: https
bearer_token: ******
static_configs:
- targets: ['alerts.aliyuncs.com']
Obtenha o valor de bearer_token no console do ARMS após criar a integração. Substitua ****** pelo token real.
Use o arquivo arms-alertmanager-config.yaml para criar um secret chamado arms-am-config.
kubectl create secret generic arms-am-config --from-file=arms-alertmanager-config.yaml
Crie o arquivo prometheus-patch.yaml na sua máquina local e cole o seguinte conteúdo nele.
spec:
additionalAlertManagerConfigs:
key: arms-alertmanager-config.yaml
name: arms-am-config
Execute o comando a seguir para obter o objeto Prometheus.
kubectl get prometheus
Resposta de exemplo:
NAME VERSION REPLICAS AGE
prometheus-operator-160879-prometheus v2.18.2 1 4d1h
Execute o comando a seguir para aplicar o arquivo prometheus-patch.yaml ao objeto Prometheus. Substitua
prometheus-operator-160879-prometheuspelo nome retornado na etapa anterior.
kubectl patch prometheus prometheus-operator-160879-prometheus --patch "$(cat prometheus-patch.yaml)" --type=merge
Other Self-managed Prometheus Instances
Modifique o arquivo de configuração prometheus.yaml. O exemplo a seguir aplica-se ao Prometheus 2.x. Para formatos de configuração de outras versões, consulte a documentação do Prometheus.
alerting:
alertmanagers:
- api_version: v1
authorization:
type: Bearer
credentials: <bearer_token>
scheme: https
static_configs:
- targets: ["alerts.aliyuncs.com"]
Obtenha o bearer token no console do ARMS. Substitua <bearer_token> pelo valor real do token.
No navegador, abra a página de configuração do Prometheus e verifique se a seção
alertingcontém a configuração do Alertmanager com o alvoalerts.aliyuncs.com.
Integrar outros sistemas de observabilidade compatíveis com Prometheus ao ARMS Alert Management
O Thanos utiliza o parâmetro --alertmanagers.config do comando thanos rule para especificar o arquivo de configuração do Alertmanager. Insira o endereço de integração e o token descritos nas etapas anteriores. Para mais informações sobre a configuração, consulte a documentação do Thanos.
O VictoriaMetric usa o parâmetro -notifier.config do comando ./bin/vmalert para especificar o arquivo de configuração do notificador. Insira o endereço de integração e o token descritos nas etapas anteriores. Para mais detalhes sobre a configuração, consulte a documentação do VictoriaMetric.
(Opcional) Editar a integração
O ARMS Alert Management predefine os mapeamentos de campos entre a fonte de alerta do Prometheus autogerenciado e o próprio ARMS Alert Management. Adicione ou modifique esses mapeamentos na página Edit Integration conforme necessário.
Na aba Alert Integration, localize a integração que deseja gerenciar e clique em Edit na coluna Actions.
Na seção Event Mapping, clique em Send Test Data.
Na caixa de diálogo Send Test Data, insira o conteúdo do alerta de uma fonte externa no formato JSON e clique em Send.
Se a mensagem Uploaded. No events are generated. Configure mappings based on the original data. aparecer, os campos da fonte de alerta não estarão mapeados para os campos dos eventos de alerta do ARMS. Os dados enviados serão exibidos na caixa à esquerda, permitindo selecionar os campos de origem ao configurar os mapeamentos.
Caso a mensagem Uploaded. seja exibida, o conteúdo do alerta foi reportado à página de Histórico de Eventos de Alerta. Para mais informações, consulte View alert event history.
Na caixa de diálogo Send Test Data, clique em Disable.
Na parte esquerda da seção Event Mapping, clique nos registros de dados para os quais deseja configurar mapeamentos e visualize os detalhes.
No lado direito da seção
Event Mapping
configure os mapeamentos entre os campos da fonte de alerta e os alertas do ARMS.
Opcional:Na seção Select Root Node, especifique se deseja ativar o processamento em lote.
Se existir um nó de array nos dados de alerta, defina-o como nó raiz. O sistema processará os dados pertencentes a esse nó raiz em lotes.
Após selecionar Use Batch Processing, escolha o nó de array a ser processado em lote como nó raiz.
Se houver múltiplos nós de array nos dados de alerta, selecione apenas um deles para processamento em lote.
Na seção Map Source Fields to Target Fields, mapeie os campos da fonte de alerta para os campos de alerta do ARMS.
Clique no ícone de mapeamento para alterar o método de mapeamento de campos.
Direto: Mapeia o campo especificado da fonte de alerta diretamente para o campo de alerta correspondente no ARMS.
Série: Concatena vários campos da fonte de alerta em um único campo usando delimitadores e mapeia o resultado para o campo de alerta do ARMS desejado. Apenas caracteres especiais podem funcionar como delimitadores.
Condicional: Mapeia os campos da fonte de alerta para os campos do ARMS somente quando seus valores atendem às condições definidas.
Tabela de mapeamento: Converte a severidade da fonte de alerta para a severidade do alerta no ARMS. Esta tabela contém exclusivamente o campo de severidade.
A tabela a seguir descreve os campos de alerta do ARMS.
|
Campo de alerta |
Descrição |
|
alertname |
Nome do alerta personalizado. |
|
severity |
Nível de severidade do alerta. Configure obrigatoriamente o mapeamento para este campo utilizando o método Direto. |
|
message |
Descrição do alerta, usada como conteúdo da mensagem. Não pode exceder 15.000 caracteres. |
|
value |
Valor de amostra de uma métrica. |
|
imageUrl |
URL do gráfico de linhas com métricas do Grafana, utilizada para mapear o gráfico. |
|
check |
Item de verificação do alerta. Exemplos: CPU, JVM, Falha de Aplicação e Implantação. |
|
source |
Origem do alerta. |
|
class |
Tipo do objeto que disparou o evento de alerta, como host, por exemplo. |
|
service |
Serviço de origem do alerta. Exemplo: Login Service. |
|
startat |
Timestamp que indica o horário de início do evento. |
|
endat |
Timestamp que indica o horário de término do evento. |
|
generatorUrl |
URL com os detalhes do evento. |
Configure a deduplicação de campos para eventos de alerta.
Para reduzir dados duplicados, o sistema utiliza campos relevantes como base para deduplicação. O ARMS Alert Management permite visualizar previamente os resultados de agrupamento por deduplicação dos dados históricos exibidos na seção Event Mapping. Altere os campos sujeitos à deduplicação conforme necessário.
A configuração de deduplicação aplica-se apenas a eventos ainda não resolvidos.
-
Na seção Event Deduplication da página Integration Details, selecione os campos a serem usados na deduplicação.
Quando vários eventos apresentam o mesmo valor para um campo específico, eles são consolidados em uma única notificação de alerta.
-
Clique em Deduplication Test para visualizar o grupo de alertas após a deduplicação.
NotaO teste de deduplicação afeta somente os 10 registros de dados mais recentes carregados na parte esquerda da seção Event Mapping.
Após concluir as configurações, clique em Save.
Visualizar detalhes de um evento de alerta
No painel de navegação à esquerda do console do ARMS, escolha .
Na página Alert Event History, clique no nome do evento de alerta para ver seus detalhes. Para mais informações, consulte View alert event history.
Atualizar a chave de integração
No painel de navegação à esquerda, escolha . Na aba Alert Integration, realize as seguintes operações nas integrações criadas:
Visualizar detalhes de uma integração: Localize a integração desejada e clique na linha correspondente. Na página Integration Details, examine as informações da integração.
Para atualizar a chave de uma integração, na coluna Actions à direita da integração alvo, escolha MoreUpdate Key. Na caixa de diálogo exibida, clique em Confirm.
Após atualizar a chave, reconfigure a instância do Prometheus autogerenciada com a nova chave. Para mais informações, consulte Configure Prometheus.
Modificar uma integração: Encontre a integração e clique em Edit na coluna Actions. Na página Integration Details, altere as informações da integração e clique em Save.
Ativar ou desativar uma integração: Localize a integração e clique em Disable ou Enable na coluna Actions.
Excluir uma integração: Identifique a integração e clique em Delete na coluna Actions. Na mensagem de confirmação, clique em OK.
Adicionar um fluxo de processamento de eventos a uma integração: Encontre a integração e clique em Add Event Processing Flow na coluna Actions. Para mais detalhes, consulte Event processing flow.
Criar uma política de notificação: Localize a integração para a qual deseja criar a política e clique em More na coluna Actions. Na lista exibida, clique em Create Notification Policy. Para mais informações, consulte Notification policies.
Próximos passos
Depois de criar uma política de notificação, o sistema gera alertas e envia notificações para os eventos reportados com base na política configurada. Para mais informações, consulte Notification policies. Na página Alert Sending History, visualize os alertas gerados conforme a política de notificação definida. Para mais detalhes, consulte View alert sending history.