Este tópico descreve como integrar o SkyWalking ao subserviço de Gerenciamento de Alertas do Application Real-Time Monitoring Service (ARMS).
Etapa 1: Criar uma integração do SkyWalking
Faça login no console do ARMS. No painel de navegação à esquerda, escolha .
Na aba Alert Integration, clique em SkyWalking.
-
No assistente Create SkyWalking Integration, insira um nome e uma descrição para a integração, defina o tempo de recuperação automática dos eventos de alerta e clique em Save.
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á automaticamente o evento.
Na aba Alert Integration, localize a integração do SkyWalking criada e copie sua URL de webhook.
Etapa 2: Configurar o SkyWalking
-
Acesse o servidor onde o SkyWalking está implantado e navegue até o diretório dos scripts do SkyWalking:
cd /opt/sky/apache-skywalking-apm-bin/ -
Execute o comando a seguir para listar a pasta config no diretório:
ls config/ -
Execute o comando a seguir para modificar o arquivo alarm-settings.yml na pasta config:
vim config/alarm-settings.yml -
Adicione a URL obtida na Etapa 1 ao campo
webhook:webhook - https://alerts.aliyuncs.com/api/v1/skywalking/event/****** Execute o comando
:wqpara salvar as alterações no arquivo alarm-settings.yml.
(Opcional) Etapa 3: Modificar a integração
O ARMS fornece mapeamentos de campos padrão entre as fontes de alerta do SkyWalking e os alertas do ARMS. Também é possível adicionar ou modificar esses mapeamentos na página Edit Integration.
Exemplo de fonte de alerta:
{
"startTime":1630408697583,
"scope":"SERVICE_INSTANCE",
"scopeId":2,
"name":"932******@127.0.XX.XX of testApp",
"alarmMessage":"instance_jvm_cpu of 932******@127.0.XX.XX of testApp is more than 80 in 2 minutes of last 3 minutes",
"ruleName":"instance_jvm_cpu_rule",
"id1":"",
"id0":"YnNtLXdlYg==.1_OTMyYjU1NmVmM2Y1NGR====--7p862kYTliODA4MTk0ZTJlODcxMWFAMTAuMS4xMS4xNg=="
}
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.
NotaSe 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.
Se a mensagem Uploaded. for exibida, o conteúdo do alerta foi reportado à página Histórico de Eventos de Alerta. Para mais informações, consulte Visualizar histórico de eventos de alerta.
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, mapeie os campos de origem para os campos de alerta 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á em lote os dados pertencentes a esse nó raiz.
Após selecionar Use Batch Processing, escolha o nó de array a ser processado em lote como o nó raiz.
NotaSe existirem 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: o campo especificado da fonte de alerta é mapeado diretamente para o campo de alerta correspondente no ARMS.
Série: use delimitadores para concatenar vários campos da fonte de alerta em um único campo e mapeie-o para o campo de alerta especificado no ARMS. Apenas caracteres especiais podem funcionar como delimitadores.
Condicional: os campos da fonte de alerta são mapeados para os campos do ARMS somente quando os valores atendem às condições definidas.
Tabela de mapeamento: a severidade da fonte de alerta é convertida 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 usando o método Direto.
message
Descrição do alerta, usada como conteúdo da mensagem. O limite é de 15.000 caracteres.
value
Valor de amostra de uma métrica.
imageUrl
URL do gráfico de linhas com métricas do Grafana, usada para mapear o gráfico.
check
Item de verificação do alerta. Exemplos: CPU, JVM, Falha na Aplicação e Implantação.
source
Origem do alerta.
class
Tipo de objeto que acionou o evento de alerta, como host.
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 redundantes, o sistema utiliza campos relevantes como base para deduplicação. O Gerenciamento de Alertas do ARMS permite visualizar uma prévia dos resultados de agrupamento por deduplicação dos dados históricos exibidos na seção Event Mapping. Altere os campos usados nesse processo conforme necessário.
NotaA configuração de deduplicação aplica-se apenas a eventos ainda não limpos.
-
Na seção Event Deduplication da página Integration Details, selecione os campos que servirão de base para a deduplicação.
Quando vários eventos compartilham o mesmo valor para um campo específico, eles são mesclados 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 Visualizar histórico de eventos de alerta.
Gerenciar a integração
No painel de navegação à esquerda, escolha . Na aba Alert Integration, realize as operações abaixo nas integrações criadas:
Visualizar detalhes da integração: localize a integração desejada e clique na linha correspondente. Na página Integration Details, examine as informações completas.
-
Atualizar chave: para a integração que deseja modificar, escolha na coluna Actions e clique em Confirm na caixa de diálogo exibida.
ImportanteApós atualizar a chave, modifique o arquivo
alarm-settings.yml
conforme descrito na
.
Modificar uma integração: encontre a integração e clique em Edit na coluna Actions. Na página Integration Details, ajuste as informações necessárias 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: encontre 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: localize a integração e clique em Add Event Processing Flow na coluna Actions. Para mais detalhes, consulte Fluxo de processamento de eventos.
Criar uma política de notificação: encontre a integração correspondente e clique em More na coluna Actions. Na lista exibida, clique em Create Notification Policy. Para mais informações, consulte Políticas de notificação.
Próximos passos
Após criar uma política de notificação, o sistema gera alertas e envia notificações para os eventos reportados com base nessa política. Para mais detalhes, consulte Políticas de notificação. Na página Alert Sending History, visualize os alertas gerados conforme a política configurada. Para mais informações, consulte Visualizar histórico de envio de alertas.