Satura rādītājs:
- 1. darbība: izmantojot Systemd piedāvātās metodes
- 2. darbība. Pakalpojumu pārbaudes skriptu konfigurēšana un izmantošana
- 3. solis: pēdējās domas
Video: Servisa monitora skripts Linux serveriem: 4 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:58
Stabila, vienmēr strādājoša sistēma, pat ja izmantojat Linux, var būt grūts uzdevums.
Mūsdienu programmatūras pakotņu sarežģītības un sliktas kodēšanas dēļ neizbēgami daži procesi laiku pa laikam var avarēt. Tas varētu būt slikti, ja izmantojat serveri un daži cilvēki paļaujas uz šiem pakalpojumiem.
1. darbība: izmantojot Systemd piedāvātās metodes
Kā jūs jau zināt, lielākā daļa mūsdienu Linux operētājsistēmu izmanto systemd.
Ja jūs neesat pazīstams ar systemd, tas ir saskaņā ar wikipedia:
"… Init sistēma, ko izmanto Linux izplatīšanā, lai ielādētu lietotāja telpu un pēc tam pārvaldītu visus procesus, nevis UNIX System V vai Berkeley Software Distribution (BSD) init sistēmas."
Daudzi cilvēki joprojām strīdas, kāpēc bija jāaizstāj vecā labā init sistēma ar šo sarežģītāko procesu pārvaldības sistēmu, taču uz šīs saites var atrast labu skaidrojumu:
www.tecmint.com/systemd-replaces-init-in-l…
Vissvarīgākais uzlabojums būtu tas, ka tā spēj atvērt sistēmu ātrāk nekā init, jo tiek veikta vienlaicīga un paralēla apstrāde sāknēšanas laikā, nevis secīga init pieeja
Neiedziļinoties sistēmas dziļumos, lai sistēmai pievienotu procesu, jums ir jāizveido pakalpojuma fails. Šāda faila sintakse var būt no ļoti vienkāršas līdz pilnīgi sarežģītai, un mēs neiedziļināsimies detaļās. Lai būtu.service pamata fails, pietiek ar šādiem ierakstiem:
[Vienība] Apraksts = applicationDocumentation = https://wikipedia.org/ After = local-fs.target network.target [Service] Type = simpleExecStart =/usr/sbin/applicationExecReload =/usr/sbin/application reloadExecStop =/ usr/sbin/application stopRestart = vienmēr [Instalēt] WantedBy = multi-user.target
Ievietojiet tos mapē application.service mapē/lib/systemd/system.
Katra no šīm opcijām ir izskaidrota šajā saitē:
access.redhat.com/documentation/en-US/Red_…
Lai sāktu lietotni, izdodiet šādu komandu:
sudo systemctl start application.service
Piezīme: paplašinājumu.service var izlaist.
Lai apturētu lietojumprogrammu:
sudo systemctl apturēt application.service
Ja konfigurācijas fails ir mainīts un vēlaties atkārtoti ielādēt iestatījumus:
sudo systemctl pārlādēt application.service
Lai restartētu lietojumprogrammu:
sudo systemctl restartējiet application.service
Lai iespējotu automātisku palaišanu palaišanas laikā:
sudo systemctl iespējot application.service
Ja tas ir iespējots, tad sistēmas procesa pārvaldnieks mēģinās palaist lietojumprogrammu, pamatojoties uz sistēmas faila nodrošinātajiem iestatījumiem.
Lai to atspējotu, izmantojiet to pašu komandu, kas aprakstīta iepriekš, bet ar parametru “atspējot”.
Ja pakalpojuma failā ievietojat Restart = vienmēr, tad systemd uzraudzīs procesu un, ja to nevar atrast procesu sarakstā, tas mēģinās to restartēt automātiski.
Ja jūs novietojat
RestartSec = 30
pēc restartēšanas direktīvas tā gaidīs 30 sekundes, pirms mēģinās restartēt procesu. Tas varētu būt noderīgi, jo neveiksmīga pakalpojuma/lietojumprogrammas nepārtraukts restartēšanas mēģinājums var izraisīt lielu pieprasījumu pēc sistēmas (kļūdu žurnālu rakstīšana utt.)
Kā redzat, systemd jau nodrošina dažus līdzekļus procesu uzraudzībai. Tomēr dažos gadījumos ar to var nepietikt. Ko darīt, ja process neiziet (tas joprojām būs procesu sarakstā), bet pārstās reaģēt. Šādā gadījumā, lai pārliecinātos, ka process patiešām ir izveidots un darbojas, jums, iespējams, būs jāveic papildu pārbaudes.
Lūk, kur noderēs šīs instrukcijas skripti.
2. darbība. Pakalpojumu pārbaudes skriptu konfigurēšana un izmantošana
Ja jums ir nepieciešama lielāka kontrole pār jūsu procesiem/pakalpojumiem, šie skripti noteikti būs noderīgi.
Tā kā kods ir nedaudz liels, tas ir augšupielādēts vietnē github un atrodams šajā krātuvē:
github.com/trex2000/Service-Monitor-Scripts/blob/master/checkService.sh
Visa iepakojuma "sirds" ir
checkService.sh
Pirms to izmantot, jums ir jāaizstāj pilns ceļš uz pakalpojumu mapi. To var atrast skripta sākumā.
Skripts var uzraudzīt vairākus procesus un veikt papildu uzdevumus, kā aprakstīts tālāk:
Tas iziet cauri visiem failiem no /services apakšmapes ar paplašinājumiem.serv vai.check un pārbaudīs, vai ir aktīvs process, ko sauc par “lietojumprogrammu”.
Ja lietojumprogrammai nav faila.check, tiek izmantots tikai fails application.serv:
Ja process ir aktīvs, tas to uzskatīs par aktīvu
Ja process ir neaktīvs, tas restartēs pakalpojumu, izdodot šādu komandu:
systemctl restartējiet lietojumprogrammu
ja.serv fails ir tukšs!
Ja.serv fails nav tukšs un tam ir izpildāmās tiesības, tas mēģinās to palaist kā vienkāršu BASH skriptu.
Tas ir noderīgi, ja papildus pakalpojuma restartēšanai ir jādara kaut kas papildus.
Piemēram, spamd.serv failā no iepriekš minētā repo, ja surogātpasta pakalpojums ir miris, tā vietā ir jārestartē pakalpojums spamassassin, kas arī restartēs surogātpastu. Nepietiek tikai ar surogātpasta restartēšanu.
Var rediģēt šāda serv faila saturu atbilstoši vajadzībām.
Vēl viens piemērs ir fails pcscd.serv. Šajā gadījumā tika atsākti/nogalināti arī vairāki citi procesi.
Ja ir pārbaudes fails, pēc tam, kad ir pārbaudīts, vai process darbojas, tas arī izpildīs šo skripta failu, lai veiktu papildu pārbaudes.
Piemēram, oscam pakalpojumam mēs esam izveidojuši pārbaudes failu, kas mēģina izveidot savienojumu ar tā tīmekļa saskarni, lai redzētu, vai tas ir veiksmīgs. Ja nē, tad, neskatoties uz to, ka process ir aktīvs, pakalpojums nereaģē un ir jārestartē. Pakalpojuma restartēšana jāveic/jāizsauc pašam.check failam.
Vēl viens piemērs būtu DLNA mediatomb pakalpojums.
Šis ir neliels serveris, kas nodrošina video/audio saturu DLNA klientiem un pārraida sevi tīklā. Dažreiz pakalpojums uzkaras un to vairs nevar atklāt, taču process joprojām būs aktīvs. Lai pārbaudītu, vai pakalpojums ir atklājams, tika izmantota CLI utilīta ar nosaukumu gssdp-discover. Viss kods, kas pārbauda DLNA serveri, tika ievietots skriptā mediatomb.check.
Šie ir tikai daži piemēri, kā izmantot.serv un.check failus.
Lai uzraudzītu jaunu pakalpojumu, jums jāizveido.serv un, ja nepieciešams, arī pārbaudes fails un jāraksta atbilstošais skripts.
Ja pietiek tikai ar procesa klātbūtnes pārbaudi, tad pietiek ar tukšu.serv failu. Ja ir jāveic papildu pārbaudes, tad jāizveido.check fails un jāraksta neliels skripts, lai veiktu darbu.
Protams, skripts.sh ir jāpalaiž periodiski, tāpēc tam ir jāizveido arī cron darbs:
#pārbaudiet darbības pakalpojumus ik pēc 5 minūtēm */5 * * * * /var/bin/ServiceCheck/checkService.sh>/dev/null
3. solis: pēdējās domas
Es ceru, ka šī pakete jums būs noderīga, jo tā var ievērojami vienkārši kontrolēt Linux procesus un, cerams, samazinās jūsu pakalpojumu dīkstāves laiku.
Jūtieties brīvi augšupielādēt papildu skriptus vietnē github, ja izveidojat jaunus. Vienkārši dariet man to zināmu, un es pievienošu jūs kā līdzautoru.
Ieteicams:
Iestatiet Raspberry Pi 4 caur klēpjdatoru/datoru, izmantojot Ethernet kabeli (bez monitora, bez Wi-Fi): 8 soļi
Iestatiet Raspberry Pi 4 caur klēpjdatoru/datoru, izmantojot Ethernet kabeli (bez monitora, bez Wi-Fi): šajā gadījumā mēs strādāsim ar Raspberry Pi 4 modeli-B ar 1 GB RAM. Raspberry-Pi ir viens borta dators, ko izmanto izglītojošiem mērķiem un DIY projektiem par pieņemamu cenu, un tam ir nepieciešams 5 V 3A barošanas avots
Lietošanas monitora pievienošana mājas termostatam: 4 soļi
Lietošanas monitora pievienošana mājas termostatam: sen, sen, vēl sen bija tāda lieta kā " gudrs " termostats, man bija mājas termostats, kas deva ikdienas (es domāju - varbūt katru nedēļu) "" laikā " manai apkures un gaisa kondicionēšanas sistēmai. Lietas mainītas … Las
VGA monitora sadalītāja pārveidošana datora vadītā monitora pārslēdzējā: 4 soļi
VGA monitora sadalītāja pārveidošana datora vadītā monitora pārslēdzējā: šajā pamācībā ir paskaidrots, kā lētu (20 EURO) VGA monitora sadalītāju, ko izmanto, lai savienotu vienu datoru ar diviem monitoriem, var pārvērst datora kontrolēta monitora komutatorā. Galīgo ierīci kontrolē, izmantojot paralēlo portu, un tā ļauj
Novērtējiet komentārus par instrukcijām - Greasemonkey skripts: 5 soļi
Novērtējiet komentārus par Instructables - Greasemonkey Script: Dažreiz kāds ievieto īpaši noderīgu komentāru, kuru vēlaties apstiprināt. Citreiz cilvēki ievieto diezgan idiotiskus, kurus jūs vēlētos, lai tur nebūtu. Tāpat kā digg, šis Greasemonkey skripts ļauj novērtēt komentārus. Šobrīd lietotāju bāze
Skripts dublēšanai Linksys bezvadu piekļuves punkta konfigurācijas: 5 soļi
Skripts Linksys bezvadu piekļuves punkta konfigurācijas dublēšanai: šajā pamācībā tiks parādīts skripts, ko var izmantot, lai automatizētu linksys bezvadu piekļuves punkta konfigurāciju dublēšanu. Patiesībā to var viegli rediģēt, lai dublētu gandrīz jebkuru linksys ierīci