Antes de escrever a tarefa Ansible, responda a uma pergunta menor: o que está a ser contado? Um par configurado, uma sessão IKE, uma associação de segurança IPsec e um registo de estado de túnel monitorizado são quatro unidades diferentes, e a regeneração de chaves ou várias redes protegidas fazem os seus totais divergir. Se o painel e o playbook não concordam, normalmente estão a contar coisas diferentes e não que um dos dois esteja errado.

Quatro coisas que as pessoas chamam de ativas

Um par configurado é um objeto de topologia: existe porque alguém o definiu. Uma sessão IKE é uma relação do plano de controlo que pode estar ativa enquanto nenhum tráfego flui. Uma SA IPsec é a associação do plano de dados para um par de seletores específico, e um túnel pode transportar várias. Um estado de túnel monitorizado é o veredicto operacional da própria plataforma, geralmente o mais próximo do que um operador quer dizer ao afirmar que o túnel está ativo.

Apenas o último é uma base razoável para uma contagem operacional. O primeiro é um inventário de configuração, e relatá-lo como ativo é como um painel mostra verde para um par que está em baixo desde terça-feira. Decida qual unidade o consumidor do número precisa e depois rotule a métrica com essa unidade no próprio nome.

Primeira decisão: qual plano de gestão?

Se o dispositivo é gerido pelo FDM, a superfície relevante é a FTD REST API. Se é gerido pelo FMC, essa API não é um substituto intercambiável, e os objetos vivem atrás da API própria do FMC. Confirme isto antes de escrever um único pedido, porque o plano errado devolve um erro plausível que parece um problema de permissões.

Para uma frota, a resposta também decide onde a contagem pertence: por dispositivo através do FDM, ou por domínio através do FMC. São âmbitos diferentes e produzem números diferentes para a mesma frota.

Segunda decisão: qual recurso responde?

Para um exemplo limitado à versão, a referência de objetos da FMC 7.3 API documenta recursos GET sob o caminho health:

/api/fmc_config/v1/domain/{domainUUID}/health/tunnelstatuses
/api/fmc_config/v1/domain/{domainUUID}/health/tunnelsummaries

O recurso de estado do túnel suporta filtros de dispositivo e de estado, incluindo TUNNEL_UP. Isso dá-lhe um recurso operacional real para inspecionar nessa versão, em vez de uma suposição sobre o nome de um campo.

Confirme a disponibilidade, as permissões, os parâmetros do pedido e o esquema de resposta no API Explorer do FMC implementado antes de criar um analisador. A documentação de uma versão é um ponto de partida, não um contrato para a que executa.

Escreva o contrato da contagem

Enuncie a métrica numa frase: registos operacionais de túnel únicos para um dispositivo e um domínio previstos cujo estado declarado seja TUNNEL_UP. Depois documente como são representados os dispositivos redundantes e os registos múltiplos para um site lógico, porque esses dois casos decidem se o seu número corresponde ao da reunião.

Não altere silenciosamente a unidade de registo de túnel para site remoto. Se o negócio quer sites, mapeie explicitamente os registos para os sites e publique o mapeamento. Uma contagem que se redefine em silêncio é pior do que nenhuma contagem, porque ninguém consegue dizer quando mudou.

Trate o recurso de resumo como uma comodidade apenas depois de confirmar o que resume. Pode agregar exatamente o que precisa, ou responder a uma pergunta subtilmente diferente. Leia o seu esquema uma vez, anote a diferença e use o recurso de estado se o resumo não puder ser explicado. Um resumo que não compreende é um número que não consegue defender numa revisão.

Deixe o fluxo de trabalho preservar a incerteza

Use a API HTTPS aprovada, valide o certificado, mantenha os tokens fora da saída da tarefa e obtenha o âmbito com o filtro e a paginação suportados pela versão. Depois valide o esquema antes de calcular seja o que for.

fetch intended domain/device runtime records
validate response, completeness and freshness
deduplicate by the documented tunnel identity
count records matching the approved up-state definition
report count with scope, timestamp and metric unit

Isto é pseudocódigo de fluxo de trabalho, não um playbook testado. Tire os nomes de campo reais da API instalada em vez de inventar uma chave JSON chamada active.

A regra importante é o comportamento em caso de falha: um erro de autorização, um recurso não suportado, uma amostra desatualizada ou um conjunto de páginas incompleto devem produzir unknown ou error, nunca um zero bem-sucedido. Um zero que significa que não consegui perguntar é o tipo de erro mais caro.

Valide contra a vista da própria plataforma

Compare o primeiro resultado com a vista de monitorização de VPN da versão para o mesmo dispositivo e momento. Quando diferirem, descubra qual unidade cada um usa antes de alterar o playbook.

Guarde contexto não secreto para cada execução: âmbito, marca temporal, unidade da métrica e número de registos. A referência de objetos da FMC 7.3 API é a fonte dos caminhos de recursos acima, e o API Explorer da sua própria implementação é a fonte de tudo o resto.

Artigos relacionados