Innholdsfortegnelse:
- Trinn 1: Bruke metoder levert av Systemd
- Trinn 2: Konfigurere og bruke Service Checker Scripts
- Trinn 3: Avsluttende tanker
Video: Service Monitor Script for Linux Servers: 4 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:25
Å ha et stabilt system som alltid kjører, selv om du bruker Linux, kan være en vanskelig oppgave.
På grunn av kompleksiteten i moderne programvarepakker og dårlig koding, kan noen prosesser uunngåelig krasje fra tid til annen. Dette kan være en dårlig ting hvis du kjører en server og noen er avhengige av disse tjenestene.
Trinn 1: Bruke metoder levert av Systemd
Som du kanskje allerede vet, bruker de fleste moderne Linux -operativsystemer systemd.
Hvis du ikke er kjent med systemd, er dette, ifølge wikipedia:
"… et init -system som brukes i Linux -distribusjoner for å bootstrap brukerområdet og administrere alle prosesser senere, i stedet for UNIX System V eller Berkeley Software Distribution (BSD) init -systemer. …"
Mange krangler fortsatt hvorfor det var nødvendig å erstatte det gode gamle init -systemet med dette mer kompliserte prosessstyringssystemet, men på den følgende lenken kan man finne en god forklaring:
www.tecmint.com/systemd-replaces-init-in-l…
Den viktigste forbedringen ville være at det er i stand til å ta opp systemet raskere enn init, på grunn av samtidig og parallell behandling ved oppstart i stedet for den sekvensielle tilnærmingen til init
Uten å gå inn i dypet til systemd, må du opprette en tjenestefil for å legge til en prosess i systemd. Syntaksen til en slik fil kan variere fra veldig enkel til komplisert, og vi vil ikke gå inn på detaljer. For å ha en grunnleggende.service -fil er det tilstrekkelig å bruke følgende oppføringer:
[Enhet] Beskrivelse = Beskrivelse av applicationDocumentation = https://wikipedia.org/ After = local-fs.target network.target [Service] Type = simpleExecStart =/usr/sbin/applicationExecReload =/usr/sbin/application reloadExecStop =/ usr/sbin/application stopRestart = alltid [Installer] WantedBy = multi-user.target
Plasser disse i application.service -filen i/lib/systemd/systemmappen.
Hva hvert av disse alternativene gjør er forklart i følgende lenke:
access.redhat.com/documentation/en-US/Red_…
For å starte programmet, må du utstede følgende kommando:
sudo systemctl start application.service
Merk:.service -utvidelsen kan utelates.
Slik stopper du programmet:
sudo systemctl stopp application.service
Hvis konfigurasjonsfilen er endret og du vil laste inn innstillingene på nytt:
sudo systemctl last inn application.service på nytt
Slik starter du programmet på nytt:
sudo systemctl start application.service på nytt
Slik aktiverer du automatisk start ved oppstart:
sudo systemctl aktivere application.service
Hvis dette er aktivert, vil systemd prosessbehandling prøve å starte programmet basert på innstillingene som ble gitt av systemfilen.
For å deaktivere den, bruk samme kommando som ovenfor, men med parameteren "deaktiver".
Hvis du plasserer Restart = alltid i servicefilen, vil systemd overvåke prosessen, og hvis den ikke finnes i prosesslisten, vil den prøve å starte den på nytt automatisk.
Hvis du plasserer
RestartSec = 30
etter omstartdirektivet, vil det vente i 30 sekunder før du prøver å starte prosessen på nytt. Dette kan være nyttig, ettersom et kontinuerlig forsøk på omstart av en mislykket tjeneste/applikasjon kan føre til stor etterspørsel etter systemet (skrivefeillogger osv.)
Som du kan se, gir systemd allerede noen midler for å overvåke prosessene. Imidlertid kan dette i noen tilfeller ikke være tilstrekkelig. Hva om en prosess ikke avsluttes (den vil fortsatt være i prosesslisten), men den slutter å svare. I dette tilfellet, for å sikre at en prosess faktisk er i gang, kan det hende du trenger ytterligere kontroller.
Det er her manusene fra denne instruktive vil komme godt med.
Trinn 2: Konfigurere og bruke Service Checker Scripts
Hvis du trenger mer kontroll over kjørende prosesser/tjenester, vil disse skriptene være nyttige.
Siden koden er litt stor, lastes den opp til github og finnes under følgende depot:
github.com/trex2000/Service-Monitor-Scripts/blob/master/checkService.sh
"Hjertet" i hele pakken er
checkService.sh
Før du bruker den, må du erstatte hele banen til servicemappen. Dette finner du i begynnelsen av manuset.
Skriptet kan overvåke flere prosesser og utføre tilleggsoppgave, som beskrevet nedenfor:
Den går gjennom hver fil fra undermappen /services som har.serv eller.check utvidelser og vil kontrollere om det er en aktiv prosess som kalles 'applikasjon'.
Hvis det ikke er en.check -fil for et program, bare application.serv -filen:
Hvis prosessen er aktiv, vil den betrakte prosessen som aktiv
Hvis prosessen er inaktiv, starter tjenesten på nytt ved å gi følgende kommando:
systemctl start programmet på nytt
hvis.serv -filen er tom!
Hvis.serv -filen ikke er tom og har kjørbare rettigheter, vil den prøve å kjøre den som et vanlig BASH -skript.
Dette er nyttig hvis noe i tillegg må gjøres i tillegg til bare å starte tjenesten på nytt.
For eksempel, i spamd.serv -filen, fra repoen ovenfor, i tilfelle spamd -tjenesten er død, må spamassassin -tjenesten startes på nytt i stedet, som også starter spamd på nytt. Å starte på nytt bare spamd ville ikke være tilstrekkelig.
Man kan redigere innholdet i en slik serv -fil i henhold til behovene.
Et annet eksempel er pcscd.serv -filen. I dette tilfellet ble flere andre prosesser også startet på nytt/drept.
Hvis det er en sjekkfil, vil den også kjøre denne skriptfilen for å utføre ytterligere kontroller etter å ha sjekket om prosessen kjører.
For eksempel, for oscam -tjenesten, har vi opprettet en sjekkfil som prøver å koble til webgrensesnittet for å se om den lykkes. Hvis ikke, så til tross for at prosessen er aktiv, reagerer ikke tjenesten og må startes på nytt. Omstarten av tjenesten må utføres/kalles av selve.check -filen.
Et annet eksempel ville være mediatomb DLNA -tjenesten.
Dette er en liten server som tilbyr video/lydinnhold til DLNA -klienter og sender seg selv på nettverket. Noen ganger henger tjenesten, og den kan ikke oppdages lenger, men prosessen vil fortsatt være aktiv. For å sjekke om tjenesten er oppdagbar, ble CLI-verktøyet kalt gssdp-discover brukt. Hele koden som kontrollerer DLNA -serveren ble plassert i et mediatomb.check -skript.
Dette er bare noen få eksempler på hvordan du kan bruke.serv- og.check -filene.
For å overvåke en ny tjeneste må du opprette en.serv og om nødvendig også en sjekkfil og skrive det tilhørende skriptet inne i dem.
Hvis det bare er nok å kontrollere om prosessen er tilstede, vil en tom.serv -fil være tilstrekkelig. Hvis ytterligere kontroller må utføres, må en.check -fil opprettes og et lite skript må skrives for å gjøre jobben.
Selvfølgelig må.sh -skriptet kjøres med jevne mellomrom, derfor må det også opprettes en cron -jobb for det:
#sjekk driftstjenester hvert 5. minutt */5 * * * * /var/bin/ServiceCheck/checkService.sh>/dev/null
Trinn 3: Avsluttende tanker
Jeg håper du vil finne denne pakken nyttig, da den i stor grad kan overvåke Linux -prosesser og forhåpentligvis vil minimere nedetid for tjenestene dine.
Last opp flere skript til github hvis du oppretter nye. Bare gi meg beskjed, så legger jeg deg til som bidragsyter.
Anbefalt:
SERVICE ROBOT: 8 trinn
SERVICE ROBOT: Denne roboten vil være en pålitelig assistent i alle dine gjengivelser. Roboten kommer med mange bevegelige lemmer, roterende hode og spinnende hjul. Det er 7 fargevalg for kroppen og 2 alternativer for øynene. DEN HAR SPINNHJUL
E.S.D.U (Emergency Service Droid Unit): 7 trinn
E.S.D.U (Emergency Service Droid Unit): I dag skal vi bygge en E.S.D.U (Emergency Service Droid Unit). E.S.D.U er delt inn i 3 klasser: Politi, Brann og Medic. Alle disse er ennå ikke fullt utviklet, men jeg håper vi kan oppgradere og utvikle dem sammen som en kommando
Værdata ved hjelp av Google Sheets og Google Script: 7 trinn
Værdata ved hjelp av Google Sheets og Google Script: I denne Blogtut kommer vi til å sende avlesningene til SHT25 -sensoren til Google Sheets ved hjelp av Adafruit huzzah ESP8266 som hjelper til med å sende dataene til internett. Å sende data til Google -arkcelle er mye nyttig og grunnleggende måte som lagrer dataene på
Irrigações Automatizadas Com Web Service Utilizando Python: 5 trinn (med bilder)
Irrigações Automatizadas Com Web Service Utilizando Python: Neste projeto iremos desenvolver um system of monitoramento para planta ç õ es, que ir á Hvis du vil vite mer om det, trykker du på atmosfæren, temperaturene gjøres, incid ê ncia UV, velocidade do vento e condi &
Sette opp for å programmere et Picaxe Via Shell Script (linux): 5 trinn
Sette opp for å programmere et Picaxe Via Shell Script (linux): Enkel gjennomgang som viser hvordan du lager et skallskript som vil laste ned et program fra et ftp -nettsted, deretter kompilere det og deretter laste det ned til picaxe. (Dette er også min første instruerbar)