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.

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

Saiba mais sobre Rules Engine

Habilite Debug Rules

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

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.

Realize debug de regras usando GraphQL API

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

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 + Stream.

  4. Dê um nome para seu stream.

  5. No menu dropdown 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 Domains, selecione Filter Domains ou All Current and Future 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.
  1. Confira se o switch Status está ligado.
  2. 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.

Definição das variáveis

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

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. Selecione a aba HTTP Requests.
  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