Este tópico responde a perguntas frequentes sobre webhooks personalizados.
Como configurar um modelo de alerta?
Para enviar notificações de alerta por webhook personalizado, configure o conteúdo do modelo de alerta em formato JSON válido. Assim, o resultado da renderização também será um JSON válido.
Suponha que você deseje configurar um modelo de alerta para a mensagem a seguir. Nela, o valor do campo alert.annotations.message contém aspas duplas (""). Se referenciar diretamente o campo {{ alert.annotations.message }}, o resultado da renderização terá formato JSON inválido e o envio das notificações falhará.
Use a função integrada quote(value) nos modelos de alerta para referenciar esse campo. Isso evita formatos JSON inválidos causados por caracteres especiais.
-
Exemplo de mensagem de alerta
{ "project": "test-alert", "region": "cn-hangzhou", "labels": { "service": "signin", "env": "prod" }, "annotations": { "message": "user \"xxx\" signin failed, error is: userNotFound" } } -
Exemplo de modelo de alerta
{ "project": "{{ alert.project }}", "service": "{{ alert.labels.service }}", "message": {{ alert.annotations.message | quote }} } -
Exemplo de resultado após a renderização
{ "project": "test-alert", "service": "signin", "message": "user \"xxx\" signin failed, error is: userNotFound" }
Como selecionar uma rede?
O sistema de alertas do Simple Log Service envia notificações via webhook apenas pela Internet. Se usar um sistema interno e não quiser ativar o acesso à Internet, utilize um proxy de Internet. A figura a seguir ilustra a arquitetura de rede.
Como verificar permissões de acesso?
Para verifique as permissões de acesso, configure uma lista de permissões de endereços IP ou um cabeçalho HTTP.
Configure uma lista de permissões de endereços IP para o webhook e adicione os endereços IP 120.76.47.88 e 119.23.150.175 à lista.
-
Configure um cabeçalho HTTP.
Use um token personalizado. Defina o parâmetro Request Header como
Authorization: Bearer token. Substitua token pelo seu token personalizado.Use a autenticação básica. Defina o parâmetro Request Header como
Authorization: Basic $(base64_encode(username:password)). Substitua username e password pelo nome de usuário e senha reais.
Por exemplo, se o webhook usar o proxy reverso NGINX, configure a autenticação básica no NGINX para verifique as permissões de acesso.
-
Configure a autenticação básica no NGINX.
-
Adicione um usuário ao arquivo de senhas.
ImportanteSe o arquivo conf/passwd não existir, crie um arquivo de senhas.
Os exemplos abaixo usam o nome de usuário admin e a senha foobar.
htpasswd -b conf/passwd admin foobar -
Configure os parâmetros auth_basic e auth_basic_user_file no NGINX para ative a autenticação básica.
location / { auth_basic on; auth_basic_user_file conf/passwd; root html; index index.html index.htm; } Reinicie o NGINX.
-
-
Configure um webhook personalizado em uma política de ação.
O comando
echo -n admin:foobar | base64retornaYWRtaW46Zm9vYmFy. Portanto, ao configurar um webhook personalizado, defina o parâmetro Request Header comoAuthorization: Basic YWRtaW46Zm9vYmFy. Para mais informações, consulte Webhook-Custom.