Підрахунок активних VPN майданчиків FTD: яке число ви маєте на увазі?
Налаштовані партнери, сеанси IKE, асоціації безпеки й спостережувані тунелі — це чотири різні підрахунки. Виберіть одиницю та площину керування до написання коду.
Перш ніж писати завдання Ansible, дайте відповідь на менше питання: що саме рахується? Налаштований партнер, сеанс IKE, асоціація безпеки IPsec і запис спостережуваного стану тунелю — це чотири різні одиниці, а перегенерація ключів або кілька захищених мереж змушують їхні суми розходитися. Якщо панель і playbook не збігаються, зазвичай вони рахують різні речі, а не один із них помиляється.
Чотири речі, які люди називають активними
Налаштований партнер — це об’єкт топології: він існує тому, що хтось його визначив. Сеанс IKE — це зв’язок площини керування, який може бути піднятим, поки трафік не йде. SA IPsec — це асоціація площини даних для конкретної пари селекторів, і один тунель може нести кілька. Спостережуваний стан тунелю — це власний операційний вердикт платформи, зазвичай найближчий до того, що оператор має на увазі, кажучи, що тунель піднято.
Лише останнє — розумна основа для операційного підрахунку. Перше — це інвентар конфігурації, і подавати його як активне — так панель показує зелений для партнера, який не працює з вівторка. Вирішіть, яка одиниця потрібна споживачу числа, потім назвіть метрику цією одиницею в її власному імені.
Перше рішення: яка площина керування?
Якщо пристроєм керує 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 у вашому власному розгортанні — джерело всього іншого.