Пред да ја напишете задачата Ansible, одговорете на помало прашање: што се брои? Конфигуриран партнер, IKE сесија, IPsec безбедносна асоцијација и запис за набљудуван статус на тунел се четири различни единици, а регенерирањето клучеви или повеќе заштитени мрежи ги раздвојуваат нивните збирови. Ако таблата и playbook-от не се согласуваат, тие обично бројат различни работи, а не дека еден од нив греши.

Четири работи што луѓето ги нарекуваат активни

Конфигуриран партнер е тополошки објект: постои затоа што некој го дефинирал. IKE сесија е врска на рамнината за управување што може да биде подигната додека не тече сообраќај. IPsec SA е асоцијација на рамнината за податоци за определен пар селектори, а еден тунел може да носи неколку. Набљудуван статус на тунел е сопствената оперативна пресуда на платформата, која обично е најблиску до она што операторот го мисли кога вели дека тунелот е подигнат.

Само последната е разумна основа за оперативно броење. Првата е инвентар на конфигурација, а нејзиното пријавување како активна е начинот на кој таблата покажува зелено за партнер што не работи од вторник. Одлучете која единица му е потребна на потрошувачот на бројот, потоа означете ја метриката со таа единица во нејзиното име.

Прва одлука: која рамнина на управување?

Ако уредот го управува FDM, релевантната површина е FTD REST API. Ако го управува FMC, тоа API не е заменлива алтернатива, а објектите живеат зад сопственото API на FMC. Потврдете го ова пред да напишете и едно барање, зашто погрешната рамнина враќа веродостојна грешка што личи на проблем со дозволи.

За флота, одговорот одлучува и каде припаѓа броењето: по уред преку FDM, или по домен преку FMC. Тоа се различни опфати и даваат различни броеви за истата флота.

Втора одлука: кој ресурс одговара?

За пример врзан за верзија, референцата за објекти на FMC 7.3 API документира GET ресурси под патеката health:

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

Ресурсот за статус на тунел поддржува филтри за уред и статус, вклучувајќи TUNNEL_UP. Тоа ви дава вистински оперативен ресурс за проверка за таа верзија, наместо претпоставка за име на поле.

Пред да имплементирате парсер, потврдете достапност, дозволи, параметри на барањето и шема на одговор во API Explorer на инсталираниот FMC. Документацијата за една верзија е почетна точка, не договор за таа што ја извршувате.

Напишете го договорот за броење

Формулирајте ја метриката во една реченица: единствени оперативни записи за тунел за еден предвиден уред и домен чиј пријавен статус е TUNNEL_UP. Потоа документирајте како се претставени вишок уреди и повеќе записи за една логичка локација, зашто тие два случаи одлучуваат дали вашиот број се совпаѓа со оној од состанокот.

Не менувајте тивко единицата од запис за тунел на оддалечена локација. Ако бизнисот сака локации, експлицитно мапирајте ги записите на локации и објавете го мапирањето. Броење што тивко се редефинира е полошо од никакво броење, зашто никој не може да каже кога се променило.

Третирајте го резимираниот ресурс како погодност само откако ќе потврдите што резимира. Тој може да агрегира точно тоа што ви треба или да одговори на суптилно различно прашање. Прочитајте ја неговата шема еднаш, запишете ја разликата и користете го ресурсот за статус ако резимето не може да се објасни. Резиме што не го разбирате е број што не можете да го одбраните во преглед.

Нека работниот тек ја сочува неизвесноста

Користете го одобреното HTTPS API, валидирајте го сертификатот, држете ги токените надвор од излезот на задачата и земете го опфатот со филтерот и страничењето што ги поддржува верзијата. Потоа валидирајте ја шемата пред да пресметате нешто.

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

Ова е псевдокод на работен тек, не тестиран playbook. Земете ги вистинските имиња на полиња од инсталираното API наместо да измислувате JSON клуч наречен active.

Важното правило е однесувањето при неуспех: грешка во авторизацијата, неподдржан ресурс, застарен примерок или нецелосен сет страници мора да дадат unknown или error, никогаш успешна нула. Нулата што значи дека не можев да прашам е најскапиот вид грешка.

Проверете наспроти сопствениот приказ на платформата

Споредете го првиот резултат со приказот за VPN надзор на верзијата за истиот уред и момент. Кога се разликуваат, откријте која единица ја користи секој пред да го промените playbook-от.

Чувајте нетајен контекст за секое извршување: опфат, временска ознака, единица на метриката и број записи. Референцата за објекти на FMC 7.3 API е изворот за патеките на ресурсите погоре, а API Explorer на вашето сопствено распоредување е изворот за сè друго.

Поврзани статии