Mundarija:

Linux serverlari uchun Service Monitor skriptlari: 4 qadam
Linux serverlari uchun Service Monitor skriptlari: 4 qadam

Video: Linux serverlari uchun Service Monitor skriptlari: 4 qadam

Video: Linux serverlari uchun Service Monitor skriptlari: 4 qadam
Video: Generate Studio Quality Realistic Photos By Kohya LoRA Stable Diffusion Training - Full Tutorial 2024, Noyabr
Anonim
Linux serverlari uchun Service Monitor skriptlari
Linux serverlari uchun Service Monitor skriptlari

Barqaror va doimo ishlaydigan tizimga ega bo'lish, hatto Linuxdan foydalanayotgan bo'lsangiz ham, qiyin ish bo'lishi mumkin.

Zamonaviy dasturiy ta'minot paketlarining murakkabligi va noto'g'ri kodlash tufayli, muqarrar ravishda, ba'zi jarayonlar vaqti -vaqti bilan ishdan chiqishi mumkin. Agar siz serverda ishlayotgan bo'lsangiz va ba'zi odamlar bu xizmatlarga ishonsa, bu yomon ish bo'lishi mumkin.

1 -qadam: Systemd tomonidan taqdim etilgan usullardan foydalanish

Siz bilganingizdek, zamonaviy Linux operatsion tizimlarining ko'pchiligi systemd dan foydalanadi.

Agar siz systemd bilan tanish bo'lmasangiz, bu vikipediyaga ko'ra:

"… Linux tarqatishida UNIX System V yoki Berkeley Software Distribution (BSD) boshlang'ich tizimlari o'rniga, foydalanuvchi maydonini yuklash va keyinchalik barcha jarayonlarni boshqarish uchun ishlatiladigan tizim."

Ko'pchilik haligacha nima uchun yaxshi eski tizimni bu murakkab jarayonni boshqarish tizimiga almashtirish kerakligi haqida bahslashmoqda, lekin quyidagi havolada yaxshi tushuntirishni topish mumkin:

www.tecmint.com/systemd-replaces-init-in-l…

Eng muhim yaxshilanish shundaki, u tizimni boshlang'ichdan ko'ra tezroq ishga tushirishi mumkin, chunki tizimni ishga tushirishda ketma -ket yondashuv o'rniga yuklashda bir vaqtda va parallel ishlash.

Systemd -ga kirmasdan, jarayonni systemd -ga qo'shish uchun siz xizmat faylini yaratishingiz kerak. Bunday faylning sintaksisi juda oddiydan to murakkabgacha o'zgarishi mumkin va biz bu haqda batafsil ma'lumot bermaymiz. Asosiy.service faylga ega bo'lish uchun quyidagi yozuvlardan foydalanish kifoya:

[Birlik] Tavsif = applicationDocumentation tavsifi = https://wikipedia.org/ After = local-fs.target network.target [Service] Type = simpleExecStart =/usr/sbin/applicationExecReload =/usr/sbin/application reloadExecStop =/ usr/sbin/application stopRestart = doim [O'rnatish] WantedBy = multi-user.target

Buni/lib/systemd/system papkasida application.service fayliga joylashtiring.

Bu variantlarning har biri nima qilishini quyidagi havolada tushuntirib beramiz:

access.redhat.com/documentation/en-US/Red_…

Arizangizni ishga tushirish uchun quyidagi buyruqni bering:

sudo systemctl application.service -ni ishga tushiring

Eslatma:.service kengaytmasini o'tkazib yuborish mumkin.

Arizani to'xtatish uchun:

sudo systemctl stop application.service

Agar konfiguratsiya fayli o'zgartirilgan bo'lsa va sozlamalarni qayta yuklamoqchi bo'lsangiz:

sudo systemctl reload application.service

Ilovani qayta ishga tushirish uchun:

sudo systemctl application.service -ni qayta ishga tushiring

Yuklashda avtomatik ishga tushirishni yoqish uchun:

sudo systemctl application.service -ni yoqing

Agar bu yoqilgan bo'lsa, systemd jarayon menejeri tizim fayli taqdim etgan sozlamalar asosida dasturni ishga tushirishga harakat qiladi.

O'chirish uchun yuqoridagi buyruqni ishlating, lekin "o'chirish" parametri bilan.

Agar siz Restart = ni har doim xizmat fayliga joylashtirsangiz, systemd jarayonni kuzatadi va agar jarayonlar ro'yxatida topilmasa, uni avtomatik ravishda qayta ishga tushirishga harakat qiladi.

Agar joylashtirsangiz

RestartSec = 30

qayta boshlash buyrug'idan so'ng, jarayonni qayta boshlashdan oldin 30 soniya kutadi. Bu foydali bo'lishi mumkin, chunki ishlamayotgan xizmat/ilovani uzluksiz qayta ishga tushirish tizimda talab katta bo'lishi mumkin (xatolar jurnalini yozish va hk).

Ko'rib turganingizdek, systemd allaqachon jarayonlarni kuzatish uchun ba'zi vositalarni taqdim etadi. Biroq, ba'zi hollarda, bu etarli bo'lmasligi mumkin. Agar jarayon chiqmasa (u jarayonlar ro'yxatida qoladi), lekin u javob berishni to'xtatadi. Bunday holda, jarayon haqiqatan ham ishlayotganiga ishonch hosil qilish uchun sizga qo'shimcha tekshiruvlar kerak bo'lishi mumkin.

Bu erda ushbu ko'rsatmali skriptlar yordam beradi.

2 -qadam: Service Checker skriptlarini sozlash va ishlatish

Agar sizga ishlayotgan jarayonlar/xizmatlarni ko'proq nazorat qilish kerak bo'lsa, bu skriptlar albatta yordam beradi.

Kod biroz katta bo'lgani uchun u github -ga yuklangan va uni quyidagi omborda topish mumkin:

github.com/trex2000/Service-Monitor-Scripts/blob/master/checkService.sh

Butun paketning "yuragi" bu

checkService.sh

Uni ishlatishdan oldin siz xizmat papkasining to'liq yo'lini o'zgartirishingiz kerak. Buni skript boshida topish mumkin.

Skript bir nechta jarayonlarni kuzatishi va quyida ta'riflanganidek, qo'shimcha vazifalarni bajarishi mumkin:

U.serv yoki.check kengaytmalariga ega bo'lgan /services pastki papkasidagi har bir fayl orqali o'tadi va "ilova" deb nomlangan faol jarayon mavjudligini tekshiradi.

Agar ilova uchun ".check" fayli bo'lmasa, faqat application.serv fayli:

Agar jarayon faol bo'lsa, u jarayonni faol deb hisoblaydi

Agar jarayon faol bo'lmasa, u quyidagi buyruqni berish orqali xizmatni qayta ishga tushiradi:

systemctl qayta ishga tushirish dasturi

agar.serv fayli bo'sh bo'lsa!

Agar.serv fayli bo'sh bo'lmasa va bajariladigan huquqlarga ega bo'lsa, uni oddiy BASH skript sifatida ishlatishga harakat qiladi.

Agar xizmatni qayta ishga tushirishdan tashqari, biror narsa qilish kerak bo'lsa, bu foydali bo'ladi.

Masalan, spamd.serv faylida, yuqoridagi repo -dan, agar spam -xizmat o'chib ketgan bo'lsa, uning o'rniga spamassassin xizmatini qayta boshlash kerak, bu ham spam -ni qayta ishga tushiradi. Faqat spam -ni qayta ishga tushirish etarli bo'lmaydi.

Ehtiyojlarga ko'ra, bunday xizmat faylining mazmunini o'zgartirish mumkin.

Yana bir misol - pcscd.serv fayli. Bunday holda, yana bir qancha jarayonlar qayta boshlandi/o'ldirildi.

Agar tekshirish fayli bo'lsa, jarayon ishlayotganini tekshirgandan so'ng, u qo'shimcha tekshiruvlarni bajarish uchun ushbu skript faylini ishga tushiradi.

Masalan, oscam xizmati uchun biz uning muvaffaqiyatli yoki yo'qligini bilish uchun uning veb -interfeysiga ulanishga harakat qiladigan tekshirish faylini yaratdik. Agar shunday bo'lmasa, jarayon faol bo'lishiga qaramay, xizmat javob bermayapti va uni qayta ishga tushirish kerak. Xizmatni qayta ishga tushirish.check faylining o'zi tomonidan amalga oshirilishi/chaqirilishi kerak.

Yana bir misol - DLNA mediatomb xizmati.

Bu DLNA mijozlariga video/audio tarkibini taqdim etadigan va o'zini tarmoq orqali uzatadigan kichik server. Ba'zida xizmat to'xtab qoladi va uni boshqa topib bo'lmaydi, lekin jarayon hali ham faol bo'ladi. Xizmat kashf qilinishini tekshirish uchun gssdp-discover deb nomlangan CLI yordam dasturi ishlatilgan. DLNA serverini tekshiradigan butun kod mediatomb.check skriptiga joylashtirilgan.

Bu.serv va.check fayllaridan qanday foydalanish mumkinligi haqida bir necha misol.

Yangi xizmatni kuzatish uchun siz.serv va agar kerak bo'lsa, tekshirish faylini yaratishingiz va ularga tegishli skriptni yozishingiz kerak.

Agar jarayonning mavjudligini tekshirish etarli bo'lsa, bo'sh.serv fayli etarli bo'ladi. Agar qo'shimcha tekshiruvlar o'tkazilsa, bu ishni bajarish uchun.check faylini yaratish va kichik skript yozish kerak.

Albatta,.sh skriptini vaqti -vaqti bilan bajarish kerak, shuning uchun cron ishi ham yaratilishi kerak:

#har 5 daqiqada ishlaydigan xizmatlarni tekshiring */5 * * * * /var/bin/ServiceCheck/checkService.sh>/dev/null

3 -qadam: Yakuniy fikrlar

Umid qilamanki, siz ushbu paketni foydali deb topasiz, chunki u Linux jarayonlarini kuzatib boradi va sizning xizmatlaringizning ishlamay qolishini kamaytiradi.

Agar siz yangisini yaratsangiz, github -ga qo'shimcha skriptlarni yuklashingiz mumkin. Menga xabar bering, shunda men sizni qo'shuvchi sifatida qo'shaman.

Tavsiya: