Wy ite de oaljefant yn parten. Applikaasje sûnensmonitoringstrategy mei foarbylden

Hello everyone!

Us bedriuw is dwaande mei softwareûntwikkeling en folgjende technyske stipe. Technyske stipe fereasket net allinich it reparearjen fan flaters, mar it kontrolearjen fan de prestaasjes fan ús applikaasjes.

Bygelyks, as ien fan 'e tsjinsten ferûngelokke is, dan moatte jo dit probleem automatysk opnimme en begjinne om it op te lossen, en net wachtsje oant ûntefreden brûkers kontakt opnimme mei technyske stipe.

Wy hawwe in lyts bedriuw, wy hawwe net de middels om komplekse oplossingen te studearjen en te ûnderhâlden foar tafersjoch op applikaasjes, wy moasten in ienfâldige en effektive oplossing fine.

Wy ite de oaljefant yn parten. Applikaasje sûnensmonitoringstrategy mei foarbylden

Monitoring strategy

It is net maklik om de funksjonaliteit fan in applikaasje te kontrolearjen; dizze taak is net-trivial, men soe sels kreatyf sizze kinne. It is foaral lestich om in kompleks multi-link systeem te ferifiearjen.

Hoe kinne jo in oaljefant ite? Allinnich yn dielen! Wy brûke dizze oanpak om tapassingen te kontrolearjen.

De essinsje fan ús tafersjochstrategy:

Sprek jo applikaasje yn komponinten.
Meitsje kontrôle kontrôles foar elke komponint.

In komponint wurdt as operasjoneel beskôge as al syn kontrôlekontrôles sûnder flaters wurde útfierd. In applikaasje wurdt as sûn beskôge as alle komponinten funksjoneel binne.

Sa kin elk systeem wurde fertsjintwurdige as in beam fan komponinten. Komplekse komponinten wurde opdield yn ienfâldiger. Ienfâldige komponinten hawwe kontrôles.

Wy ite de oaljefant yn parten. Applikaasje sûnensmonitoringstrategy mei foarbylden

Benchmarks binne net bedoeld om funksjonele testen út te fieren, se binne gjin ienheidstests. Kontrôlekontrôles moatte kontrolearje hoe't de komponint fielt op it aktuele momint yn 'e tiid, oft d'r alle middels binne dy't nedich binne foar it funksjonearjen en oft der problemen binne.

D'r binne gjin wûnders; de measte kontrôles sille ûnôfhinklik moatte wurde ûntwikkele. Mar wês net bang, want yn 'e measte gefallen nimt ien kontrôle 5-10 rigels fan koade, mar jo kinne elke logika útfiere en jo sille dúdlik begripe hoe't de kontrôle wurket.

Monitoringsysteem

Litte wy sizze dat wy de applikaasje splitst hawwe yn komponinten, kontrôles foar elke komponint betocht en ymplementearre, mar wat te dwaan mei de resultaten fan dizze kontrôles? Hoe witte wy as guon kontrôle mislearre?

Wy sille in tafersjochsysteem nedich wêze. Se sil de folgjende taken útfiere:

  • Untfang testresultaten en brûk se om de status fan komponinten te bepalen.
    Visueel liket dit it markearjen fan de komponintbeam. Funksjonele komponinten wurde grien, problematyske wurde read.
  • Útfiere algemiene kontrôles út it fak.
    It tafersjochsysteem kin sels guon kontrôles útfiere. Wêrom it tsjil opnij útfine, lit ús se brûke. Jo kinne bygelyks kontrolearje dat in webside iepenet of de tsjinner pingt.
  • Stjoer notifikaasjes fan problemen oan belangstellenden.
  • Fisualisaasje fan tafersjochgegevens, fersoarging fan rapporten, grafiken en statistiken.

Koarte beskriuwing fan it ASMO systeem

It is it bêste om út te lizzen mei in foarbyld. Litte wy sjen hoe't tafersjoch op 'e prestaasjes fan it ASMO-systeem wurdt organisearre.

ASMO is in automatisearre meteorologysk stipesysteem. It systeem helpt spesjalisten fan dyktsjinsten te begripen wêr en wannear't it nedich is om de dyk te behanneljen mei de-icing-materialen. It systeem sammelt gegevens fan dykkontrôlepunten. In ferkearskontrôlepunt is in plak op 'e dyk dêr't apparatuer ynstallearre is: in waarstasjon, in fideokamera, ensfh. Om gefaarlike situaasjes te foarsizzen, ûntfangt it systeem waarberjochten fan eksterne boarnen.

Wy ite de oaljefant yn parten. Applikaasje sûnensmonitoringstrategy mei foarbylden

Sa, de gearstalling fan it systeem is hiel typysk: webside, agent, apparatuer. Litte wy begjinne te kontrolearjen.

It brekken fan it systeem yn komponinten

De folgjende komponinten kinne wurde ûnderskieden yn it ASMO-systeem:

1. Persoanlik akkount
Dit is in webapplikaasje. Op syn minst moatte jo kontrolearje dat de applikaasje beskikber is op it ynternet.

2. Databank
De databank bewarret gegevens dy't wichtich binne foar rapportaazje, en jo moatte derfoar soargje dat databank-backups mei sukses makke wurde.

3. Tsjinner
Mei tsjinner bedoele wy de hardware wêrop applikaasjes rinne. It is needsaaklik om te kontrolearjen de status fan HDD, RAM, CPU.

4. Agent
Dit is in Windows-tsjinst dy't in protte ferskillende taken op in skema útfiert. Op syn minst moatte jo kontrolearje dat de tsjinst rint.

5. Agent taak
Gewoan witte dat in agent wurket is net genôch. In agint kin wurkje, mar net útfiere syn tawiisd taken. Litte wy de agintkomponint opsplitse yn taken en kontrolearje oft elke aginttaak mei sukses wurket.

6. Road control punten (container fan alle MPC's)
D'r binne in protte dykkontrôlepunten, dus litte wy alle MPC's kombinearje yn ien komponint. Dit sil it handiger meitsje om tafersjochgegevens te lêzen. By it besjen fan de status fan 'e komponint "ASMO-systeem", sil it fuortendaliks dúdlik wêze wêr't de problemen binne: yn applikaasjes, hardware of yn it maksimale kontrôlesysteem.

7. Road control punt (ien maksimum limyt)
Wy sille dizze komponint beskôgje as tsjinstber as alle apparaten op dizze MPC tsjinstber binne.

8. Apparaat
Dit is in fideokamera as waarstasjon dat is ynstalleare by de maksimale konsintraasjelimyt. It is needsaaklik om te kontrolearjen dat it apparaat goed wurket.

Yn it tafersjochsysteem sil de komponintbeam der sa útsjen:

Wy ite de oaljefant yn parten. Applikaasje sûnensmonitoringstrategy mei foarbylden

Web Application Monitoring

Dat, wy hawwe it systeem ferdield yn komponinten, no moatte wy mei kontrôles komme foar elke komponint.

Om in webapplikaasje te kontrolearjen brûke wy de folgjende kontrôles:

1. Kontrolearje de iepening fan de haadside
Dizze kontrôle wurdt útfierd troch it tafersjochsysteem. Om it út te fieren, jouwe wy it sideadres oan, it ferwachte antwurdfragmint en de maksimale útfieringstiid fan fersyk.

2. Kontrolearje de domein betelling deadline
In tige wichtige kontrôle. As in domein net betelle bliuwt, kinne brûkers de side net iepenje. It oplossen fan it probleem kin ferskate dagen duorje, om't ... DNS-feroarings wurde net direkt tapast.

3. Kontrolearje it SSL-sertifikaat
Tsjintwurdich brûke hast alle websiden it https-protokol foar tagong. Foar it protokol om goed te wurkjen, hawwe jo in jildich SSL-sertifikaat nedich.

Hjirûnder is de komponint "Persoanlike akkount" yn it tafersjochsysteem:

Wy ite de oaljefant yn parten. Applikaasje sûnensmonitoringstrategy mei foarbylden

Alle boppesteande kontrôles sille wurkje foar de measte applikaasjes en fereaskje gjin kodearring. Dit is heul cool, om't jo yn 5 minuten elke webapplikaasje kinne begjinne te kontrolearjen. Hjirûnder binne ekstra kontrôles dy't kinne wurde útfierd foar in webapplikaasje, mar har ymplemintaasje is komplekser en applikaasje-spesifyk, dus wy sille se net yn dit artikel dekke.

Wat kinne jo noch kontrolearje?

Om jo webapplikaasje folsleiner te kontrolearjen, kinne jo de folgjende kontrôles útfiere:

  • Oantal JavaScript flaters per perioade
  • Oantal flaters op 'e side fan' e webapplikaasje (efterkant) foar de perioade
  • Oantal net suksesfolle antwurden fan webapplikaasje (antwurdkoade 404, 500, ensfh.)
  • Gemiddelde query útfiering tiid

Kontrolearje in Windows-tsjinst (agent)

Yn it ASMO-systeem spilet de agint de rol fan in taakplanner, dy't plande taken op 'e eftergrûn útfiert.

As alle aginttaken mei súkses foltôgje, wurket de agint goed. It docht bliken dat om in agint te kontrolearjen, jo de taken moatte kontrolearje. Dêrom ferdiele wy de komponint "Agent" yn taken. Foar elke taak meitsje wy in aparte komponint yn it tafersjochsysteem, wêrby't de komponint "Agent" de "âlder" sil wêze.

Wy splitst de Agent-komponint yn bernkomponinten (taken):

Wy ite de oaljefant yn parten. Applikaasje sûnensmonitoringstrategy mei foarbylden

Dat, wy hawwe in komplekse komponint opdield yn ferskate ienfâldige. No moatte wy mei kontrôles komme foar elke ienfâldige komponint. Tink derom dat de âlderkomponint "Agent" gjin kontrôles sil hawwe, om't it tafersjochsysteem syn status selsstannich sil berekkenje op basis fan 'e status fan syn bernkomponinten. Mei oare wurden, as alle taken mei súkses foltôge binne, dan rint de agint mei súkses.

D'r binne mear as hûndert taken yn it ASMO-systeem, is it echt nedich om te kommen mei unike kontrôles foar elke taak? Fansels sil kontrôle better wêze as wy ús eigen spesjale kontrôles foar elke aginttaak komme en útfiere, mar yn 'e measte gefallen is it genôch om universele kontrôles te brûken.

It ASMO-systeem brûkt allinich universele kontrôles foar taken en dit is genôch om de prestaasjes fan it systeem te kontrolearjen.

Kontrolearje foarútgong
De ienfâldichste en meast effektive kontrôle is de útfieringskontrôle. De kontrôle ferifiearret dat de taak is foltôge sûnder flaters. Alle taken hawwe dizze kontrôle.

Ferifikaasjealgoritme

Nei elke taakútfiering moatte jo it resultaat fan 'e SUCCESS-kontrôle stjoere nei it tafersjochsysteem as de taakútfiering suksesfol wie, of ERROR as de útfiering foltôge is mei in flater.

Dizze kontrôle kin de folgjende problemen ûntdekke:

  1. De taak rint mar mislearret mei in flater.
  2. De taak is ophâlden mei rinnen, it is bygelyks beferzen.

Litte wy yn mear detail sjen hoe't dizze problemen wurde oplost.

Kwestje 1 - De taak rint mar mislearret mei in flater
Hjirûnder is in gefal dêr't de taak rint mar mislearret tusken 14:00 en 16:00.

Wy ite de oaljefant yn parten. Applikaasje sûnensmonitoringstrategy mei foarbylden

De figuer lit sjen dat as in taak mislearret, wurdt in sinjaal fuortendaliks nei it tafersjochsysteem stjoerd en de status fan 'e oerienkommende kontrôle yn it tafersjochsysteem wurdt alarm.

Tink derom dat yn it tafersjochsysteem de status fan 'e komponint hinget ôf fan' e ferifikaasjestatus. De alarmstatus fan 'e kontrôle sil alle komponinten op heger nivo feroarje nei alarm, sjoch de figuer hjirûnder.

Wy ite de oaljefant yn parten. Applikaasje sûnensmonitoringstrategy mei foarbylden

Probleem 2 - De taak stoppe mei útfieren (beferzen)
Hoe sil it tafersjochsysteem begripe dat in taak fêst sit?

De kontrôle resultaat hat in jildichheid perioade, bygelyks, 1 oere. As der in oere foarby giet en der is gjin nij testresultaat, sil it tafersjochsysteem de teststatus op alarm sette.

Wy ite de oaljefant yn parten. Applikaasje sûnensmonitoringstrategy mei foarbylden

Op de foto hjirboppe binne de ljochten om 14 oere útset. Om 00 oere sil it tafersjochsysteem fêststelle dat it testresultaat (fan 15 oere ôf) rot is, omdat De relevânsje tiid is ferrûn (ien oere), mar der is gjin nij resultaat, en sil oerskeakelje de kontrôle nei alarm status.

Om 16 oere waarden de ljochten wer oanstutsen, it programma sil de taak foltôgje en it útfieringsresultaat nei it tafersjochsysteem stjoere, de teststatus sil wer sukses wurde.

Hokker tiid foar kontrôlerelevânsje moat ik brûke?

De relevânsje tiid moat grutter wêze as de taakútfieringsperioade. Ik riede it ynstellen fan de relevânsje tiid 2-3 kear langer as de taak útfiering perioade. Dit is nedich om foar te kommen dat jo falske notifikaasjes ûntfange as bygelyks in taak langer duorre as gewoanlik of immen it programma opnij laden.

Kontrolearje foarútgong

It ASMO-systeem hat in taak "Load Forecast", dy't ien kear yn 'e oere besiket in nije prognose te downloaden fan in eksterne boarne. De krekte tiid wêryn in nije prognose ferskynt yn it eksterne systeem is net bekend, mar it is bekend dat dit 2 kear deis bart. It docht bliken dat as der in pear oeren gjin nije prognose is, dan is dit normaal, mar as d'r mear as in dei gjin nije prognose is, dan is der earne wat brutsen. Bygelyks, it gegevensformaat yn in ekstern prognosesysteem kin feroarje, en dêrom sil ASMO gjin nije prognoseferzje sjen.

Ferifikaasjealgoritme

De taak stjoert it resultaat fan 'e SUCCESS-kontrôle nei it tafersjochsysteem as it slagget om foarútgong te krijen (in nije waarberjocht downloade). As der gjin foarútgong is of in flater optreedt, dan wurdt neat nei it tafersjochsysteem stjoerd.

De kontrôle moat in relevânsje-ynterval hawwe sadat it yn dizze tiid garandearre wurdt om nije foarútgong te ûntfangen.

Wy ite de oaljefant yn parten. Applikaasje sûnensmonitoringstrategy mei foarbylden

Tink derom dat wy it probleem mei fertraging leare, om't it tafersjochsysteem wachtet oant de jildigensperioade fan it lêste scanresultaat ferrint. Dêrom hoecht de jildigensperioade fan 'e kontrôle net te lang makke te wurden.

Databank monitoring

Om de databank yn it ASMO-systeem te kontrolearjen, fiere wy de folgjende kontrôles út:

  1. Ferifiearje backup oanmeitsjen
  2. Kontrolearje frije skiifromte

Ferifiearje backup oanmeitsjen
Yn 'e measte applikaasjes is it wichtich om aktuele databank-backups te hawwen, sadat as de server mislearret, jo it programma kinne ynsette op in nije server.

ASMO makket ien kear yn 'e wike in reservekopy en stjoert it nei opslach. As dizze proseduere mei súkses foltôge is, wurdt it resultaat fan 'e sukseskontrôle stjoerd nei it tafersjochsysteem. It ferifikaasjeresultaat is jildich foar 9 dagen. Dy. Om it oanmeitsjen fan backups te kontrolearjen, wurdt it meganisme "foarútgongskontrôle", dat wy hjirboppe besprutsen, brûkt.

Kontrolearje frije skiifromte
As d'r net genôch frije romte op 'e skiif is, kin de databank net goed funksjonearje, dus it is wichtich om de hoemannichte frije romte te kontrolearjen.

It is handich om metriken te brûken om numerike parameters te kontrolearjen.

Metriken is in numerike fariabele, wêrfan de wearde wurdt oerdroegen oan it tafersjochsysteem. It tafersjochsysteem kontrolearret de drompelwearden en berekkent de metryske status.

Hjirûnder is in ôfbylding fan hoe't de komponint "Databank" derút sjocht yn it tafersjochsysteem:

Wy ite de oaljefant yn parten. Applikaasje sûnensmonitoringstrategy mei foarbylden

Server monitoring

Om de tsjinner te kontrolearjen brûke wy de folgjende kontrôles en metriken:

1. Free skiif romte
As de skiifromte op is, kin de applikaasje net wurkje. Wy brûke 2 drompelwearden: it earste nivo is WARNING, it twadde nivo is ALARM.

2. Gemiddelde RAM wearde yn prosint per oere
Wy brûke it oeregemiddelde omdat... wy binne net ynteressearre yn seldsume rassen.

3. Gemiddelde CPU persintaazje per oere
Wy brûke it oeregemiddelde omdat... wy binne net ynteressearre yn seldsume rassen.

4. Ping check
Kontrolearret dat de tsjinner online is. It tafersjochsysteem kin dizze kontrôle útfiere; d'r is gjin needsaak om koade te skriuwen.

Hjirûnder is in ôfbylding fan hoe't de "Tsjinner" komponint derút sjocht yn it tafersjochsysteem:

Wy ite de oaljefant yn parten. Applikaasje sûnensmonitoringstrategy mei foarbylden

Equipment monitoring

Ik sil jo fertelle hoe't de gegevens krigen wurde. Foar eltse dyk kontrôle punt (MPC) der is in taak yn de taak planner, Bygelyks, "Survey MPC M2 km 200". De taak ûntfangt gegevens fan alle MPC-apparaten elke 30 minuten.

Kommunikaasje kanaal probleem
It grutste part fan de apparatuer leit bûten de stêd; in GSM netwurk wurdt brûkt foar gegevens oerdracht, dat wurket net stabyl (der is in netwurk, of der is net ien).

Troch frequente netwurkflaters seach it kontrolearjen fan 'e MPC-enkête by tafersjoch earst sa út:

Wy ite de oaljefant yn parten. Applikaasje sûnensmonitoringstrategy mei foarbylden

It waard dúdlik dat dit gjin wurkjende opsje wie, om't der in protte falske notifikaasjes wiene oer problemen. Doe waard besletten om in "foarútgongskontrôle" te brûken foar elk apparaat, d.w.s. Allinich it suksessinjaal wurdt nei it tafersjochsysteem stjoerd as it apparaat sûnder in flater wurdt polled. De relevânsje tiid waard ynsteld op 5 oeren.

Wy ite de oaljefant yn parten. Applikaasje sûnensmonitoringstrategy mei foarbylden

No stjoert monitoring notifikaasjes oer problemen allinich as it apparaat net langer dan 5 oeren kin wurde ûnderfrege. Mei in hege graad fan kâns binne dit gjin falske alaarms, mar echte problemen.

Hjirûnder is in foto fan hoe't de apparatuer derút sjocht yn it tafersjochsysteem:

Wy ite de oaljefant yn parten. Applikaasje sûnensmonitoringstrategy mei foarbylden

Wichtich!
As it GSM-netwurk ophâldt mei wurkjen, wurde alle MDC-apparaten net ûnderfrege. Om it oantal e-mails fan it tafersjochsysteem te ferminderjen, abonnearje ús yngenieurs op notifikaasjes oer komponintproblemen mei it type "MPC" ynstee fan "Apparaat". Hjirmei kinne jo ien notifikaasje ûntfange foar elke MPC, ynstee fan in aparte notifikaasje te ûntfangen foar elk apparaat.

Finale tafersjochskema foar ASMO

Litte wy alles byinoar sette en sjen wat foar tafersjochskema wy hawwe.

Wy ite de oaljefant yn parten. Applikaasje sûnensmonitoringstrategy mei foarbylden

konklúzje

Litte wy gearfetsje.
Wat joech ús tafersjoch op de prestaasjes fan ASMO?

1. Defect eliminaasje tiid is ôfnommen
Wy hawwe earder heard oer defekten fan brûkers, mar net alle brûkers melde defekten. It barde dat wy in wike nei it ferskinen learden oer in defekt fan in systeemkomponint. No meldt it tafersjochsysteem ús fan problemen sa gau as in probleem ûntdutsen is.

2. Systeemstabiliteit is ferhege
Sûnt mankeminten begûn te elimineren earder, it systeem as gehiel begûn te wurkjen folle stabiler.

3. It ferminderjen fan it oantal oproppen nei technyske stipe
In protte problemen binne no reparearre foardat brûkers der sels fan witte. Brûkers begûnen minder faak kontakt te meitsjen mei technyske stipe. Dit alles hat in goed effekt op ús reputaasje.

4. It fergrutsjen fan klant- en brûkersloyaliteit
De klant opmurken positive feroarings yn de stabiliteit fan it systeem. Brûkers tsjinkomme minder problemen mei it brûken fan it systeem.

5. Ferminderje technyske stipekosten
Wy binne stoppe mei it útfieren fan hânmjittige kontrôles. No binne alle kontrôles automatisearre. Earder learden wy oer problemen fan brûkers; it wie faak lestich om te begripen oer hokker probleem de brûker it hie. No wurde de measte problemen rapportearre troch it tafersjochsysteem; notifikaasjes befetsje technyske gegevens, dy't altyd dúdlik meitsje wat der mis gie en wêr.

Wichtich!
Jo kinne it tafersjochsysteem net ynstallearje op deselde server wêr't jo applikaasjes rinne. As de tsjinner delgiet, sille applikaasjes ophâlde mei wurkjen en sil der gjinien wêze om dêroer te melden.

It tafersjochsysteem moat rinne op in aparte server yn in oar datasintrum.

As jo ​​​​gjin tawijd tsjinner wolle brûke yn in nij datasintrum, kinne jo in wolkmonitorsysteem brûke. Us bedriuw brûkt it Zidium-wolkmonitorsysteem, mar jo kinne elk oar tafersjochsysteem brûke. De kosten fan in wolkmonitorsysteem binne leger dan it hieren fan in nije server.

Oanbefellings:

  1. Skeakelje applikaasjes en systemen yn 'e foarm fan in beam fan komponinten yn safolle detail as mooglik, dus it sil handich wêze om te begripen wêr't en wat is brutsen, en kontrôle sil folsleiner wêze.
  2. Om de funksjonaliteit fan in komponint te kontrolearjen, brûk tests. It is better om in protte ienfâldige kontrôles te brûken as ien komplekse.
  3. Konfigurearje metryske drompels oan 'e kant fan it tafersjochsysteem, ynstee fan se yn koade te skriuwen. Dit sil jo foarkomme dat jo de applikaasje opnij moatte kompilearje, opnij konfigurearje of opnij starte.
  4. Foar oanpaste kontrôles, brûk in marzje fan relevânsje tiid om foar te kommen dat jo falske notifikaasjes ûntfange, om't guon kontrôle wat langer duorre dan gewoanlik.
  5. Besykje de komponinten yn it tafersjochsysteem allinich read te meitsjen as d'r perfoarst in probleem is. As se foar neat read wurde, stopje jo omtinken te jaan oan de notifikaasjes fan it tafersjochsysteem, de betsjutting sil ferlern gean.

As jo ​​​​noch gjin tafersjochsysteem brûke, begjin dan! It is net sa dreech as it liket. Krij in kick út te sjen nei de griene yngrediïntenbeam dy't jo sels groeide.

Goeie lok.

Boarne: www.habr.com

Add a comment