Перад транспартам стаяць тры рашэнні: які аб'ект апісвае апавяшчэнне, які кірунак і ахоп яно закранае і наколькі свежым павінна быць чытанне. SNMP, HTTPS API і зонд праграмы могуць паведаміць нешта пра VPN, але яны не паведамяць адно і тое ж. Змена пратаколаў без закрыцця гэтых трох пытанняў змяняе толькі месца, дзе збіраецца блытаніна. Аб'ект і сэнс апавяшчэння — гэта дызайн; пратакол — гэта дастаўка.

Панэль, якая ператварае чатыры розныя назіранні ў адну зялёную іконку, ужо прыняла гэтае рашэнне дрэнна.

Што апавяшчэнне павінна значыць насамрэч?

Яно можа значыць, што партнёр не можа прайсці аўтэнтыфікацыю, што абароненага стану даных не існуе, што маршрут паказвае не туды або што праграма не можа завяршыць сваю працу. Кожнае з гэтага мае свайго ўладальніка, сваю першую праверку і сваю долю ілжывых спрацоўванняў. Партнёр, які не можа прайсці аўтэнтыфікацыю, — гэта праблема ідэнтычнасці, адсутная асацыяцыя бяспекі — праблема стану пратакола, маршрут — праблема канфігурацыі, а збой праграмы можа не адносіцца ні да чаго з гэтага. Вызначце, для якога з іх прызначана апавяшчэнне, перад выбарам зборшчыка.

Запішыце яго сказам, па якім чарговы інжынер можа дзейнічаць. Калі сказ патрабуе двух аб'ектаў, гэта два апавяшчэнні, а не адно напалову правільнае.

Табліца TCP апісвае TCP

RFC 4022 вызначае tcpConnectionTable, радкі якога апісваюць усталяваныя TCP-злучэнні з ключом па тыпе адраса, адрасе і порце з абодвух бакоў. Радкі знікаюць, калі злучэнне закрываецца, а слухаючыя сокеты з'яўляюцца ў іншай табліцы. Запуск VPN на той жа машыне не ператварае табліцу TCP у інвентар асацыяцый бяспекі IPsec. Яна можа апісваць сеанс кіравання, паток праграмы або тунель праз TCP, і сам радок не скажа, што менавіта.

Лічыльнікі інтэрфейсаў нясуць тую ж неадназначнасць на больш грубым узроўні: байты на інтэрфейсе аб'ядноўваюць кожнага партнёра і кожны паток, якія ім карыстаюцца.

Пабудуйце невялікі кантракт назірання

Для кожнай метрыкі запісвайце падтрыманы аб'ект або поле API, валодаючую прыладу і версію праграмнага забеспячэння, ідэнтыфікатар партнёра або сэрвісу, кірунак, час збору і чаканыя паводзіны абнаўлення. Затым выкарыстоўвайце дакументаваны прадстаўленне асацыяцый або сеансаў шлюза для стану пратакола, табліцу маршрутызацыі для стану шляху і вузкі дазволены запыт для стану праграмы. Працуючая кропка кіравання даказвае, што кропка кіравання працуе, і нічога не кажа пра праграму за ёй.

Калі ўсталяваны агент не мае патрэбных аб'ектаў, выберыце іншы яўна падтрыманы інтэрфейс толькі для чытання. Выдумляць OID, чытаць агульны лік TCP як лік тунеляў або чакаць, што стары API пастаўшчыка застанецца нязменным у роднасным прадукце, — усе гэта тупікі.

Састарэлыя даныя — не збой тунеля

Тайм-аўт збору, скончаныя ўліковыя даныя або зменены шлях API ствараюць адсутную тэлеметрыю. Гэта збой маніторынгу і іншы інцыдэнт, чым тунель, які ўпаў. Запішыце, якое назіранне састарэла і калі, каб аператар атрымаў змястоўную першую праверку замест скіду тунеля. Стаўленне да кожнага тайм-аўта як да адключэння VPN вучыць людзей ігнараваць і тое, і другое.

Трымайце дазволы на збор вузкімі. Інтэрфейс, які можа змяняць канфігурацыю або ачышчаць сеансы, нясе мяжу прывілеяў, якую праца маніторынгу не павінна атрымліваць у спадчыну, і ўліковага запісу толькі для чытання звычайна дастаткова.

Карысны дызайн называе аб'ект, сэнс і патрабаванне свежасці. Выбар пратакола вынікае з гэтага, а не наадварот.

Падобныя артыкулы