Como fazer o debug de regras criadas com Rules Engine

Debug Rules permite que você verifique se as regras ou rule sets criados usando o módulo Rules Engine para Edge Application e Edge Firewall foram executadas na sua aplicação.

Saiba mais sobre Rules Engine

Você pode fazer o debug de regras usando GraphQL API, Azion Data Stream e Azion Real-Time Events.


Para fazer o debug de regras ou rule sets, você deve ativar a funcionalidade Debug Rules no Azion Azion Console.

Para habilitar o debug de regras em Edge Application:

  1. Acesse o Azion Console.
  2. Acesse Products menu > Edge Application.
  3. Selecione a aplicação em que deseja habilitar o debug.
  4. Na aba Main Settings, habilite a opção Debug rules.
  5. Clique no botão Save.

Para habilitar o debug de regras em Edge Firewall:

  1. Acesse o Azion Console.
  2. Acesse Products menu > Edge Firewall.
  3. Selecione o edge firewall em que deseja habilitar o debug.
  4. Na aba Main Settings, habilite a opção Debug rules.
  5. Clique no botão Save.

Aviso: a funcionalidade de debug só funciona em edge firewalls ativos. Certifique-se que o edge firewall que você deseja incluir no processo de debugging está com a opção Active habilitada.


Realize debug de regras usando GraphQL API

Seção intitulada Realize debug de regras usando GraphQL API

Consulte a documentação da GraphQL API para mais informações.

Para consultar os dados sobre regras disponibilizados pela GraphQL API, siga os passos descritos no guia Como rodar requisições da GraphQL no Postman utilizando a URL https://api.azionapi.net/events/graphql.

Depois, na caixa de código do Postman da requisição de GraphQL, adicione a seguinte HTTP Query, modificando o tsRange de acordo com o intervalo de tempo que você quer utilizar:

query HttpQuery {
httpEvents(
limit: 10,
filter: {
tsRange: {begin:"2023-02-14T10:10:10", end:"2023-02-15T10:10:10"}
}
orderBy: [ts_ASC]
)
{
ts
remoteAddress
requestUri
stacktrace
}
}

O exemplo acima consulta dados sobre regras usando o dataset HTTP Events. O limit filtra as últimas 10 entradas de dados dentro do tempo definido por tsRange. Os dados são ordenados através do campo ts (timestamp).

A consulta acima deve retornar:

  • ts: o timestamp de quando a requisição foi iniciada.
  • remoteAddress: o IP do cliente que fez a requisição para a aplicação.
  • requestUri: o tipo de requisição HTTP e URI.
  • stacktrace: regras e rule sets executados.

Envie sua requisição. Você receberá uma resposta semelhante a:

{
"data": {
"httpEvents": [
{
"ts": "2023-02-15T17:52:16Z",
"remoteAddress": "00.00.000.00",
"requestUri": "/get",
"stacktrace": "{\\\"edge_application_response\\\":[\\\"Add Azion Cookie\\\"],\\\"edge_firewall\\\":[\\\"Set WAF\\\",\\\"Rate-Limit Root\\\"],\\\"edge_application_request\\\":[\\\"Default Rule\\\",\\\"Test Send Cert to Origin 1\\\",\\\"Test Send Cert to Origin 2\\\"]}"
}
]
}
}

No exemplo acima, a GraphQL API retornou todas as regras executadas de Request Phase e Response Phase criadas usando Edge Application, bem como uma rule de Edge Firewall que também foi executada com sucesso.

Para saber mais sobre como consultar dados com a API GraphQL, visite a página de documentação.


Realize debug de regras usando Data Stream

Seção intitulada Realize debug de regras usando Data Stream

Consulte a documentação de Data Stream para mais informações sobre como configurar um endpoint de Data Stream.

Para fazer o debug de rules usando Data Stream, siga os passos:

  1. Acesse o Azion Console.

  2. Acesse Products menu > Data Stream.

  3. Clique Add Streaming.

  4. Dê um nome para seu stream.

  5. No menu dropdown Data Source, selecione Edge Applications.

  6. No menu dropdown Template, selecione Custom Template.

  7. Na caixa de código Data Set, adicione as variáveis:

    {
    "time": "$time",
    "traceback": "$traceback"
    }
  8. Em Options, selecione Filter Domains ou All Domains. Veja mais sobre cada opção em Como associar domínios no Data Stream.

  9. Na seção Destination, selecione um Endpoint Type na lista suspensa.

    Os campos para preenchimento são diferentes dependendo do tipo de endpoint que você escolher. Descubra mais informações sobre cada campo na página de configuração de endpoint.

  10. Confira se a opção Active está ligada.

  11. Clique no botão Save.

Para confirmar que seus logs estão sendo enviados, você pode utilizar o Real-Time Events para consultar análises detalhadas.

Para visualizar todos os seus streams, vá para a página de Data Stream no Azion Console e selecione um a partir da lista exibida. Você pode criar diversos streams.

VariávelDefinição
$timeData e hora da requisição. Exemplo: Oct. 31st, 2022 - 19:30:41
$tracebackRetorna os nomes das regras criadas usando Rules Engine para Edge Application ou Edge Firewall que foram executadas a partir da requisição.

Realize debug de regras usando Real-Time Events

Seção intitulada Realize debug de regras usando Real-Time Events

Consulte a documentação de Real-Time Events para mais informações sobre seu funcionamento.

Para acessar os dados de regras através do Real-Time Events, siga os passos:

  1. Acesse o Azion Console.
  2. Acesse Products menu > Real-Time Events.
  3. No campo Data Source, selecione Edge Applications.
  4. Modifique o período de tempo em que as requisição foi realizada e adicione filtros, se necessário.
  5. Clique no botão Search.
  6. Selecione o log body desejado.
  7. Procure pelo campo traceback.

O campo traceback deverá conter o tipo de regra e o comportamento executados dentro do tempo selecionado. Por exemplo:

{\"edge_application_response\":[\"Add Azion Cookie\"],\"edge_firewall\":[\"Set WAF\",\"Rate-Limit Root\"],\"edge_application_request\":[\"Default Rule\",\"Test Send Cert to Origin 1\",\"Test Send Cert to Origin 2\"]}

No exemplo acima, o campo traceback contém todas as regras executadas de Request Phase e Response Phase criadas usando Edge Application, bem como uma rule ativa de Edge Firewall.


Contribuidores