Isi kandungan:
- Langkah 1: Menggunakan Kaedah yang Disediakan oleh Systemd
- Langkah 2: Mengkonfigurasi dan Menggunakan Skrip Pemeriksa Perkhidmatan
- Langkah 3: Pemikiran Akhir
Video: Skrip Monitor Perkhidmatan untuk Pelayan Linux: 4 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:12
Mempunyai sistem yang stabil dan sentiasa berjalan, walaupun anda menggunakan Linux boleh menjadi tugas yang sukar.
Oleh kerana kerumitan pakej perisian moden dan pengekodan yang buruk, pasti beberapa proses mungkin terhenti dari semasa ke semasa. Ini boleh menjadi perkara buruk jika anda menjalankan pelayan dan beberapa orang bergantung pada perkhidmatan ini.
Langkah 1: Menggunakan Kaedah yang Disediakan oleh Systemd
Seperti yang mungkin anda ketahui, kebanyakan sistem operasi Linux moden menggunakan systemd.
Sekiranya anda tidak biasa dengan systemd, ini, menurut wikipedia:
"… sebuah sistem init yang digunakan dalam distribusi Linux untuk bootstrap ruang pengguna dan menguruskan semua proses selanjutnya, bukannya sistem init UNIX System V atau Distribusi Perisian Berkeley (BSD).…"
Banyak orang masih berpendapat mengapa perlu mengganti sistem init lama yang baik dengan sistem pengurusan proses yang lebih rumit ini, tetapi pada pautan berikut seseorang mungkin mendapat penjelasan yang baik:
www.tecmint.com/systemd-replaces-init-in-l…
Penambahbaikan yang paling penting ialah sistem ini dapat memunculkan sistem lebih cepat daripada init, kerana pemprosesan serentak dan selari semasa boot dan bukannya pendekatan init yang berurutan
Tanpa masuk ke dalam systemd, untuk menambahkan proses ke systemd, anda mesti membuat fail perkhidmatan. Sintaks fail sedemikian boleh berkisar dari sangat sederhana hingga sangat rumit, dan kami tidak akan membahas secara terperinci. Untuk memiliki fail.service asas, memadai untuk menggunakan entri berikut:
[Unit] Penerangan = Penerangan applicationDocumentation = https://wikipedia.org/ After = local-fs.target network.target [Service] Type = simpleExecStart = / usr / sbin / applicationExecReload = / usr / sbin / application reloadExecStop = / usr / sbin / aplikasi stopRestart = selalu [Pasang] WantedBy = multi-user.target
Letakkan ini ke dalam fail application.service di folder / lib / systemd / system.
Apa yang dilakukan oleh setiap pilihan ini dijelaskan dalam pautan berikut:
access.redhat.com/documentation/en-US/Red_…
Untuk memulakan aplikasi anda, berikan arahan berikut:
sudo systemctl mulakan application.service
Catatan: pelanjutan perkhidmatan boleh dihilangkan.
Untuk menghentikan aplikasi:
sudo systemctl stop application.service
Sekiranya fail konfigurasi telah diubah dan anda ingin memuatkan semula tetapannya:
sudo systemctl muat semula aplikasi.service
Untuk memulakan semula aplikasi:
sudo systemctl restart application.service
Untuk membolehkan automatik bermula semasa boot:
sudo systemctl mengaktifkan aplikasi.service
Sekiranya ini diaktifkan, maka pengurus proses systemd akan cuba memulakan aplikasi berdasarkan tetapan yang disediakan oleh fail sistem.
Untuk melumpuhkannya, gunakan perintah yang sama seperti di atas, tetapi dengan parameter 'disable'.
Sekiranya anda meletakkan Restart = selalu dalam fail perkhidmatan, maka systemd akan memantau prosesnya dan jika tidak dapat dijumpai dalam senarai proses, ia akan cuba memulakannya semula secara automatik.
Sekiranya anda meletakkan
Mulakan semulaSec = 30
setelah arahan memulakan semula, ia akan menunggu selama 30 saat sebelum cuba memulakan semula proses. Ini mungkin berguna, kerana usaha memulakan semula berterusan dari perkhidmatan / aplikasi yang gagal boleh menyebabkan permintaan tinggi pada sistem (menulis kesilapan log, dll.)
Seperti yang anda lihat, systemd sudah menyediakan beberapa kaedah untuk memantau prosesnya. Walau bagaimanapun, dalam beberapa kes ini mungkin tidak mencukupi. Bagaimana jika proses tidak keluar (masih akan ada dalam senarai proses), tetapi berhenti bertindak balas. Dalam kes ini, untuk memastikan bahawa proses benar-benar berjalan, anda mungkin memerlukan pemeriksaan tambahan untuk dilakukan.
Di sinilah skrip dari arahan ini akan sangat berguna.
Langkah 2: Mengkonfigurasi dan Menggunakan Skrip Pemeriksa Perkhidmatan
Sekiranya anda memerlukan lebih banyak kawalan terhadap proses / perkhidmatan yang anda jalankan, skrip ini akan sangat membantu.
Oleh kerana kodnya agak besar, ia dimuat naik ke github dan boleh didapati di repositori berikut:
github.com/trex2000/Service-Monitor-Scripts/blob/master/checkService.sh
'Hati' keseluruhan pakej adalah
checkService.sh
Sebelum menggunakannya, anda mesti mengganti jalan penuh ke folder perkhidmatan. Ini boleh didapati di awal skrip.
Skrip dapat memantau beberapa proses dan melakukan tugas tambahan, seperti yang dijelaskan di bawah:
Ia melalui setiap fail dari subfolder / perkhidmatan yang mempunyai sambungan.serv atau.check dan akan memeriksa apakah ada proses aktif yang disebut 'aplikasi'.
Sekiranya tidak ada fail '.check' untuk aplikasi, hanya fail application.serv:
Sekiranya proses itu aktif, ia akan menganggap proses itu aktif
Sekiranya prosesnya tidak aktif, maka ia akan memulakan semula perkhidmatan dengan mengeluarkan arahan berikut:
aplikasi restart systemctl
sekiranya fail.serv kosong!
Sekiranya fail.serv tidak kosong dan mempunyai hak yang dapat dilaksanakan, ia akan cuba menjalankannya sebagai skrip BASH biasa.
Perkara ini berguna sekiranya ada yang perlu dilakukan selain hanya memulakan semula perkhidmatan.
Sebagai contoh, dalam fail spamd.serv, dari repo di atas, sekiranya perkhidmatan spamd mati, perkhidmatan spamassassin perlu dimulakan semula sebagai gantinya, yang juga akan memulakan semula spamd. Memulakan semula spamd tidak akan mencukupi.
Seseorang boleh mengedit kandungan fail serv tersebut sesuai dengan keperluan.
Contoh lain ialah fail pcscd.serv. Dalam kes ini beberapa proses lain juga dimulakan semula / dibunuh.
Sekiranya ada file cek, setelah memeriksa apakah prosesnya berjalan, ia juga akan menjalankan file skrip ini untuk melakukan pemeriksaan tambahan.
Sebagai contoh, untuk perkhidmatan oscam, kami telah membuat fail cek yang cuba menyambung ke antara muka webnya untuk melihat apakah ia berjaya. Sekiranya tidak, maka, walaupun prosesnya aktif, perkhidmatan ini tidak bertindak balas dan perlu dimulakan semula. Memulakan semula perkhidmatan mesti dilakukan / dipanggil oleh fail.check itu sendiri.
Contoh lain ialah perkhidmatan DLNA mediatomb.
Ini adalah pelayan kecil yang menyediakan kandungan video / audio kepada klien DLNA dan menyiarkannya sendiri di rangkaian. Kadang kala perkhidmatan itu berhenti dan tidak dapat dijumpai lagi, tetapi prosesnya tetap aktif. Untuk memeriksa sama ada perkhidmatan dapat ditemui, utiliti CLI yang disebut gssdp-Discover telah digunakan. Seluruh kod yang memeriksa pelayan DLNA diletakkan di dalam skrip mediatomb.check.
Ini hanyalah beberapa contoh bagaimana anda boleh menggunakan fail.serv dan.check.
Untuk memantau perkhidmatan baru, anda mesti membuat.serv dan, jika diperlukan juga file cek dan tulis skrip yang sesuai di dalamnya.
Sekiranya hanya memeriksa keberadaan proses jika cukup, fail kosong.serv akan mencukupi. Sekiranya pemeriksaan tambahan mesti dilakukan, maka fail.check mesti dibuat dan skrip kecil harus ditulis untuk melakukan tugas tersebut.
Sudah tentu, skrip.sh harus dijalankan secara berkala, oleh itu pekerjaan cron juga mesti dibuat untuknya:
#semak perkhidmatan berjalan setiap 5 minit * / 5 * * * * /var/bin/ServiceCheck/checkService.sh> / dev / null
Langkah 3: Pemikiran Akhir
Saya harap anda dapati pakej ini berguna kerana hanya dapat memantau proses Linux dan semoga dapat mengurangkan waktu henti perkhidmatan anda.
Jangan ragu untuk memuat naik skrip tambahan ke github, jika anda membuat skrip baru. Beritahu saya dan saya akan menambahkan anda sebagai penyumbang.
Disyorkan:
Kod Skrip CustomCmd untuk Prompt Perintah Windows: 6 Langkah
Kod Skrip CustomCmd untuk Prompt Perintah Windows: Adakah anda banyak menggunakan CMD? Saya sudi! Tetapi banyak orang - termasuk saya - menganggapnya terlalu membosankan. Hari ini saya akan mengekodkan skrip yang akan membolehkan kita menyesuaikan CMD cukup untuk membuatnya menyenangkan. Mari mulakan! KOD MUAT TURUN DI BAWAH ARTICLEYOU WIL
SilverLight: Monitor Persekitaran Berasaskan Arduino untuk Bilik Pelayan: 3 Langkah (dengan Gambar)
SilverLight: Monitor Persekitaran Berasaskan Arduino untuk Bilik Pelayan: Setelah saya diberi tugas untuk mencari pemeriksaan persekitaran untuk memantau suhu di ruang pelayan syarikat saya. Idea pertama saya adalah: mengapa tidak hanya menggunakan Raspberry PI dan sensor DHT, ia dapat disiapkan dalam masa kurang dari satu jam termasuk OS
POS SISTEM UNTUK KEDAI, PERMINTAAN DAN PUSAT PERKHIDMATAN DARI EXCEL Dengan Menggunakan Kod Bar: 7 Langkah
SISTEM POS UNTUK KEDAI, PERMINTAAN DAN PUSAT PERKHIDMATAN DARI EXCEL Dengan Menggunakan Kod Bar: Saya memperkenalkan dengan blog ini kepada anda cara membuat sistem POS (tempat penjualan) yang mudah untuk kedai runcit dan pusat servis. Dengan kaedah ini anda dapat menguruskan kemudahan berikut tanpa perisian khas atau peralatan mahal. v Isu
Memperkukuhkan Perkhidmatan SSL pada Pelayan Web Anda (Apache / Linux): 3 Langkah
Memperkukuhkan Perkhidmatan SSL di Pelayan Web Anda (Apache / Linux): Ini adalah tutorial yang sangat pendek berkaitan dengan satu aspek keselamatan siber - kekuatan perkhidmatan ssl di pelayan web anda. Latar belakangnya adalah bahawa perkhidmatan ssl di laman web anda digunakan untuk memastikan bahawa tidak ada yang dapat meretas data yang sedang transmi
Menyiapkan untuk Memprogram Skrip Picaxe Via Shell (linux): 5 Langkah
Menyiapkan Program Picaxe Via Shell Script (linux): Jalan sederhana yang menunjukkan cara membuat skrip shell yang akan memuatkan program dari laman ftp kemudian menyusunnya kemudian memuat turunnya ke picaxe. (Ini juga pertama saya boleh diajar)