Mündəricat:
- Addım 1: Systemd tərəfindən verilən üsullardan istifadə
- Addım 2: Xidmət yoxlayıcı skriptlərini konfiqurasiya etmək və istifadə etmək
- Addım 3: Son Fikirlər
Video: Linux Serverləri üçün Xidmət Monitoru Script: 4 Addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:48
Linux istifadə etsəniz belə, sabit, daim işləyən bir sistemə sahib olmaq çətin bir iş ola bilər.
Müasir proqram paketlərinin mürəkkəbliyi və pis kodlaşdırma səbəbindən istər -istəməz bəzi proseslər zaman zaman çökə bilər. Bir server idarə edirsinizsə və bəzi insanlar bu xidmətlərə güvənirsinizsə bu pis bir şey ola bilər.
Addım 1: Systemd tərəfindən verilən üsullardan istifadə
Bildiyiniz kimi, müasir Linux əməliyyat sistemlərinin çoxu systemd istifadə edir.
Systemd ilə tanış deyilsinizsə, vikipediyaya görə budur:
"… Linux paylanmalarında istifadəçi sahəsini açmaq və sonradan bütün prosesləri idarə etmək üçün UNIX System V və ya Berkeley Software Distribution (BSD) init sistemləri əvəzinə istifadə olunan bir başlanğıc sistemi.…"
Bir çox insanlar hələ də köhnə yaxşı başlanğıc sistemini niyə bu daha mürəkkəb proses idarəetmə sistemi ilə əvəz etmənin lazım olduğunu mübahisə edirlər, lakin aşağıdakı linkdə yaxşı bir izahat tapa bilərsiniz:
www.tecmint.com/systemd-replaces-init-in-l…
Ən vacib təkmilləşdirmə, sistemin ardıcıl yanaşma yerinə açılışda eyni vaxtda və paralel işlənməsi səbəbiylə sistemi başlanğıcdan daha sürətli inkişaf etdirə bilməsidir.
Sistemin dərinliklərinə girmədən, sistemə bir proses əlavə etmək üçün bir xidmət faylı yaratmalısınız. Belə bir faylın sintaksisi çox sadədən son dərəcə mürəkkəbə qədər dəyişə bilər və detallara girməyəcəyik. Əsas bir.service faylına sahib olmaq üçün aşağıdakı qeydləri istifadə etmək kifayətdir:
[Bölmə] Təsvir = applicationDocumentation = https://wikipedia.org/ After = local-fs.target network.target [Service] Type = simpleExecStart =/usr/sbin/applicationExecReload =/usr/sbin/application reloadExecStop =/ usr/sbin/application stopRestart = həmişə [Install] WantedBy = multi-user.target
Bunları/lib/systemd/system qovluğunda application.service faylına yerləşdirin.
Bu variantların hər birinin nə edəcəyini aşağıdakı linkdə izah edirik:
access.redhat.com/documentation/en-US/Red_…
Tətbiqə başlamaq üçün aşağıdakı əmri verin:
sudo systemctl başlamaq application.service
Qeyd:.service uzantısı buraxıla bilər.
Tətbiqi dayandırmaq üçün:
sudo systemctl stop application.service
Konfiqurasiya faylı dəyişdirilibsə və parametrləri yenidən yükləmək istəyirsinizsə:
sudo systemctl proqramını yenidən yükləyin. xidmət
Tətbiqi yenidən başlatmaq üçün:
sudo systemctl application.service'i yenidən başladın
Açılışda avtomatik başlamağı aktiv etmək üçün:
sudo systemctl application.service imkan verir
Bu aktivdirsə, systemd proses meneceri, sistem faylının təmin etdiyi parametrlərə əsaslanaraq proqramı işə salmağa çalışacaq.
Bunu aradan qaldırmaq üçün yuxarıdakı kimi eyni əmri istifadə edin, ancaq 'disable' parametri ilə.
Yenidən Başlat = hər zaman xidmət faylına yerləşdirsəniz, systemd prosesi izləyəcək və proses siyahısında tapıla bilməzsə, avtomatik olaraq yenidən başlamağa çalışacaq.
Yerləşdirsəniz
RestartSec = 30
yenidən başlatma direktivindən sonra prosesi yenidən başlatmağa çalışmadan əvvəl 30 saniyə gözləyəcək. Arızalı bir xidmətin/tətbiqin davamlı yenidən başlatma cəhdi sistemdə yüksək tələbata səbəb ola biləcəyi üçün faydalı ola bilər (səhv qeydlərini yazmaq və s.)
Gördüyünüz kimi, systemd artıq prosesləri izləmək üçün bəzi vasitələr təqdim edir. Ancaq bəzi hallarda bu kifayət etməyəcək. Bir proses çıxmazsa (proseslər siyahısında hələ də olacaq), amma cavab verməyi dayandırsa. Bu vəziyyətdə, bir prosesin həqiqətən işlədiyinə əmin olmaq üçün əlavə yoxlamalara ehtiyacınız ola bilər.
Bu təlimatlandırılmış yazıların faydalı olacağı yer budur.
Addım 2: Xidmət yoxlayıcı skriptlərini konfiqurasiya etmək və istifadə etmək
İşləyən proseslərinizə/xidmətlərinizə daha çox nəzarət etməlisinizsə, bu skriptlər şübhəsiz faydalı olacaqdır.
Kod bir qədər böyük olduğu üçün github -a yüklənir və aşağıdakı depo altında tapıla bilər:
github.com/trex2000/Service-Monitor-Scripts/blob/master/checkService.sh
Bütün paketin 'ürəyi'
checkService.sh
İstifadə etməzdən əvvəl xidmət qovluğunun tam yolunu dəyişdirməlisiniz. Bunu skriptin əvvəlində tapa bilərsiniz.
Skript, bir neçə prosesi izləyə və aşağıda göstərildiyi kimi əlavə vəzifə yerinə yetirə bilər:
. Serv və ya.check uzantıları olan /services alt qovluğundan olan hər bir fayldan keçir və 'application' adlı aktiv bir prosesin olub olmadığını yoxlayacaq.
Tətbiq üçün '.check' faylı yoxdursa, yalnız application.serv faylı:
Proses aktiv olarsa, prosesi aktiv hesab edəcək
Proses aktiv deyilsə, aşağıdakı əmri verərək xidməti yenidən başlatacaq:
systemctl yenidən başladın
.serv faylı boşdursa!
. Serv faylı boş deyilsə və icra edilə bilən hüquqlara malikdirsə, onu sadə bir BASH skripti kimi işə salmağa çalışacaq.
Bu xidməti yenidən başlatmaqla yanaşı əlavə bir şey edilməlidirsə faydalıdır.
Məsələn, spamd.serv faylında, yuxarıdakı repodan, spam xidmətinin ölməsi halında, spamassassin xidmətinin yerinə yenidən başlaması lazımdır ki, bu da spam -ı yenidən başlatacaq. Yalnız spam -ı yenidən başlatmaq kifayət etməyəcək.
Belə bir xidmət faylının məzmununu ehtiyaclara uyğun olaraq düzəldə bilərsiniz.
Başqa bir nümunə pcscd.serv faylıdır. Bu vəziyyətdə bir neçə digər proses də yenidən başladıldı/öldürüldü.
Bir yoxlama faylı varsa, prosesin işlədiyini yoxladıqdan sonra əlavə yoxlamalar aparmaq üçün bu skript faylını da işlədər.
Məsələn, oscam xidməti üçün müvəffəqiyyətli olub olmadığını görmək üçün veb interfeysinə qoşulmağa çalışan bir çek faylı yaratdıq. Əks təqdirdə, prosesin aktiv olmasına baxmayaraq, xidmət cavab vermir və yenidən başlamalıdır. Xidmətin yenidən başladılması. Çek faylının özü tərəfindən edilməli/çağrılmalıdır.
Başqa bir nümunə, mediatomb DLNA xidməti ola bilər.
Bu DLNA müştərilərinə video/audio məzmun verən və özünü şəbəkədə yayımlayan kiçik bir serverdir. Bəzən xidmət dayanır və artıq aşkar edilə bilməz, amma proses hələ də aktiv olacaq. Xidmətin kəşf edilə biləcəyini yoxlamaq üçün gssdp-discover adlı CLI yardım proqramı istifadə edilmişdir. DLNA serverini yoxlayan bütün kod mediatomb.check skriptinin içərisinə yerləşdirildi.
Bunlar.serv və.check fayllarından necə istifadə edə biləcəyinizə dair bir neçə nümunədir.
Yeni bir xidməti izləmək üçün.serv yaratmalı və lazım gələrsə bir çek faylı yaratmalı və içərisində müvafiq skript yazmalısınız.
Kifayət qədər əgər prosesin mövcudluğunu yoxlayırsınızsa, boş bir.serv faylı kifayət edər. Əlavə yoxlamalar aparılmalıdırsa, işi görmək üçün.check faylı yaradılmalı və kiçik bir skript yazılmalıdır.
Əlbəttə ki,.sh skriptinin vaxtaşırı işləməsi lazımdır, buna görə də bunun üçün bir cron işi də yaradılmalıdır:
#hər 5 dəqiqədə işləyən xidmətləri yoxlayın */5 * * * * /var/bin/ServiceCheck/checkService.sh>/dev/null
Addım 3: Son Fikirlər
Ümid edirəm bu paketi faydalı hesab edəcəksiniz, çünki Linux proseslərinin monitorinqini çox asanlaşdırır və inşallah xidmətlərinizin dayanma müddətini minimuma endirəcəkdir.
Yenisini yaratsanız, github -a əlavə skriptlər yükləməkdən çekinmeyin. Sadəcə mənə bildirin və mən də sizi töhfəçi olaraq əlavə edəcəyəm.
Tövsiyə:
XİDMƏT ROBOTU: 8 addım
SERVİS ROBOTU: Bu robot bütün görüntülərinizdə etibarlı köməkçi olacaq. Robot bir çox hərəkət edən əzaları, fırlanan başı və fırlanan təkərləri ilə birlikdə gəlir. Bədən üçün 7 rəng, gözlər üçün 2 seçim var
DuvelBot - ESP32 -CAM Bira Xidmət Robotu: 4 addım (şəkillərlə birlikdə)
DuvelBot - ESP32 -CAM Bira Xidmət Robotu: Çətin bir iş günündən sonra divanda ən sevdiyiniz pivəni yudumlamağa heç nə yaxın gəlmir. Mənim vəziyyətimdə, Belçikanın sarışın birası "Duvel" dir. Ancaq yıxıldıqdan sonra ən ciddi problemlə qarşılaşırıq: soyuducunun davamı
E.S.D.U (Təcili Xidmət Droid Birimi): 7 addım
E.S.D.U (Təcili Xidmət Droid Birimi): Bu gün E.S.D.U (Təcili Xidmət Droid Birimi) quracağıq. E.S.D.U 3 sinfə bölünür: Polis, Yanğın və Tibb. Bunların hamısı hələ tam inkişaf etməmişdir, amma ümid edirəm ki, onları bir ticarət olaraq birlikdə təkmilləşdirə və inkişaf etdirə bilərik
Barkodlardan istifadə edərək EXCEL -dən MAĞAZALAR, QÜCMƏLƏR VƏ XİDMƏT MƏRKƏZLƏRİ ÜÇÜN POS SİSTEMİ: 7 Adım
Barkodlardan istifadə edərək EXCELDƏN MAĞAZALAR, GROCERIES və XİDMƏT MƏRKƏZLƏRİ ÜÇÜN POS SİSTEMİ: Kiçik mağazalar və xidmət mərkəzləri üçün sadə bir POS (satış nöqtəsi) sisteminin necə yaradılacağını sizə təqdim edirəm. Bu üsulla xüsusi proqram və ya bahalı avadanlıq olmadan aşağıdakı imkanları idarə edə bilərsiniz. v Məsələ
Yolunuza xidmət etmək üçün servoları sındırmaq: 9 addım
Yolunuza xidmət etmək üçün servoları sındırmaq: servolar robot texnikasında ən faydalı mühərriklərdən biridir. Böyük bir torka, kiçik ölçüyə, inteqrasiya edilmiş H körpüsünə, PWM nəzarətinə və s. RC sistemləri, Arduino və bir çox başqa yollarla istifadə edilə bilər. Ancaq bəzən onları işə salmaq həqiqətən də çətin ola bilər