Надгледање Кубернетес кластера: Преглед и увод у Прометхеус

Размотрите концепт Кубернетес надгледања, упознајте се са алатом Прометхеус и разговарајте о упозорењу.

Тема праћења је обимна, не може се раставити у једном чланку. Сврха овог текста је да пружи преглед алата, концепата и приступа.

Материјал чланка је стискање из отворено предавање школе "Слурм". Ако желите да похађате цео курс - пријавите се за курс на Инфраструктура за праћење и евидентирање у Кубернетесу.

Надгледање Кубернетес кластера: Преглед и увод у Прометхеус

Шта се надгледа у Кубернетес кластеру

Надгледање Кубернетес кластера: Преглед и увод у Прометхеус

физички сервери. Ако је Кубернетес кластер распоређен на својим серверима, потребно је да пратите њихово здравље. Заббик се бави овим задатком; ако радите са њим, онда не морате да одбијете, неће бити сукоба. Заббик је тај који прати стање наших сервера.

Пређимо на праћење на нивоу кластера.

Компоненте контролне равни: АПИ, Планер и други. У најмању руку, морате да се уверите да је АПИ сервера или етцд већи од 0. Етцд може да врати много метрика: према дисковима на којима се окреће, по исправности свог етцд кластера и других.

лучки радник појавио се давно и сви су добро свесни његових проблема: много контејнера ствара замрзавање и друге проблеме. Стога и сам Доцкер, као систем, такође треба контролисати, барем у погледу доступности.

ДНС. Ако ДНС падне у кластеру, онда ће цео Дисцовери сервис отпасти након њега, позиви са подова на подове ће престати да раде. У мојој пракси таквих проблема није било, али то не значи да стање ДНС-а не треба пратити. Кашњење захтева и неке друге метрике могу се пратити на ЦореДНС-у.

Ингресс. Неопходно је контролисати доступност улаза (укључујући Ингресс Цонтроллер) као улазних тачака у пројекат.

Главне компоненте кластера су демонтиране - сада идемо доле на ниво апстракција.

Чини се да апликације раде у подовима, што значи да их треба контролисати, али у стварности нису. Подови су ефемерни: данас раде на једном серверу, сутра на другом; данас их има 10, сутра 2. Према томе, нико не прати махуне. У оквиру микросервисне архитектуре, важније је контролисати доступност апликације у целини. Конкретно, проверите доступност крајњих тачака услуге: да ли нешто ради? Ако је апликација доступна, шта се онда дешава иза ње, колико је сада реплика - то су питања другог реда. Нема потребе за праћењем појединачних инстанци.

На последњем нивоу, потребно је да контролишете рад саме апликације, узимате пословне метрике: број поруџбина, понашање корисника и тако даље.

Прометеј

Најбољи систем за праћење кластера је Прометеј. Не знам ни за један алат који може да парира Прометеју по квалитету и једноставности коришћења. Одличан је за флексибилну инфраструктуру, па када кажу „Кубернетес мониторинг“, обично мисле на Прометеја.

Постоји неколико опција за почетак рада са Прометхеусом: користећи Хелм, можете инсталирати обичан Прометхеус или Прометхеус Оператор.

  1. Регуларни Прометеј. Све је у реду са њим, али морате да конфигуришете ЦонфигМап - у ствари, пишите конфигурационе датотеке засноване на тексту, као што смо радили раније, пре микросервисне архитектуре.
  2. Прометхеус Оператор је мало раширенији, мало компликованији у смислу унутрашње логике, али је лакше радити са њим: постоје одвојени објекти, апстракције се додају у кластер, тако да их је много погодније контролисати и конфигурисати.

Да бисте разумели производ, препоручујем да прво инсталирате обичан Прометхеус. Мораћете све да конфигуришете кроз конфигурацију, али ово ће бити од користи: схватићете шта чему припада и како је конфигурисано. У Прометхеус Оператору, одмах се уздижете до апстракције више, иако можете и у дубину ако желите.

Прометхеус је добро интегрисан са Кубернетес-ом: може да приступи АПИ серверу и да комуницира са њим.

Прометхеус је популаран, због чега га подржава велики број апликација и програмских језика. Подршка је потребна, пошто Прометеј има свој формат метрике, а да бисте га пренели, потребна вам је или библиотека унутар апликације или готов експортер. А таквих извозника има доста. На пример, постоји ПостгреСКЛ Екпортер: он узима податке из ПостгреСКЛ-а и претвара их у Прометхеус формат тако да Прометхеус може да ради са њим.

Прометејева архитектура

Надгледање Кубернетес кластера: Преглед и увод у Прометхеус

Прометхеус Сервер је задњи крај, Прометејев мозак. Овде се чувају и обрађују метрике.

метрика се чува у бази података временских серија (ТСДБ). ТСДБ није посебна база података, већ пакет на Го језику који је уграђен у Прометхеус. Грубо речено, све је у једном бинарном систему.

Не чувајте податке у ТСДБ дуго времена

Инфраструктура Прометхеус није погодна за дуготрајно складиштење метрике. Подразумевани период чувања је 15 дана. Можете прекорачити ово ограничење, али имајте на уму: што више података чувате у ТСДБ-у и што дуже то радите, више ресурса ће потрошити. Чување историјских података у Прометеју се сматра лошом праксом.

Ако имате огроман саобраћај, број метрика је стотине хиљада у секунди, онда је боље ограничити њихово складиштење по простору на диску или по периоду. Обично се „врући подаци“ чувају у ТСДБ, метрика за само неколико сати. За дуже складиштење, екстерно складиште се користи у оним базама података које су заиста погодне за ово, на пример, ИнфлукДБ, ЦлицкХоусе и тако даље. Видео сам више добрих рецензија о ЦлицкХоусе-у.

Прометхеус Сервер ради на моделу повући: он иде на метрику до оних крајњих тачака које смо му дали. Рекли су: „иди на АПИ сервер“, а он иде тамо сваки н-ти број секунди и узима метрику.

За објекте са кратким животним веком (посао или црон посао) који се могу појавити између периода сцрапинга, постоји Пусхгатеваи компонента. У њега се гурају метрике из краткорочних објеката: посао се подигао, извршио акцију, послао метрику на Пусхгатеваи и завршио. После неког времена, Прометеј ће се спустити својим темпом и покупити ове метрике са Пусхгатеваи-а.

За конфигурисање обавештења у Прометеју постоји посебна компонента - Алертманагер. И правила упозорења. На пример, потребно је да креирате упозорење ако је АПИ сервера 0. Када се догађај покрене, упозорење се прослеђује менаџеру упозорења за даље слање. Менаџер упозорења има прилично флексибилна подешавања рутирања: једна група упозорења се може послати у телеграм ћаскање администратора, друга у ћаскање програмера, а трећа у ћаскање инфраструктурних радника. Обавештења се могу слати на Слацк, Телеграм, е-пошту и друге канале.

И на крају, рећи ћу вам о особини убице Прометеја - Дисцоверинг. Када радите са Прометхеусом, не морате да наводите одређене адресе објеката за праћење, довољно је да подесите њихов тип. То јест, не морате да пишете „овде је ИП адреса, овде је порт - монитор“, уместо тога морате да одредите по којим принципима да пронађете ове објекте (мете - циљеви). Сам Прометеј, у зависности од тога који су објекти тренутно активни, подиже потребне и додаје их у праћење.

Овај приступ се добро уклапа у Кубернетес структуру, где све такође лебди: данас има 10 сервера, сутра 3. Да не би сваки пут прецизирали ИП адресу сервера, једном су написали како да је пронађу - и Дисцоверинг ће то учинити .

Прометејски језик се зове ПромКЛ. Користећи овај језик, можете добити вредности ​​​специфичних метрика, а затим их конвертовати, направити аналитичке прорачуне на основу њих.

https://prometheus.io/docs/prometheus/latest/querying/basics/

Простой запрос

    container_memory_usage_bytes

Математические операции

    container_memory_usage_bytes / 1024 / 1024

Встроенные функции

    sum(container_memory_usage_bytes) / 1024 / 1024

Уточнение запроса

    100 - avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m]) * 100)

Прометеј веб интерфејс

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

Надгледање Кубернетес кластера: Преглед и увод у Прометхеус

У линији Екпрессион можете написати упит на ПромКЛ језику.

Картица Упозорења садржи правила упозорења и имају три статуса:

  1. неактиван - ако упозорење тренутно није активно, односно све је у реду са њим и није функционисало;
  2. на чекању - ово је ако је упозорење успело, али слање још није прошло. Кашњење је подешено да компензује трептање мреже: ако је наведена услуга порасла у року од једног минута, аларм још не би требало да се огласи;
  3. паљење је трећи статус када се упозорење пали и шаље поруке.

У менију Статус ћете наћи приступ информацијама о томе шта је Прометеј. Постоји и прелазак на мете (мете), о чему смо говорили горе.

Надгледање Кубернетес кластера: Преглед и увод у Прометхеус

За детаљнији преглед интерфејса Прометхеус, погледајте у Слурмовом предавању о праћењу Кубернетес кластера.

Интеграција са Графаном

У веб интерфејсу Прометеја нећете наћи лепе и разумљиве графиконе из којих можете извући закључак о стању кластера. Да би их изградио, Прометеј је интегрисан са Графаном. Добијамо такве контролне табле.

Надгледање Кубернетес кластера: Преглед и увод у Прометхеус

Подешавање интеграције Прометеја и Графане уопште није тешко, упутства можете пронаћи у документацији: ГРАФАНА ПОДРШКА ЗА ПРОМЕТЕЈПа, завршићу са овим.

У следећим чланцима наставићемо са темом праћења: причаћемо о прикупљању и анализи дневника коришћењем Графана Локи и алтернативних алата.

Аутор: Марцел Ибраев, сертификовани Кубернетес администратор, практичан инжењер у компанији Соутхбридге, говорник и програмер курса Слурм.

Извор: ввв.хабр.цом

Додај коментар