I midten af maj blev version Zabbix 5.0 udgivet, og vi organiserede en række online-møder på forskellige sprog for at tydeligt demonstrere alle ændringer og nye funktioner for samfundet. Vi inviterer dig til at se på præsentationen fra administrerende direktør og skaber af Zabbix, Alexey Vladychev, hvor han trin-for-trin forklarer, hvad der er nyt i Zabbix 5.0.

Zabbix 4.2 og Zabbix 4.4
Lad os starte med ændringerne, der kom i version Zabbix 4.0, i forbindelse med brugen af LTS-versioner.
I version Zabbix 4.2, der blev udgivet i april 2019, blev følgende funktionaliteter tilføjet:
- Højfrekvent overvågning ved hjælp af throttling, som sikrer skalerbarhed og øger NVPS, hvilket betyder hurtigere opdagelse af problemer og rettidige varslinger uden stor belastning på Zabbix.
- Dataindsamling ved hjælp af HTTP-agent.
- Support for dataindsamling fra Prometheus Pro.
- Forbehandling understøtter validering og JavaScript, som giver mulighed for at transformere alle indsamlede data.
- Forbehandling på proxy-siden, som giver mere effektiv skalering ved hjælp af proxy.
- Forbedret tag-håndtering — meta-information på niveau med hændelser og problemer, som er nem at arbejde med, fordi tags er understøttet både på skabelons- og netværksnode-niveau.
I september sidste år blev version Zabbix 4.4 udgivet, som tilbød følgende funktionaliteter:
- Ny Zabbix-agent.
- Support for Webhook til varsler og meddelelser, hvilket muliggør integration med eksterne systemer.
- Support for TimescaleDB.
- Den indbyggede vidensdatabase for metrics og triggere blev synlig for Zabbix-brugere. For eksempel kan brugerne bruge beskrivelser af dataelementer og triggere i Monitoring > Seneste data.
- Ny standard for skabeloner.
Zabbix 5.0
I dag vil vi tale om LTS-udgivelsen af Zabbix 5.0, som vil blive understøttet i 5 år. Support til version 4.4 stopper om en måned. LTS-udgivelsen af Zabbix 3.0 vil blive understøttet i yderligere 3,5 år.
Zabbix muliggør overvågning af mange ting, hvis liste kan præciseres på siden , hvor skabeloner til overvågning og plugins præsenteres, herunder for den nye agent.

Tilgængelige skabeloner til overvågning og integration
Desuden findes der integrationsmuligheder med forskellige systemer, herunder billetsystemer, ITSM-systemer og beskedleveringssystemer ved hjælp af Webhook.

Integrationsmuligheder
I Zabbix 5.0 er der udvidet indbygget støtte til integration med forskellige ticket-systemer samt alarmsystemer:

Integration med forskellige systemer
Listen over indbyggede skabeloner til overvågning af applikationer og enheder er blevet udvidet:

Indbyggede skabeloner til overvågning af applikationer og enheder
Alle opdateringer er tilgængelige for download i .
Enhver bruger eller udvikler kan deltage i Zabbix med egne skabeloner eller plugins ved at følge en simpel procedure:
- Underskriv Zabbix Contributory Agreement (ZCA) på .
- Opret Pull Request på .
- Vurdering af ansøgningen af udviklingsteamet. Hvis plugin'et eller skabelonen opfylder Zabbix' standarder, inkluderes det i produktet, og arbejdet fra den udvikler vil blive officielt understøttet af Zabbix-teamet.
Zabbix er open source-software, der er tilgængelig for visning, undersøgelser og ændringer. Brugeren har mulighed for frit at benytte produktet, deltage i videreudviklingen eller bruge koden til sine egne nye programmer. På den anden side gør Zabbix-teamet alt, hvad der er muligt for, at Zabbix kan installeres nemt på forskellige platforme.
Zabbix-udviklerne tilbyder pakker til næsten alle de mest populære distributioner og forskellige virtualiseringsplatforme. Desuden kan Zabbix med et enkelt klik installeres i en offentlig cloud. Zabbix er også tilgængelig på Red Hat Openshift eller OpenStack-platforme.

Zabbix-pakker til distributioner og platforme
Støtte til Zabbix Agent 2 til Windows og Linux
Den nye Zabbix Agent 2 er en af de bedste løsninger på markedet.
- Den tilbyder en plugin-baseret struktur og understøtter scripts til datainnsamling, som kan køre i timer.
- Understøtter parallel aktive tjek og vedvarende forbindelser til eksterne systemer, hvilket er nyttigt for effektiv overvågning af databaser.
- Understøtter traps og events, hvilket er vigtigt for overvågning af for eksempel MQTT-enheder.
- Den nye version af agenten er nem at installere (da den nye agent understøtter alle tidligere funktionaliteter).
Derudover tilbydes der i Zabbix 5.0 støtte til vedvarende datalagring for den nye agent. Tidligere blev ikke-aktiveret information kun gemt i agentens hukommelse, mens den nye version tilbyder indstillinger for opbevaring af sådanne oplysninger på disken.

Permanent datalagring
Dette er vigtigt i tilfælde af overvågning af kritiske systemer og ustabile forbindelser, da et stort antal vigtige data gemmes, indtil de sendes til Zabbix-serveren. Optionen er også nyttig for satellitforbindelser, der måske er utilgængelige i længere perioder.
VIGTIGT! I Zabbix 5.0 er der stadig støtte for Zabbix Agent 1.
Ændringer i sikkerhedssystemet i Zabbix 5.0
1. Den nye version understøtter HTTP-proxy til webhook, som gør det muligt at oprette forbindelser fra Zabbix-serveren til eksterne alarmsystemer på en mere sikker og kontrolleret måde.
Hvis der er behov for integration af Zabbix-serveren i et lokalt netværk med et eksternt system, for eksempel JIRA i skyen, kan forbindelsen opretholdes gennem en HTTP-proxy, hvilket forbedrer kontrol og pålidelighed af forbindelsen.
2. Både den gamle og den nye agent giver mulighed for at vælge, hvilke specifikke checks der skal være tilgængelige på den enkelte agent. For eksempel kan antallet af checks begrænses, hvilket reelt skaber hvide og sorte lister, samt definere understøttede nøgler.
- Whitelist til MySQL-relaterede kontroller
AllowKey=mysql[*] DenyKey=* - Blacklist for at nægte alle shell-scripts
DenyKey=system.run[*] - Blacklist for at nægte adgang til /etc/password
DenyKey=vfs.file.contents[/etc/passwd,*]
3. Det er muligt at vælge krypteringsmetoder for alle Zabbix-komponenter for at undgå brugen af usikre krypteringer til TLS-forbindelser. Dette er vigtigt for overvågning af miljøer, hvor bestemte sikkerhedsstandarder anvendes.

Valg af krypteringsmetoder til TLS-forbindelser
4. Zabbix 5.0 har introduceret støtte til krypterede forbindelser til databasen. På nuværende tidspunkt er kun krypterede forbindelser til PostgreSQL og MySQL tilgængelige.

Krypterede forbindelser til databasen
5. Zabbix 5.0 er gået fra MD5 til SHA256 for opbevaring af brugernes adgangskode-hashes i databasen, da dette på nuværende tidspunkt er den sikreste algoritme.
6. Zabbix 5.0 understøtter hemmelige brugermakroer til opbevaring af enhver fortrolig information, såsom adgangskoder og API-nøgler, til hvilke slutbrugerne ikke har adgang.

Hemmelig makroer
7. Alle Zabbix-forbindelser til eksterne systemer og interne forbindelser til agenter er sikre. Der understøttes kryptering ved brug af TLS-certifikater eller ved hjælp af en forud offentliggjort nøgle (pre-shared key encryption) til forbindelse med agenter og proxyer, samt HTTPS. Sikkerheden på agenternes side kan forbedres ved hjælp af hvide og sorte lister. Grænsefladen fungerer via HTTPS.

Sikre forbindelser
8. Understøttelse af SAML for at sikre en enkelt autentificeringspunkt hos en pålidelig identitetstjenesteudbyder, så brugerens legitimationsoplysninger ikke forlader brandmurens grænser.

SAML-identifikation
SAML-understøttelse gør det muligt at integrere Zabbix med forskellige lokale og cloud-baserede identitetstjenesteudbydere, såsom Microsoft ADFS, OpenAM, SecurAuth, Okta, Auth0 samt Azure, AWS eller Google Cloud Platform.
Brugervenlighed af Zabbix 5.0
1. Brugergrænseflade optimeret til brede skærme. Vi har flyttet menuen fra toppen, hvor der altid mangler plads, til venstre side af skærmen. Menuen vises stadig i fuld, minimal og skjult tilstand.

Grænseflade optimeret til bred skærm
2. Kopiering af widgets fra paneler giver mulighed for hurtigt at oprette nye PANELER. For dette skal man vælge den ønskede widget i PANLET, trykke på Copy

Kopiering af widget
og indsætte widgeten i det ønskede panel.

Indsætning af den kopierede widget
3. Eksport af grafer. For at kopiere en graf og sende den f.eks. via e-mail, kan man få grafen i PNG-format ved at vælge den ønskede widget og trykke på Download image.

Eksport af grafer
4. Filtrering efter tags: Problem by severity og Problem hosts. Der er nu mulighed for eksempelvis at samle alle problemer relateret til en bestemt netværksnode i et data-center.

Filtrering efter tags
5. Understøttelse af moduler til udvidelse af Zabbix-grænsefladen. For at installere et uafhængigt modul skal man kopiere det til en bestemt mappe. Modulerne gør det muligt at udvide den eksisterende grænseflades funktionalitet, oprette nye sider, ændre menustrukturen, for eksempel ved at tilføje punkter.
Enhver bruger kan skrive og integrere et modul. For dette kopieres modulet til mappen modules, hvorefter den bliver synlig for grænsefladen, hvor den kan aktiveres og deaktiveres.

Tilføjelse af en ny modul
6. Enkelhed i navigationen mellem ressourcer relateret til netværkets noder. I Monitoring > Hosts viser listen over enheder, som Zabbix overvåger: netværksnoder, tjenester, netværksenheder osv. Derudover er hurtig navigation til skærme, grafer og problemer med specifikke enheder tilgængelig.
Vi har fjernet fanerne Monitoring > Graphs og Monitoring > Webs, og al navigation foregår gennem Monitoring > Hosts. Den viste information kan filtreres, herunder efter tags, hvilket muliggør visning af inaktive enheder

Navigation mellem ressourcer relateret til netværkets noder
For eksempel kan der vælges enheder, der tilhører slutbrugerens tjenester, ved at vælge ‘Service’ og angive alvorlighedsniveauet for disse problemer.

Filtreringsmuligheder
7. Ny forbehandlingsoperation - 'Erstat' gør det muligt at udføre flere nyttige ting, som tidligere kun kunne gøres ved hjælp af regulære udtryk, der er ret komplicerede for mange brugere.
Replace giver mulighed for effektivt at erstatte én streng eller tegn med andre, hvilket muliggør simpel konvertering af data modtaget i tekstformat til numerisk repræsentation.

Replace-operatoren
8. JSONPath-operatoren, der muliggør udtrækning af attributnavne i en brugervenlig form

Operator til JSONPath
9. Visning af Zabbix-e-mails. I tidligere versioner blev alle e-mails fra Zabbix i mappen Indbakke vist som en liste. Fra Zabbix 5.0 vil beskeder blive grupperet efter problemer.

Gruppering af Zabbix-e-mails
10. Understøttelse af brugerdefinerede makroer til IPMI for brugernavn og password. Hvis der anvendes hemmelige makroer til brugernavn og password, vil adgangen til deres værdier være lukket.

Understøttelse af brugerdefinerede makroer
11. Masseredigering af brugerdefinerede makroer for netværksnoder. I den nye version kan man åbne listen over skabeloner, vælge en liste over netværksnoder og tilføje makroer eller ændre værdierne for eksisterende makroer,

Tilføjelse og ændring af brugerdefinerede makroer
samt slette bestemte eller alle makroer fra de valgte skabeloner for netværksnoder.

Sletning af enkelte eller alle brugerdefinerede makroer
12. Kontrol af meddelelsesformat på niveauet for varslingstype. I Medietyper kom en fane Medietemplates med beskedskabeloner.

Skabeloner til meddelelsesmetoder
For forskellige typer meddelelser kan forskellige skabeloner defineres.

Definition af skabelon for meddelelsestyper
I tidligere versioner skulle disse meddelelser styres på handlingsniveau, ved at definere meddelelser og standardemner.

Styring af skabeloner på handlingsniveau
I den nye version kan alt defineres på globalt niveau, og på meddelelsesniveau kan globale indstillinger skrives om.

Styring af skabeloner på globalt niveau
For de fleste brugere er det tilstrækkeligt at definere skabelonformater på meddelelsesmetode niveau. Desuden, efter import af en ny meddelelsesmetode, er alle de relevante skabelonformater allerede en del af den.
13. Bredere anvendelse af JavaScript. JavaScript bruges til forbehandlingsscripts, til Webhook osv. Det er ikke let at arbejde med JavaScript i kommandolinjen.
I Zabbix 5.0 bruges et nyt værktøj — zabbix_js, som udfører JavaScript, der modtager data, behandler dem og genererer outputværdier.

Værktøjet zabbix_js

Eksempler på brug af værktøjet zabbix_js
14. Support for tekstoperationer med triggerudtryk giver mulighed for at kontrollere versionerne af installerede komponenter, sammenligne værdier med nogen konstanter, hvor konstanten kan være en brugerdefineret makro,
{host:zabbix.version.last()}="5.0.0"
{host:zabbix.version.last()}="{$ZABBIX.VERSION}sammenligne den seneste værdi med den forrige, for eksempel når det gælder tekstdata,
{host:text.last()}<>{host.text.prev()}eller
{host:text.last(#1)}<>{host.text.prev(#2)}eller sammenligne tekstværdier for forskellige metrikker.
{hostA:textA.last()}={hostB:textB.last()}15. Automatisering og opdagelse.
- Der er nye JMX-tjek til at hente og opdage lister over JMX-tællere, hvilket er meget nyttigt, for eksempel til overvågning af Java-applikationer, samt til automatisering af oprettelse af overvågningspunkter, metrikker, triggers og diagrammer.
jmx.get[]og
jmx.discovery[]
JMX-tjek - I den nye version er der blevet tilføjet en nøgle til overvågning af Windows-ydeevnetællere, som understøttes af både gamle og nye agenter på russisk og engelsk og som f.eks. gør det muligt at opdage antallet af processorer, filsystemer, tjenester osv.

Overvågning af Windows-ydeevnetællere med hjælp fra nøglen perf_counter - ODBC-overvågning er blevet meget lettere. Tidligere var det nødvendigt at beskrive alle parametre for ODBC-overvågning i en ekstern fil /etc/odbc.ini, som ikke kunne tilgås fra Zabbix-interfacet. I den nye version kan stort set alle parametre være en del af metrics-nøglen.

Metrics-nøgle med parameternotationI den nye version kan servernavn og port angives på metrics-niveau, mens brugernavn og adgangskode til adgang kan bruges med hemmelige makroer for sikkerhed.

Brug af hemmelige makroer - Ved brug af IPMI-protokollen til overvågning af udstyr er der opstået mulighed for at oprette enklere skabeloner til automatisering ved hjælp af ipmi.get.

ipmi.get
16. Test af dataelementer fra interfacet. I Zabbix 5.0 åbnes muligheden for at teste nogle dataelementer og, endnu vigtigere, skabeloner for dataelementer fra interfacet.

Test af dataelementer
Eventuelle opståede problemer vises i interfacet.

Visning af problemer i interfacet
En tilsvarende algoritme anvendes til skabeloner for dataelementer. Desuden, hvis et dataelement ikke understøttes, kan man, for at finde årsagen til fejlen, blot trykke på Test.
17. Test af meddelelsesmetoder, som blev introduceret i Zabbix 4.4, bevares, hvilket er vigtigt ved integration af Zabbix med andre systemer, som eksempelvis ticket-systemer.

Test af meddelelsesmetoder
18. Understøttelse af brugerdefinerede makroer til prototyper af dataelementer. For at bestemme værdierne for brugerdefinerede makroer kan LLD-makroer anvendes.

Brug af LLD-makroer til at bestemme værdierne for brugerdefinerede makroer
19. Understøttelse af Float64-data, som primært er nødvendigt til overvågning af meget store værdier, kræves i Zabbix for at kunne håndtere data modtaget fra Prometheus-agenter.
Når man installerer Zabbix 5.0, sker der ikke automatisk migration af data til Float64-standarden. Brugeren har stadig mulighed for at bruge de gamle datatyper. Scripts til migration til Float64 køres manuelt og ændrer datatyperne i historiske tabeller. Automatisk erstatning anvendes ikke, da det tager meget lang tid.
20. Forbedring af skalerbarhed i Zabbix 5.0: optimering af interfacet og fjernelse af 'flaskehalse'
- Dropdowns for selecting network nodes have been removed because this feature does not scale.
- There are now 'built-in' limits for table sizes. Oversigt.
- New features have appeared in Monitoring > Hosts > Graphs.
- The paging function has been introduced (Monitoring > Hosts > Web) where it was previously unavailable.
21. Improved compression
Compression in Zabbix is based on the TimescaleDB extension for PostgreSQL (starting from Zabbix 4.4). TimescaleDB provides automatic database partitioning and enhances its performance since the performance of TimescaleDB is virtually independent of the database size.
In Zabbix 5.0 in Administration > General > Housekeeping you can configure, for example, data compression older than 7 days. This significantly reduces the required disk space (almost ten times, according to user data), improving disk space efficiency and enhancing performance.

Compression using TimescaleDB
22. SNMP configuration at the interface level. In Zabbix 5.0, only one type of data item is used instead of three — SNMP agent. All SNMP attributes have been moved to the network node interface level, simplifying templates, switching between SNMP versions, etc.

SNMP configuration at the interface level
23. Monitoring dependency of network node availability on proxy availability allows displaying proxy availability issues as a priority in case of network node unavailability when monitoring using a trigger with the function nodata:
{HostA:item.nodata(1m)}=1
Network node availability is defined by the availability of the proxy.
Funktion nodata By default, it takes into account the availability of the proxy. For stricter verification that does not take proxy availability into account, the second parameter is used — strict:
{HostA:item.nodata(1m,strict)}=124. Management of low-level discovery rules. In Zabbix 5.0, an LLD filter was introduced, allowing the viewing of unsupported discovery rules as well.

LLD filter
25. The ability to unacknowledge an issue allows for fixing mistakes and is useful when creating workflows dependent on issue acknowledgment.Unacknowledging an issue

26. Modifying low-level discovery rules.
26. Ændring af reglerne for lavniveau-opdagelse Muligheden for at tilføje undtagelser ved opdagelse af objekter som følge af overvågning af filsystemer giver mulighed for at oprette eller ikke oprette bestemte objekter, triggere, datapunkter osv., ændre vigtigheden af problemer, tilføje tags til bestemte objekter, udelukke objekter som f.eks. midlertidige filsystemer fra søgningen, ændre opdateringsintervallet for data osv.

Udelukkelse af midlertidige filsystemer fra lavniveauopdagelse
For eksempel kan man ændre prioriteringsniveauet for triggere for de opdagede Oracle-filsystemer, mens prioriteringsniveauet for triggere for andre filsystemer forbliver uændret.

Ændring af prioriteringsniveauet for triggere til bestemte filsystemer
27. Nye makroer i Zabbix 5.0 giver mulighed for at forbedre overvågningen.

Nye makroer i Zabbix 5.0
28. Andre nye funktioner i Zabbix 5.0:

Forbedringer i Zabbix 5.0
29. Stop af support

Ikke-understøttet funktionalitet
Konklusion
Det er meget enkelt at opgradere til Zabbix 5.0! Installer og kør de nye binære filer til serveren og frontend-filerne, så opdaterer serveren automatisk din database.
Information om opgraderingsproceduren for Zabbix findes på:
VIGTIGT!
- Opdatering af historiske data til Float64-format er ikke påkrævet.
- TimescaleDB-data er kun tilgængelige til læsning.
- Mindste påkrævede version er PHP 7.2.
- DB2 understøttes ikke som backend for Zabbix-serveren
(!) Videoer og dias fra præsentationer af Alexey Vladyshev og andre talere ved Zabbix Meetup Online (russisk) kan ses .
Kilde: habr.com





