Выйшаў Zabbix 4.2

Наша каманда вельмі рада падзяліцца навіной аб тым, што адбыўся рэліз свабоднай сістэмы маніторынгу з адкрытым зыходным кодам. Zabbix 4.2!

Выйшаў Zabbix 4.2

Ці з'яўляецца версія 4.2 адказам на галоўнае пытанне жыцця, сусвету і маніторынгу ў цэлым? Давайце паглядзім!

Нагадаем, што Zabbix – гэта ўніверсальная сістэма для маніторынгу прадукцыйнасці і даступнасці сервераў, інжынернага і сеткавага абсталявання, прыкладанняў, баз дадзеных, сістэм віртуалізацыі, кантэйнераў, ІТ-сэрвісаў, вэб-сэрвісаў.

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

Zabbix 4.2 – гэта новая не LTS-версія з скарочаным тэрмінам афіцыйнай падтрымкі. Карыстачам, якія арыентуюцца на доўгі цыкл эксплуатацыі праграмных прадуктаў, раім выкарыстоўваць LTS версіі, такія як 3.0 і 4.0.

Такім чынам, давайце пагаворым аб навінках і асноўных паляпшэннях версіі 4.2:

Больш афіцыйных платформ

Выйшаў Zabbix 4.2
У дадатак да ўжо існуючых афіцыйных пакетаў, мы таксама прапануем новыя зборкі для:

  • RaspberryPi, Mac OS/X, SUSE Enterprise Linux Server 12
  • MSI для Windows агента
  • Docker вобразы

Убудаваная падтрымка Prometheus для маніторынгу прыкладанняў

Zabbix умее збіраць дадзеныя рознымі спосабамі (push/pull) з розных крыніц дадзеных. Гэта JMX, SNMP, WMI, HTTP/HTTPS, RestAPI, XML Soap, SSH, Telnet, агенты і скрыпты і іншыя крыніцы. А зараз сустракайце падтрымку Prometheus!

Строга кажучы, збор дадзеных з экспарцёраў Prometheus быў магчымы і раней дзякуючы тыпу элементаў дадзеных HTTP/HTTPS і рэгулярным выразам.

Аднак новая версія дазваляе працаваць з Prometheus максімальна эфектыўна за кошт убудаванай падтрымкі мовы запытаў PromQL. А выкарыстанне залежных метрык дазваляе збіраць і апрацоўваць дадзеныя найболей эфектыўна: адзін раз звярнуліся за дадзенымі, а далей раскладваем іх па патрэбных метрыках.

Выйшаў Zabbix 4.2
Атрымліваем значэнне канкрэтнай метрыкі

Важна адзначыць, што цяпер нізкаўзроўневыя выяўленне можа выкарыстоўваць сабраныя дадзеныя для аўтаматычнага стварэння метрык. У гэтым выпадку Zabbix пераўтворыць атрыманыя дадзеныя ў фармат JSON, з якім вельмі зручна працаваць.

Выйшаў Zabbix 4.2
Знаходзім метрыкі выкарыстоўваючы фільтр на мове запытаў PromQL

На дадзены момант існуе больш 300 інтэграцый і рэцэптаў па маніторынгу іншых сэрвісаў і дадаткаў з дапамогай Zabbix. Падтрымка Prometheus дазволіць дадаць цэлы набор прыкладанняў, якія маюць афіцыйныя ці падтрымліваюцца садружнасцю экспарцёры Prometheus. Гэта маніторынг папулярных сэрвісаў, кантэйнераў і хмарных рэсурсаў.

Эфектыўны высокачашчынны маніторынг

Ці жадаем мы выяўляць праблемы як мага хутчэй? Вядома, ніякіх сумневаў! Часцей за ўсё такі падыход прыводзіць да таго, што нам неабходна занадта часта апытваць прылады і збіраць даныя, што прыводзіць да большай нагрузкі на сістэму маніторынгу. Як гэтага пазьбегнуць?

Мы рэалізавалі механізм тратлінгу (throttling) у правілах прэпрацэсінгу. Тротлінг, па сутнасці, дае нам магчымасць пропуску аднолькавых значэнняў.

Выкажам здагадку, што мы сочым за станам крытычнага прыкладання. Кожную секунду мы правяраем, ці функцыянуе наша дадатак ці не. Пры гэтым у Zabbix паступае бесперапынны струмень дадзеных з 1 (працуе) і 0 (не працуе). Напрыклад: 1111111111110001111111111111…

Калі з нашым дадаткам усё ў парадку, то ў Zabbix паступае паток з адных толькі адзінак. Ці трэба іх апрацоўваць? Увогуле-то няма, бо нас толькі цікавіць змену стану прыкладання, мы не жадаем збіраць і захоўваць так шмат дадзеных. Дык вось, тратлінг дазваляе прапускаць значэнне, калі яно ідэнтычнае папярэдняму. У выніку мы атрымаем толькі дадзеныя аб змене стану, напрыклад, 01010101… Цалкам дастаткова інфармацыі для выяўлення праблем!

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

Выйшаў Zabbix 4.2
Ігнаруем паўтараюцца значэння

Выдатна! Цяпер мы можам вельмі часта апытваць прылады, пры гэтым імгненна выяўляць праблемы без захоўвання непатрэбнай інфармацыі ў базе дадзеных.

А як жа графікі? Яны ж будуць пустымі з-за недахопу звестак! І як зразумець, ці збірае Zabbix дадзеныя, калі большасць гэтых дадзеных будзе прапушчана?

Мы і аб гэтым падумалі! Zabbix прапануе яшчэ адзін від тротлінга, тротлінг з кантрольнымі кропкамі праверкі (throttling with heartbeat).

Выйшаў Zabbix 4.2
Раз у хвіліну правяраем, ці жывая метрыка

У гэтым выпадку, Zabbix, нягледзячы на ​​паўтаральны струмень дадзеных, будзе захоўваць прынамсі адно значэнне ў паказаны інтэрвал часу. Калі дадзеныя збіраюцца раз у секунду, а інтэрвал зададзены адной хвілінай, то Zabbix ператворыць штосекундны струмень адзінак у штохвілінны струмень. Нескладана заўважыць, што гэта праводзіць да 60-кратнага сціску атрыманых дадзеных.

Цяпер мы ўпэўненыя, што дадзеныя збіраюцца, функцыя трыгера nodata() працуе і з графікамі ўсё ў парадку!

Валідацыя сабраных дадзеных і апрацоўка памылак

Ніхто з нас не жадае збіраць памылковыя ці няпэўныя дадзеныя. Напрыклад, мы ведаем, што датчык тэмпературы павінен вяртаць дадзеныя ў дыяпазоне ад 0 ° C да 100 ° C і любое іншае значэнне павінна разглядацца як памылковае і / або ігнаравацца.

Цяпер гэта магчыма з дапамогай убудаваных у прэпрацэсінг правіл валідацыі дадзеных па адпаведнасці або адсутнасці адпаведнасці рэгулярным выразам, дыяпазону значэнняў, JSONPath і XMLPath.

Цяпер мы можам кіраваць рэакцыяй на памылку. Калі тэмпература па-за дыяпазонам, то мы можам проста праігнараваць такое значэнне, задаць значэнне па змаўчанні (напрыклад, 0°C ), або вызначыць сваё ўласнае паведамленне пра памылку, напрыклад, "Датчык пашкоджаны" ці "Замяніце батарэйку."

Выйшаў Zabbix 4.2
Тэмпература павінна быць ад 0 да 100, астатняе ігнаруемы

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

Любая трансфармацыя дадзеных з дапамогай JavaScript

Калі нам недастаткова ўбудаваных правіл прэпрацэсінгу, то зараз мы прапануем поўную свабоду з выкарыстаннем адвольных скрыптоў на мове JavaScript!

Выйшаў Zabbix 4.2
Усяго адзін радок кода для пераўтварэння градусаў па фарэнгейце ў градусы цэльсія

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

Цяпер магчымыя трансфармацыя дадзеных, агрэгацыя, фільтры, арыфметычныя і лагічныя аперацыі і многае многае іншае!

Выйшаў Zabbix 4.2
Вымаем карысную інфармацыю з высновы Apache mod_status!

Тэстуем прэпрацэсінг

Цяпер нам не трэба варажыць як жа працуюць нашы складаныя сцэнары прэпрацэсінгу. З'явілася зручная праверка правільнасці працы прэпрацэсінгу прама з інтэрфейсу!

Выйшаў Zabbix 4.2

Апрацоўваем мільёны метрык за секунду!

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

Пачынальна з версіі Zabbix 4.2 мы атрымліваем неверагодна эфектыўнае маштабаванне нагрузкі за рахунак падтрымкі препроцессинга на боку проксі. Цяпер гэтым займаюцца проксі!

Выйшаў Zabbix 4.2

У камбінацыі з тратлінгам такі падыход дазваляе выконваць высокачашчынны маштабны маніторынг і ажыццяўляць мільёны праверак у секунду, не нагружаючы пры гэтым цэнтральны Zabbix сервер. Проксі апрацоўваюць гіганцкія аб'ёмы дадзеных, пры гэтым да Zabbix сервера за кошт тратлінга даходзіць толькі іх невялікая частка, на адзін-два парадку менш.

Прасцейшае нізкаўзроўневае выяўленне

Нагадаем, што нізкаўзроўневае выяўленне (LLD) - гэта вельмі магутны механізм для аўтаматычнага выяўлення любога роду рэсурсаў для маніторынгу (файлавых сістэм, працэсаў, прыкладанняў, сэрвісаў, і г.д.) і аўтаматычнага стварэння на іх аснове элементаў дадзеных, трыгераў, вузлоў сеткі і іншых аб'ектаў. Гэта неверагодна эканоміць час, спрашчае канфігурацыю і дазваляе выкарыстоўваць адзін шаблон для вузлоў сеткі, якія маюць розныя рэсурсы для маніторынгу.

Нізкаўзроўневыя выяўленне патрабавала на ўваходзе спецыяльна аформлены JSON. Усё так больш не будзе!

Zabbix 4.2 дазваляе нізкаўзроўневы выяўленні (LLD) выкарыстоўваць адвольна аформленыя дадзеныя ў фармаце JSON. Чаму гэта важна? Гэта дазваляе, не звяртаючыся да скрыптоў, мець зносіны, напрыклад, з вонкавымі API і выкарыстоўваць атрыманую інфармацыю для аўтаматычнага стварэння вузлоў сеткі, элементаў дадзеных і трыгераў.

У купэ з падтрымкай JavaScript гэта стварае фантастычныя магчымасці для стварэння шаблонаў працы з рознымі крыніцамі дадзеных, такімі як, напрыклад, хмарныя API, API прыкладанняў, дадзеныя ў фарматах XML, CSV і іншае і іншае.

Выйшаў Zabbix 4.2
Звязваем JSON з інфармацыяй аб працэсах з LLD

Магчымасці сапраўды бязмежныя!

Падтрымка TimescaleDB

Выйшаў Zabbix 4.2

Што такое TimescaleDB? Гэта звычайны PostgreSQL плюс модуль пашырэння ад каманды TimescaleDB. TimescaleDB абяцае лепшую прадукцыйнасць за кошт больш эфектыўных алгарытмаў і структуры даных.

Акрамя гэтага, яшчэ адной перавагай TimescaleDB з'яўляецца аўтаматычнае партыцыраванне табліц з гісторыяй. TimescaleDB гэта хуткасць і прастата абслугоўвання! Хоць, я павінен адзначыць, што наша каманда пакуль яшчэ не праводзіла сур'ёзнага параўнання прадукцыйнасці са звычайным PostgreSQL.

На дадзены момант TimescaleDB з'яўляецца дастаткова маладым і хутка развіваецца прадуктам. Выкарыстоўвайце з асцярожнасцю!

Лёгкае кіраванне тэгамі

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

Усе выяўленыя праблемы атрымліваюць тэгі не толькі трыгера, але і вузла сеткі, а таксама шаблонаў гэтага вузла сеткі.

Выйшаў Zabbix 4.2
Вызначаем тэгі для вузла сеткі

Больш гнуткая аўтарэгістрацыя

Zabbix 4.2 дазваляе фільтраваць вузлы сеткі па імі, выкарыстоўваючы рэгулярныя выразы. Гэта дае магчымасць ствараць розныя сцэнары выяўлення для розных груп вузлоў сеткі. Асабліва зручна, калі ў нас выкарыстоўваюцца складаныя правілы наймення прылад.

Больш гнуткае сеткавае выяўленне

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

Гэта вельмі патрэбная функцыянальнасць, асабліва пры сеткавым выяўленні з дапамогай SNMP і Zabbix агента.

Выйшаў Zabbix 4.2
Аўтаматычна прызначаем лакальнае імя вузла сеткі бачным імем

Праверка працаздольнасці спосабаў абвесткі

Цяпер прама з Вэб-інтэрфейсу можна адправіць сабе тэставае паведамленне і праверыць, ці працуе спосаб абвесткі. Асабліва гэтая функцыянальнасць карысная для праверкі скрыптоў аб'яднання Zabbix з рознымі сістэмамі абвесткі, сістэмамі задач і іншымі вонкавымі праграмамі і API.

Выйшаў Zabbix 4.2

Выдалены маніторынг кампанентаў інфраструктуры Zabbix

З'явілася магчымасць выдаленага маніторынгу ўнутраных метрык Zabbix сервера і проксі (метрык прадукцыйнасці і працаздольнасці кампанентаў Zabbix).

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

Падтрымка фармату HTML для email паведамленняў

Цяпер мы не абмежаваныя простым тэкстам і можам фармаваць прыгожыя e-mail паведамленні, дзякуючы наяўнасці падтрымкі фармату HTML. Час вывучаць HTML + CSS!

Выйшаў Zabbix 4.2
Паведамленні лягчэй успрымаць нават пры мінімальным выкарыстанні HTML

Доступ да знешніх сістэм з сеткавых карт

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

Выйшаў Zabbix 4.2
Адным клікам адчыняны тыкет у Jira

Правіла выяўлення можа быць залежным элементам даных

Навошта гэта трэба - спытаеце вы. Гэта дазваляе выкарыстоўваць дадзеныя асноўнай метрыкі як для выяўлення, так і для непасрэднага збору дадзеных. Напрыклад, у выпадку збору дадзеных з экспарцёра Prometheus, Zabbix ажыццявіць адзін HTTP запыт і неадкладна выкарыстоўвае атрыманую інфармацыю для ўсіх залежных элементаў дадзеных: значэнняў метрык і правіл нізкаўзроўневага выяўлення.

Новы спосаб візуалізацыі праблем на картах

З'явілася падтрымка аніміраваных GIF малюнкаў на картах для больш прыкметнай візуалізацыі праблем.

Выйшаў Zabbix 4.2
Праблемныя прылады сталі больш прыкметнымі

Вымаемы дадзеныя з загалоўкаў HTTP у Вэб-маніторынгу

У Вэб-маніторынгу дадалася магчымасць выбіраць дадзеныя з атрыманага загалоўка HTTP.

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

Выйшаў Zabbix 4.2
Вымаемы AuthID з загалоўка HTTP

Zabbix Sender выкарыстоўвае ўсе IP адрасы

Zabbix Sender зараз адпраўляе дадзеныя па ўсіх IP адрасах з параметра ServerActive канфігурацыйнага файла агента.

Выйшаў Zabbix 4.2

Зручны новы фільтр у канфігурацыі трыгераў

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

Выйшаў Zabbix 4.2
Выбіраемы трыгеры, якія адносяцца да сэрвісу K8S

Паказваем дакладны час

Тут усё проста, зараз Zabbix паказвае дакладны час пры навядзенні мышкай на графік.

Выйшаў Zabbix 4.2

Іншыя новаўвядзенні

  • Рэалізаваны больш прадказальны алгарытм для змены парадку размяшчэння віджэтаў у dashboard (панэлі)
  • Магчымасць масавай змены параметраў прататыпаў элементаў дадзеных
  • Падтрымка IPv6 для праверак DNS: "net.dns" і "new.dns.record"
  • Дадаўся параметр "skip" для праверак "vmware.eventlog"
  • Памылка выканання кроку прэпрацэсінгу складаецца з нумар кроку

Як абнавіцца?

Для пераходу з больш ранніх версій неабходна толькі ўстаноўка новых бінарных файлаў (сервера і проксі) і новага інтэрфейсу. Zabbix аўтаматычна правядзе працэдуру абнаўлення базы даных. Устаноўка новых агентаў не спатрэбіцца.

Мы праводзім бясплатныя вебинары для тых для тых, хто хоча больш падрабязна даведацца пра Zabbix 4.2 і мець магчымасць задаць пытанні камандзе Zabbix. Запісвайцеся!

Не забываем аб папулярным Telegram канале Zabbix супольнасці, дзе заўсёды можна атрымаць кансультацыю і адказы на свае пытанні на рускай мове ад больш дасведчаных калег, а, калі павязе, то і ад саміх распрацоўшчыкаў Zabbix. Для пачаткоўцаў рэкамендуем групу для пачаткоўцаў.

Карысныя спасылкі

- Выпуск нататкі
- Upgrade notes
- Арыгінальны артыкул

Крыніца: habr.com

Дадаць каментар