Obsah:
- Krok 1: Použitie metód poskytovaných spoločnosťou Systemd
- Krok 2: Konfigurácia a používanie skriptov služby Checker
- Krok 3: Záverečné myšlienky
Video: Skript Service Monitor pre servery Linux: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:01
Mať stabilný, vždy spustený systém, aj keď používate Linux, môže byť náročná úloha.
Vzhľadom na zložitosť moderných softvérových balíkov a zlé kódovanie môžu niektoré procesy z času na čas nevyhnutne zlyhať. Ak máte server a niektorí ľudia sa na tieto služby spoliehajú, môže to byť zlá vec.
Krok 1: Použitie metód poskytovaných spoločnosťou Systemd
Ako už možno viete, väčšina moderných operačných systémov Linux používa systemd.
Ak nie ste oboznámení so systémom, je to podľa wikipédie:
„… inicializačný systém používaný v distribúciách Linuxu na zavedenie užívateľského priestoru a následnú správu všetkých procesov namiesto inicializačných systémov UNIX System V alebo Berkeley Software Distribution (BSD).…“
Mnoho ľudí stále argumentuje, prečo bolo potrebné nahradiť starý dobrý systém init týmto komplikovanejším systémom riadenia procesov, ale na nasledujúcom odkaze možno nájdete dobré vysvetlenie:
www.tecmint.com/systemd-replaces-init-in-l…
Najdôležitejším vylepšením by bolo, že dokáže načítať systém rýchlejšie ako init, kvôli súbežnému a paralelnému spracovaniu pri zavádzaní namiesto sekvenčného prístupu init
Bez toho, aby ste sa dostali do hĺbky systemd, aby ste do systému mohli pridať proces, musíte vytvoriť súbor služby. Syntax takého súboru môže byť veľmi jednoduchá až úplne komplikovaná a nebudeme zachádzať do podrobností. Na to, aby ste mali základný súbor.service, stačí použiť nasledujúce položky:
[Unit] Description = Description of applicationDocumentation = https://wikipedia.org/ After = local-fs.target network.target [Service] Type = simpleExecStart =/usr/sbin/applicationExecReload =/usr/sbin/application reloadExecStop =/ usr/sbin/application stopRestart = vždy [Inštalovať] WantedBy = multi-user.target
Umiestnite ich do súboru application.service v priečinku/lib/systemd/system.
Čo robí každá z týchto možností, je vysvetlené v nasledujúcom odkaze:
access.redhat.com/documentation/en-US/Red_…
Pred spustením aplikácie zadajte nasledujúci príkaz:
sudo systemctl spustiť application.service
Poznámka: príponu.service je možné vynechať.
Zastavenie aplikácie:
sudo systemctl stop application.service
Ak bol konfiguračný súbor zmenený a chcete znova načítať nastavenia:
sudo systemctl znova načítať application.service
Reštartovanie aplikácie:
sudo systemctl reštartujte aplikáciu.služba
Ak chcete povoliť automatické spustenie pri zavádzaní:
sudo systemctl povoliť application.service
Ak je to povolené, správca systému systemd sa pokúsi spustiť aplikáciu na základe nastavení, ktoré poskytol systémový súbor.
Ak ho chcete zakázať, použite rovnaký príkaz ako vyššie, ale s parametrom „zakázať“.
Ak do servisného súboru umiestnite Restart = vždy, potom systemd bude proces monitorovať a ak ho nenájde v zozname procesov, pokúsi sa ho automaticky reštartovať.
Ak sa umiestnite
RestartSec = 30
po direktíve reštartu bude 30 sekúnd čakať, kým sa pokúsite reštartovať proces. To môže byť užitočné, pretože nepretržitý pokus o reštart chybnej služby/aplikácie môže viesť k vysokému dopytu po systéme (zapisovanie protokolov chýb atď.)
Ako vidíte, systemd už poskytuje určité prostriedky na monitorovanie procesov. V niektorých prípadoch to však nemusí stačiť. Čo keď sa proces neukončí (stále bude v zozname procesov), ale prestane reagovať. V takom prípade budete potrebovať ďalšie kontroly, aby ste sa uistili, že je proces skutočne spustený.
Tu sa vám budú hodiť skripty z tohto návodu.
Krok 2: Konfigurácia a používanie skriptov služby Checker
Ak potrebujete väčšiu kontrolu nad spustenými procesmi/službami, tieto skripty vám určite pomôžu.
Pretože je kód trochu veľký, nahrá sa do githubu a nájdete ho v nasledujúcom úložisku:
github.com/trex2000/Service-Monitor-Scripts/blob/master/checkService.sh
Srdcom celého balíka je
checkService.sh
Pred použitím musíte nahradiť úplnú cestu k priečinku služby. To nájdete na začiatku scenára.
Skript môže monitorovať niekoľko procesov a vykonávať ďalšie úlohy, ako je popísané nižšie:
Prechádza každým súborom z podpriečinka /services s príponami.serv alebo.check a skontroluje, či existuje aktívny proces s názvom 'aplikácia'.
Ak pre aplikáciu neexistuje súbor „.check“, iba súbor application.serv:
Ak je proces aktívny, bude ho považovať za aktívny
Ak je proces neaktívny, reštartuje službu zadaním nasledujúceho príkazu:
reštartovať aplikáciu systemctl
ak je súbor.serv prázdny!
Ak súbor.serv nie je prázdny a má spustiteľné práva, pokúsi sa ho spustiť ako obyčajný skript BASH.
Je to užitočné, ak je potrebné okrem reštartovania služby urobiť aj niečo navyše.
Napríklad v súbore spamd.serv z vyššie uvedeného úložiska platí, že v prípade, že je služba spamd mŕtva, je potrebné namiesto toho reštartovať službu spamassassin, ktorá taktiež reštartuje spam. Reštartovanie iba spamu by nestačilo.
Obsah takého servisného súboru je možné upravovať podľa potrieb.
Ďalším príkladom je súbor pcscd.serv. V tomto prípade bolo tiež reštartovaných/zabitých niekoľko ďalších procesov.
Ak existuje kontrolný súbor, po kontrole, či je proces spustený, spustí aj tento súbor skriptu, aby vykonal ďalšie kontroly.
Napríklad pre službu oscam sme vytvorili kontrolný súbor, ktorý sa pokúša pripojiť k jeho webovému rozhraniu a zistiť, či je úspešný. Ak nie, potom napriek tomu, že je proces aktívny, služba nereaguje a je potrebné ju reštartovať. Reštartovanie služby musí vykonať/vyvolať samotný súbor.check.
Ďalším príkladom by bola služba DLNA Mediatomb.
Jedná sa o malý server, ktorý poskytuje video/audio obsah klientom DLNA a vysiela sa sám v sieti. Služba niekedy prestane fungovať a už ju nemožno nájsť, ale proces bude stále aktívny. Na kontrolu, či je služba zistiteľná, bol použitý nástroj CLI s názvom gssdp-find. Celý kód, ktorý kontroluje server DLNA, bol umiestnený do skriptu mediatomb.check.
Toto je len niekoľko príkladov toho, ako môžete použiť súbory.serv a.check.
Aby ste mohli monitorovať novú službu, musíte vytvoriť.serv a v prípade potreby aj kontrolný súbor a napísať do nich príslušný skript.
Ak iba kontrolujete prítomnosť procesu, ak je to dostatočné, bude stačiť prázdny súbor.serv. Ak je potrebné vykonať dodatočné kontroly, je potrebné vytvoriť súbor.check a napísať malý skript, ktorý úlohu vykoná.
Samozrejme, skript.sh sa musí spúšťať pravidelne, preto preň treba vytvoriť aj úlohu cron:
#check spustené služby každých 5 minút */5 * * * * /var/bin/ServiceCheck/checkService.sh>/dev/null
Krok 3: Záverečné myšlienky
Dúfam, že vám bude tento balík užitočný, pretože môže do značnej miery jednoducho monitorovať procesy Linuxu a dúfajme, že minimalizuje prestoje vašich služieb.
Ak vytvoríte nové, môžete na github nahrať ďalšie skripty. Dajte mi vedieť a ja vás pridám ako prispievateľa.
Odporúča:
Nástenný držiak pre iPad ako ovládací panel pre domácu automatizáciu, pomocou magnetu ovládaného servom na aktiváciu obrazovky: 4 kroky (s obrázkami)
Nástenný držiak pre iPad ako ovládací panel domácej automatizácie využívajúci servom riadený magnet na aktiváciu obrazovky: V poslednej dobe som strávil nejaký čas automatizáciou vecí vo svojom dome a okolo neho. Ako svoju domácu automatizačnú aplikáciu používam Domoticz, podrobnosti nájdete na www.domoticz.com. Pri mojom hľadaní aplikácie na palubnej doske, ktorá zobrazuje všetky informácie o Domoticz,
Kódujte skript CustomCmd pre príkazový riadok systému Windows: 6 krokov
Kódujte skript CustomCmd pre príkazový riadok systému Windows: Používate CMD veľa? Ja áno! Ale veľa ľudí - vrátane mňa - si myslí, že je to príliš nudné. Dnes budem kódovať skript, ktorý nám umožní prispôsobiť CMD tak, aby bola zábavná. Začnime! KÓD STIAHNITE V SPODNOM ČLÁNKU, KTORÉ BUDETE
Pripojený systém IDC2018IOT pre krmivo pre domáce zvieratá, vodu a monitor: 7 krokov
IDC2018IOT Connected Pet Food, Water and Monitor System: Úvod Bez ohľadu na to, či ste študentom pod tlakom, tvrdo pracujúcim človekom alebo jednoducho ďaleko od domova viac ako niekoľko hodín denne. Ako starostliví majitelia domácich zvierat sa chceme uistiť, že naši milovaní zostanú zdraví, kŕmení a, samozrejme, NIE ležať na
Zmeňte svoje servery DNS na OpenDNS: 6 krokov
Zmeňte svoje servery DNS na OpenDNS: Servery AOL boli v poslednej dobe trochu nekvalitné a nefungovali správne, čo znamenalo, že niektoré nešťastné duše, ako som ja, nemali prístup na určité webové stránky (hlavne wiggle.co.uk). Riešením je zmena DNS
Súkromné servery WoW: 3 kroky
Súkromné servery WoW: To vám ukáže, ako hrať World of Warcraft bez platenia !!! Existujú servery, ktoré vám okamžite poskytnú úroveň 80, bezplatné položky atď. Existujú aj obyčajné servery, ak chcete hrať skutočne. Poznámka: Možno budete musieť zaplatiť za skutočnú hru,