En aneren Iwwerwachungssystem

En aneren Iwwerwachungssystem
16 Modem, 4 Handysbetreiber = Ausgangsgeschwindegkeet 933.45 Mbit/s

Aféierung

Hallo! Dësen Artikel ass iwwer wéi mir en neien Iwwerwaachungssystem fir eis selwer geschriwwen hunn. Et ënnerscheet sech vun existente a senger Fäegkeet fir héichfrequenz Synchron Metriken a ganz nidderegen Ressourceverbrauch ze kréien. De Pollingrate kann 0.1 Millisekonnen erreechen mat enger Synchroniséierungsgenauegkeet tëscht Metriken vun 10 Nanosekonnen. All binär Dateien besetzen 6 megabytes.

Iwwer de Projet

Mir hunn en zimlech spezifescht Produkt. Mir produzéieren eng ëmfaassend Léisung fir den Duerchgang a Feelertoleranz vun den Datenübertragungskanäl ze resuméieren. Dëst ass wann et e puer Kanäl sinn, loosst eis soen Operator1 (40Mbit/s) + Operator2 (30Mbit/s)+ Soss eppes (5 Mbit/s), d'Resultat ass e stabile a séiere Kanal, d'Geschwindegkeet vun deem eppes wäert sinn dëst: (40+ 30+5) x0.92 = 75 × 0.92 = 69 Mbit / s.

Esou Léisunge si gefrot, wou d'Kapazitéit vun engem Kanal net genuch ass. Zum Beispill, Transport, Video Iwwerwaachungssystemer an Echtzäit Video Streaming, Sendung vu Live Fernseh- a Radiosendungen, all Faubourgen Ariichtungen, wou ënnert den Telekomoperateuren nëmmen Vertrieder vun de Big Four sinn an d'Geschwindegkeet op engem Modem/Kanal net genuch ass. .
Fir all eenzel vun dëse Beräicher produzéiere mir eng separat Linn vun Apparater, mä hir Software Deel ass bal d'selwecht an héich-Qualitéit Iwwerwachung System ass ee vun hiren Haapt Moduler, ouni déi richteg Ëmsetzung vun deem de Produit net méiglech wier.

Am Laf vun e puer Joer hu mir et fäerdeg bruecht e Multi-Level, séier, Cross-Plattform a liicht Iwwerwaachungssystem ze kreéieren. Dëst ass wat mir mat eiser respektéierter Gemeinschaft wëllen deelen.

Problemerklärung

D'Iwwerwaachungssystem liwwert Metriken vun zwou grondsätzlech verschidde Klassen: Echtzäit Metriken an all aner. D'Iwwerwaachungssystem hat nëmmen déi folgend Ufuerderungen:

  1. Héichfrequenz Synchron Acquisitioun vun Echtzäit Metriken an hir Transfert ouni Verspéidung un de Kommunikatiounsmanagementsystem.
    Héich Frequenz a Synchroniséierung vu verschiddene Metriken ass net nëmme wichteg, et ass vital fir d'Entropie vun den Datetransmissionskanäl ze analyséieren. Wann an engem Datenübertragungskanal d'Duerchschnëttsverzögerung 30 Millisekonnen ass, da féiert e Feeler bei der Synchroniséierung tëscht de verbleiwen Metriken vun nëmmen enger Millisekonnen zu enger Verschlechterung vun der Geschwindegkeet vum resultéierende Kanal ëm ongeféier 5%. Wa mir den Timing ëm 1 Millisekonnen iwwer 4 Kanäl mistimen, kann d'Geschwindegkeetsdegradatioun einfach op 30% falen. Zousätzlech ännert d'Entropie an de Kanäl ganz séier, also wa mir et manner wéi eemol all 0.5 Millisekonnen moossen, op schnelle Kanäl mat enger klenger Verzögerung wäerte mir eng Héichgeschwindegkeet Degradatioun kréien. Natierlech ass esou Genauegkeet net fir all Metriken gebraucht an net an all Konditiounen. Wann d'Verzögerung am Kanal 500 Millisekonnen ass, a mir schaffen mat esou, da gëtt e Feeler vun 1 Millisekonnen bal net bemierkbar. Och, fir Liewen Ënnerstëtzung System Metriken, hu mir genuch Ëmfro- a Synchroniséierungsraten vun 2 Sekonnen, awer d'Iwwerwaachungssystem selwer muss fäeg sinn mat ultra-héigen Ëmfroraten an ultra-präzis Synchroniséierung vu Metriken ze schaffen.
  2. Minimal Ressource Konsum an engem eenzege Stack.
    D'Enn-Apparat kann entweder e mächtege Bordkomplex sinn, deen d'Situatioun op der Strooss analyséiere kann oder biometresch Opnam vu Leit maachen, oder e Palm-Gréisst Single-Board Computer, deen e Spezialkräften Zaldot ënner senger Kierperbewaffnung dréit fir Video ze iwwerdroen. Echtzäit an aarme Kommunikatiounsbedéngungen. Trotz esou enger Varietéit vun Architekturen a Rechenkraaft, wëlle mir dee selwechte Software Stack hunn.
  3. Regenschirm Architektur
    Metriken mussen um Ennapparat gesammelt a aggregéiert ginn, lokal gespäichert a visualiséiert an Echtzäit a retrospektiv. Wann et eng Verbindung ass, transferéiert d'Donnéeën an den zentrale Iwwerwaachungssystem. Wann et keng Verbindung ass, soll d'Sendschlaang accumuléieren an net RAM verbrauchen.
  4. API fir d'Integratioun an d'Iwwerwaachungssystem vum Client, well keen brauch vill Iwwerwaachungssystemer. De Client muss Daten aus all Apparater an Netzwierker an eng eenzeg Iwwerwaachung sammelen.

Wat ass geschitt

Fir déi scho beandrockend Longread net ze belaaschten, ginn ech keng Beispiller a Miessunge vun all Iwwerwaachungssystemer. Dëst wäert zu engem aneren Artikel féieren. Ech soen just datt mir net fäeg sinn en Iwwerwaachungssystem ze fannen deen fäeg ass zwee Metriken gläichzäiteg mat engem Feeler vu manner wéi 1 Millisekonnen ze huelen an deen gläich effektiv funktionnéiert souwuel op ARM Architektur mat 64 MB RAM an op x86_64 Architektur mat 32 GB vum RAM. Dofir hu mir décidéiert eis eegen ze schreiwen, déi dat alles maache kënnen. Hei ass wat mir kruten:

Zesummefaassung vum Duerchgang vun dräi Kanäl fir verschidde Netzwierktopologien


Visualiséierung vun e puer Schlëssel Metriken

En aneren Iwwerwachungssystem
En aneren Iwwerwachungssystem
En aneren Iwwerwachungssystem
En aneren Iwwerwachungssystem

Architektur

Mir benotzen Golang als Haaptprogramméierungssprooch, souwuel um Apparat wéi am Rechenzentrum. Et huet d'Liewen immens vereinfacht mat senger Ëmsetzung vu Multitasking an der Fäegkeet fir eng statesch verlinkt ausführbar binär Datei fir all Service ze kréien. Als Resultat spuere mir wesentlech u Ressourcen, Methoden a Verkéier fir de Service z'installéieren fir Geräter z'ënnerhalen, Entwécklungszäit a Code Debugging.

De System gëtt nom klassesche modulare Prinzip ëmgesat an enthält verschidde Subsystemer:

  1. Metrik Aschreiwung.
    All Metrik gëtt duerch säin eegene Fuedem zerwéiert an iwwer Kanäl synchroniséiert. Mir konnten d'Synchroniséierungsgenauegkeet vu bis zu 10 Nanosekonnen erreechen.
  2. Metrik Stockage
    Mir hu gewielt tëscht eisen eegene Späichere fir Zäitserie ze schreiwen oder eppes ze benotzen wat scho verfügbar war. D'Datebank ass néideg fir Retrospektiv Donnéeën, déi zu spéider visualization ënnerleien ass. Dat ass, et enthält keng Daten iwwer Verspéidungen am Kanal all 0.5 Millisekonnen oder Feeler Liesungen am Transport Reseau, mä et gëtt Vitesse op all Interface all 500 Millisekonnen. Zousätzlech zu den héijen Ufuerderunge fir Cross-Plattform a niddereg Ressourceverbrauch ass et extrem wichteg fir eis ze veraarbechten. Daten ass wou se gespäichert sinn. Dëst spuert enorm Rechenressourcen. Mir hunn den Tarantool DBMS an dësem Projet zënter 2016 benotzt a bis elo gesi mir keen Ersatz fir et um Horizont. Flexibel, mat optimal Ressource Konsum, méi wéi adäquate technesch Ënnerstëtzung. Tarantool implementéiert och e GIS Modul. Natierlech ass et net sou mächteg wéi PostGIS, awer et ass genuch fir eis Aufgaben fir e puer Location-relatéiert Metriken ze späicheren (relevant fir Transport).
  3. Visualiséierung vu Metriken
    Hei ass alles relativ einfach. Mir huelen Daten aus dem Lager a weisen se entweder an Echtzäit oder retrospektiv.
  4. Synchroniséierung vun Daten mam zentrale Iwwerwaachungssystem.
    Den zentrale Iwwerwachungssystem kritt Daten vun all Apparater, späichert se mat enger spezifizéierter Geschicht a schéckt se an de Client Iwwerwachungssystem iwwer API. Am Géigesaz zu klassesche Iwwerwaachungssystemer, an deenen de "Kapp" ​​ronderëm geet a sammelt Daten, hu mir de Géigendeel Schema. D'Apparater selwer schécken Daten wann et eng Verbindung ass. Dëst ass e ganz wichtege Punkt, well et erlaabt Iech Daten aus dem Apparat fir déi Zäitperioden ze kréien, während deenen et net verfügbar war an net Kanäl a Ressourcen lueden wann den Apparat net verfügbar ass. Mir benotzen Influx Iwwerwaachungsserver als zentrale Iwwerwaachungssystem. Am Géigesaz zu sengen Analoga kann et retrospektiv Donnéeën importéieren (dat heescht, mat engem Zäitstempel anescht wéi de Moment wou d'Metriken opgeholl goufen).Déi gesammelt Metriken gi vu Grafana visualiséiert, mat enger Datei geännert. Dëse Standard Stack gouf och gewielt well et fäerdeg API Integratiounen mat bal all Client Iwwerwachung System huet.
  5. Donnéeën Synchroniséierung mat engem zentrale Apparat Gestioun System.
    Den Apparat Management System implementéiert Zero Touch Provisioning (Aktualiséierung vun Firmware, Konfiguratioun, etc.) an, am Géigesaz zum Iwwerwaachungssystem, kritt nëmmen Probleemer pro Apparat. Dëst sinn Ausléiser fir d'Operatioun vun onboard-Hardware Iwwerwaachungsservicer an all Metriken vu Liewenssupportsystemer: CPU an SSD Temperatur, CPU Belaaschtung, fräi Plaz a SMART Gesondheet op Disken. D'Subsystemlagerung ass och op Tarantool gebaut. Dëst gëtt eis bedeitend Geschwindegkeet bei der Aggregatioun vun Zäitreihe iwwer Dausende vun Apparater, an léist och komplett d'Thema vun der Synchroniséierung vun Daten mat dësen Apparater. Tarantool huet en exzellente Schlaangen a garantéierte Liwwersystem. Mir hunn dës wichteg Feature aus der Këscht, super!

Netzwierk Management System

En aneren Iwwerwachungssystem

Wat ass Next

Bis elo ass eise schwaachste Link den zentrale Iwwerwaachungssystem. Et gëtt 99.9% op engem Standard Stack implementéiert an huet eng Rei Nodeeler:

  1. InfluxDB verléiert Daten wann d'Kraaft verluer geet. Als Regel, sammelt de Client prompt alles wat aus den Apparater kënnt an d'Datebank selwer enthält keng Daten méi al wéi 5 Minutten, awer an Zukunft kann dëst e Schmerz ginn.
  2. Grafana huet eng Rei vu Probleemer mat Datenaggregatioun an Synchroniséierung vu sengem Display. De stäerkste gemeinsam Problem ass, wann d'Datebank enthält eng Zäit Serie mat engem Intervall vun 2 Sekonnen aus, soen, 00:00:00, a Grafana fänkt Donnéeën an Aggregatioun vun +1 Sekonn ze weisen. Als Resultat gesäit de Benotzer eng danzen Grafik.
  3. Exzessiv Quantitéit vum Code fir API Integratioun mat Drëtt Partei Iwwerwaachungssystemer. Et kann vill méi kompakt gemaach ginn an natierlech am Go nei geschriwwen)

Ech mengen Dir hutt all perfekt gesinn wéi Grafana ausgesäit a kennt seng Problemer ouni mech, also wäert ech de Post net mat Biller iwwerlaascht.

Konklusioun

Ech hunn bewosst net déi technesch Detailer beschriwwen, awer nëmmen de Basisdesign vun dësem System beschriwwen. Als éischt, fir de System technesch voll ze beschreiwen, wäert en aneren Artikel erfuerderlech sinn. Zweetens, net jiddereen wäert an dësem interesséiert sinn. Schreift an de Kommentarer wéi eng technesch Detailer Dir wësse wëllt.

Wann iergendeen Froen iwwer den Ëmfang vun dësem Artikel huet, kënnt Dir mir op a.rodin @ qedr.com schreiwen

Source: will.com

Setzt e Commentaire