Overvåk veilederens løpestatus med superlance

Monitor Supervisor Running Status With Superlance



Denne artikkelen er publisert av forfatteren Zhang Jiayu autoriserte Netease-skysamfunn.

Velkommen til besøk Netease Cloud Community For å lære mer om Netease-teknologiens produktopplevelse.






Nylig ba utviklingen om at prosessen under veilederledelse ble startet på nytt. Er det noen måte å gjøre aktive varsler? Det første som utleier tenkte på, var eventlisten som følger med veilederen, så jeg fant følgende løsning.



Supervisor er et veldig praktisk prosessstyringsverktøy som enkelt kan åpnes, lukkes, startes på nytt osv. Etter kommando, og prosessen den administrerer vil starte på nytt automatisk hvis den krasjer. Det har vært mange artikler om KM for å introdusere fordelene og ferdighetene til veilederen. Introduksjonen av veilederen selv vil ikke gjentas her.

Denne artikkelen introduserer hovedsakelig superlance superlance, som er et sett med kommandolinjeverktøy basert på hendelsesmekanismen til veilederen. Den implementerer mange nyttige prosessovervåking og administrasjonsfunksjoner som ikke er implementert av veilederen selv, inkludert minneovervåking. HTTP-grensesnittovervåking, post- og SMS-varslingsmekanisme. Tilsvarende er superlance skrevet på python.

installasjon

Siden superlance er en python-pakke, er den veldig enkel å installere og kan enkelt installeres via easy_install eller pip:



easy_install superlance pip install superlance

Selvfølgelig kan du også få den nyeste kildekoden (https://github.com/Supervisor/superlance) på github og installere den.

python setup.py install

Utfør følgende httpok-kommando etter installasjon. Hvis kommandoen eksisterer, indikerer den at superlance er installert normalt.

Superlance-komponent

Superlance er en samling kommandolinjeverktøy som inkluderer følgende kommandoer:

  1. httpok

    Ved periodisk å utføre en GET-forespørsel på et HTTP-grensesnitt, bestemmes det om en prosess er i normal tilstand i henhold til om forespørselen er vellykket, og hvis ikke, starter prosessen på nytt.

  2. crashmail

    Sender et e-postvarsel når en prosess avsluttes uventet.

  3. memmon

    Sender et e-postvarsel når minnebruk av en prosess overstiger den angitte terskelen.

  4. crashmailbatch

    I likhet med crashmail-varsler, men e-post vil bli kombinert i en periode for å unngå e-postbombing.

  5. fatalmailbatch

    Når en prosess ikke starter flere ganger, vil den gå inn i FATAL-tilstanden, og et e-postvarsel vil bli sendt. Syntetiske alarmer utføres akkurat som crashmailbatch.

  6. krasjer

    Send et varsel om tekstmeldinger når en prosess avsluttes uventet. Denne meldingen sendes også via e-postportalen.

Praktiske brukseksempler:

Merk: Før du faktisk konfigurerer veilederen til å bruke superlance, må du først installere sendmail. Superlance bruker dette kommandolinjeverktøyet til å sende e-post. Den kan enkelt installeres ved hjelp av forskjellige verktøy for pakkehåndtering:

apt-get install sendmail

Introduksjon til bruk av Crashmail

Veilederens konfigurasjon er som følger:

cat /etc/supervisor/conf.d/redis.conf [program:redis] command=/usr/local/redis/bin/redis-server /home/redis/etc/redis.conf directory=/usr/local/redis/bin/ user=mysql autostart = trueautorestart = true#startsecs = 30stopwaitsecs = 1stopsignal = TERM redirect_stderr = true [eventlistener:redis_monitor] command=crashmail -p redis -m root@xxxxx events=PROCESS_STATE_EXITED redirect_stderr=false


Først konfigureres oppstartsprosjektet for redis-prosessen, og deretter konfigureres en hendelseslytter med navnet redis_monitor, som godtar PROCESS_STATE_EXITED-hendelsen fra veilederen og utløser kommandolinjeanropet til crashmail.

PROCESS_STATE_EXITED er en hendelse som utløses når en prosess som tilsvarer en veileders overvåkingselement avsluttes uventet. Dette får en prosess til å varsle crashmail når en uventet avslutning oppstår.

Parameteren -p i kommandoparameteren konfigurerer crashmail slik at den kun svarer på overvåkingselementer som heter redis, og parameteren -m konfigurerer adressen som krasjmeldingen skal sendes til.

Etter å ha konfigurert ankekonfigurasjonen, kan du se de to innholdet i konfigurasjonen gjennom supervisorctl, det ene er redis-overvåkingselementet, og det andre er hendelseslytteren redis_monitor:

Bruk kill for å drepe redis-prosessen

Mottatt e-postvarsel som avsluttet prosess 26039

Denne konfigurasjonen kan varsles til brukeren via e-post når prosessen starter på nytt.

Memmon bruk introduksjon

Her bruker vi memmon for å overvåke minnebruk av prosessen. Her er et testmanus:

Under utførelsen av dette skriptet vil det være en minnelekkasje, noe som resulterer i en økning i minnebruk til systemet ikke lenger kan allokere minne, noe som får programmet til å avslutte unormalt. Ved hjelp av dette skriptet kan vi konfigurere en memmon-hendelseslytter til å utstede minne. Den lekkede alarmen.

Veilederens konfigurasjon er som følger:

[program:leak] command=python /home/zhangjy/memoryleak.py user=zhangjy directory=/home/zhangjy priority=999process_name=%(program_name)s numprocs=1autostart = trueautorestart = truestopwaitsecs = 1stopsignal = TERM exitcodes=0,2redirect_stderr = falsestdout_logfile_maxbytes = 1024MB stdout_logfile_backups = 5stdout_logfile = /home/zhangjy/stdout.log stderr_logfile_maxbytes = 1024MB stderr_logfile_backups = 5stderr_logfile = /home/zhangjy/stderr.log [eventlistener:leak_monitor] command=memmon -p leak=1MB -m root@xxxxx events=TICK_60 redirect_stderr=false

Her lytter memmon-hendelseslytteren til TICK_60-hendelsen, som er en hendelse som utløses hvert 60. sekund. Dette får memmonet til å oppdage minnebruk av det tilsvarende overvåkingselementet hvert 60. sekund. Her er overvåkingselementet for overvåking av lekkasjer satt. Hvis minneforbruket overstiger 1 MB, vil prosessen startes på nytt, og en e-post vil bli sendt for å varsle. Vis status etter å ha spilt prosessen

Etter å ha kjørt i 60-årene overstiger minnebruk av lekkasjeprosessen alarmverdien på 1 MB, og oppetid for lekkasjen tilbakestilles også, noe som indikerer at prosessen er startet på nytt, slik at prosessen kan opprettholde normal drift og også oppnå formålet av minne lekkasjealarm.

Du kan se at e-posten er mottatt i postkassen:

Superlance-verktøyet kan brukes til å fullføre en rekke alarmkrav, og utvide veilederens muligheter. Den spesifikke bruken av disse verktøyene kan referere til den offisielle dokumentasjonen:

https://superlance.readthedocs.org/en/latest/index.html


Gratis opplevelse av skysikkerhet (Easy Shield) innholdssikkerhet, bekreftelseskode og andre tjenester

Mer NetEase-teknologi, deling av produktopplevelser, takk Klikk .


relaterte artikler:
[anbefalt] Flink på prosessanalyse for oppstartsgarnmodus
[anbefalt] MySQL MGR-klyngeoppsett
[anbefalt] Innblikk i de skjulte historiene i dataene - NetEase har en rekke 'riktige' bruk