Daftar Isi:
- Langkah 1: Menggunakan Metode yang Disediakan oleh Systemd
- Langkah 2: Mengonfigurasi dan Menggunakan Skrip Pemeriksa Layanan
- Langkah 3: Pikiran Terakhir
Video: Skrip Monitor Layanan untuk Server Linux: 4 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:58
Memiliki sistem yang stabil dan selalu berjalan, bahkan jika Anda menggunakan Linux bisa menjadi tugas yang sulit.
Karena kompleksitas paket perangkat lunak modern dan pengkodean yang buruk, pasti beberapa proses mungkin macet dari waktu ke waktu. Ini bisa menjadi hal yang buruk jika Anda menjalankan server dan beberapa orang mengandalkan layanan ini.
Langkah 1: Menggunakan Metode yang Disediakan oleh Systemd
Seperti yang mungkin sudah Anda ketahui, sebagian besar sistem operasi Linux modern menggunakan systemd.
Jika Anda tidak terbiasa dengan systemd, ini menurut wikipedia:
"… sebuah sistem init yang digunakan dalam distribusi Linux untuk mem-bootstrap ruang pengguna dan mengelola semua proses selanjutnya, alih-alih sistem init UNIX System V atau Berkeley Software Distribution (BSD). …"
Banyak orang masih memperdebatkan mengapa perlu mengganti sistem init lama yang baik dengan sistem manajemen proses yang lebih rumit ini, tetapi pada tautan berikut mungkin ada penjelasan yang bagus:
www.tecmint.com/systemd-replaces-init-in-l…
Peningkatan yang paling penting adalah ia dapat membuka sistem lebih cepat daripada init, karena pemrosesan bersamaan dan paralel saat boot alih-alih pendekatan berurutan dari init
Tanpa masuk ke bagian dalam systemd, untuk menambahkan proses ke systemd, Anda harus membuat file layanan. Sintaks file semacam itu dapat berkisar dari yang sangat sederhana hingga yang sangat rumit, dan kami tidak akan membahasnya secara detail. Untuk memiliki file.service dasar, cukup menggunakan entri berikut:
[Unit]Description=Deskripsi applicationDocumentation=https://wikipedia.org/ After=local-fs.target network.target[Service]Type=simpleExecStart=/usr/sbin/applicationExecReload=/usr/sbin/application reloadExecStop=/ usr/sbin/application stopRestart=always[Install]WantedBy=multi-user.target
Tempatkan ini ke dalam file application.service di folder /lib/systemd/system.
Apa yang dilakukan masing-masing opsi ini dijelaskan di tautan berikut:
access.redhat.com/documentation/en-US/Red_…
Untuk memulai aplikasi Anda, jalankan perintah berikut:
sudo systemctl start application.service
Catatan: ekstensi.service dapat dihilangkan.
Untuk menghentikan aplikasi:
sudo systemctl stop application.service
Jika file konfigurasi telah diubah dan Anda ingin memuat ulang pengaturan:
sudo systemctl reload application.service
Untuk memulai ulang aplikasi:
sudo systemctl restart application.service
Untuk mengaktifkan mulai otomatis saat boot:
sudo systemctl aktifkan application.service
Jika ini diaktifkan, maka manajer proses systemd akan mencoba memulai aplikasi berdasarkan pengaturan yang disediakan oleh file sistem.
Untuk menonaktifkannya, gunakan perintah yang sama seperti di atas, tetapi dengan parameter 'disable'.
Jika Anda menempatkan Restart=always di file layanan, maka systemd akan memantau proses dan jika tidak dapat ditemukan dalam daftar proses, ia akan mencoba memulai ulang secara otomatis.
Jika Anda menempatkan
RestartSec=30
setelah perintah restart, itu akan menunggu selama 30 detik sebelum mencoba memulai kembali proses. Ini mungkin berguna, karena upaya restart terus menerus dari layanan/aplikasi yang gagal dapat menyebabkan permintaan tinggi pada sistem (menulis log kesalahan, dll)
Seperti yang Anda lihat, systemd sudah menyediakan beberapa cara untuk memantau proses. Namun, dalam beberapa kasus ini mungkin tidak cukup. Bagaimana jika suatu proses tidak keluar (masih ada dalam daftar proses), tetapi berhenti merespons. Dalam hal ini, untuk memastikan bahwa suatu proses benar-benar aktif dan berjalan, Anda mungkin memerlukan pemeriksaan tambahan untuk dilakukan.
Di sinilah skrip dari instruksi ini akan berguna.
Langkah 2: Mengonfigurasi dan Menggunakan Skrip Pemeriksa Layanan
Jika Anda memerlukan lebih banyak kontrol atas proses/layanan yang sedang berjalan, skrip ini pasti akan sangat membantu.
Karena kodenya agak besar, Ini diunggah ke github dan dapat ditemukan di bawah repositori berikut:
github.com/trex2000/Service-Monitor-Scripts/blob/master/checkService.sh
'Jantung' dari seluruh paket adalah
checkService.sh
Sebelum menggunakannya, Anda harus mengganti path lengkap ke folder layanan. Ini dapat ditemukan di awal skrip.
Script dapat memantau beberapa proses dan melakukan tugas tambahan, seperti yang dijelaskan di bawah ini:
Ia melewati setiap file dari subfolder /services yang memiliki ekstensi.serv atau.check dan akan memeriksa apakah ada proses aktif yang disebut 'aplikasi'.
Jika tidak ada file '.check' untuk suatu aplikasi, hanya file application.serv:
Jika proses aktif, maka proses akan dianggap aktif
Jika proses tidak aktif, maka layanan akan restart dengan mengeluarkan perintah berikut:
systemctl restart aplikasi
jika file.serv kosong!
Jika file.serv tidak kosong dan memiliki hak yang dapat dieksekusi, ia akan mencoba menjalankannya sebagai skrip BASH biasa.
Ini berguna jika ada sesuatu yang harus dilakukan selain hanya memulai ulang layanan.
Misalnya, dalam file spamd.serv, dari repo di atas, jika layanan spamd mati, layanan spamassassin perlu di-restart sebagai gantinya, yang juga akan me-restart spamd. Restart hanya spamd tidak akan cukup.
Seseorang dapat mengedit konten file serv seperti itu sesuai dengan kebutuhan.
Contoh lain adalah file pcscd.serv. Dalam hal ini beberapa proses lain juga dimulai ulang/dimatikan.
Jika ada file cek, setelah memeriksa apakah proses sedang berjalan, maka file skrip ini juga akan dijalankan untuk melakukan pemeriksaan tambahan.
Misalnya, untuk layanan oscam, kami telah membuat file pemeriksaan yang mencoba menghubungkan ke antarmuka webnya untuk melihat apakah itu berhasil. Jika tidak, maka, meskipun prosesnya aktif, layanan tidak merespons dan perlu dimulai ulang. Restart layanan harus dilakukan/dipanggil oleh file.check itu sendiri.
Contoh lain adalah layanan DLNA mediatomb.
Ini adalah server kecil yang menyediakan konten video/audio ke klien DLNA dan menyiarkan dirinya sendiri di jaringan. Terkadang layanan hang dan tidak dapat ditemukan lagi, tetapi prosesnya akan tetap aktif. Untuk memeriksa apakah layanan dapat ditemukan, utilitas CLI yang disebut gssdp-discover digunakan. Seluruh kode yang memeriksa server DLNA ditempatkan di dalam skrip mediatomb.check.
Ini hanya beberapa contoh tentang bagaimana Anda dapat menggunakan file.serv dan.check.
Untuk memantau layanan baru, Anda harus membuat.serv dan, jika perlu, juga file pemeriksaan dan menulis skrip yang sesuai di dalamnya.
Jika hanya memeriksa keberadaan proses jika cukup, maka file.serv kosong sudah cukup. Jika pemeriksaan tambahan harus dilakukan, maka file.check harus dibuat dan skrip kecil harus ditulis untuk melakukan pekerjaan tersebut.
Tentu saja, skrip.sh harus dijalankan secara berkala, oleh karena itu tugas cron juga harus dibuat untuknya:
#periksa layanan yang berjalan setiap 5 menit*/5 * * * * /var/bin/ServiceCheck/checkService.sh >/dev/null
Langkah 3: Pikiran Terakhir
Saya harap Anda akan menemukan paket ini berguna karena dapat dengan mudah memantau proses Linux dan mudah-mudahan akan meminimalkan waktu henti layanan Anda.
Jangan ragu untuk mengunggah skrip tambahan ke github, jika Anda membuat yang baru. Beri tahu saya dan saya akan menambahkan Anda sebagai kontributor.
Direkomendasikan:
MCU Mengakses Layanan Internet Melalui IFTTT – Ameba Arduino: 3 Langkah
MCU Mengakses Layanan Internet Melalui IFTTT – Ameba Arduino: Mengakses layanan internet adalah pekerjaan yang mudah untuk perangkat pintar seperti ponsel android, tablet atau PC, tetapi tidak begitu mudah pada mikrokontroler karena biasanya membutuhkan konektivitas dan daya pemrosesan yang lebih baik. Namun, kami dapat menurunkan bagian berat dari
ROBOT LAYANAN: 8 Langkah
ROBOT LAYANAN: Robot ini akan menjadi asisten tepercaya dalam semua render Anda. Robot ini hadir dengan banyak anggota tubuh yang bergerak, kepala yang berputar dan roda yang berputar. Terdapat 7 pilihan warna untuk body dan 2 pilihan untuk mata
E.S.D.U (Unit Droid Layanan Darurat): 7 Langkah
E.S.D.U (Unit Droid Layanan Darurat): Hari ini, kita akan membangun E.S.D.U (Unit Layanan Droid Darurat). E.S.D.U dibagi menjadi 3 kelas: Polisi, Pemadam Kebakaran, dan Medis. Semua ini belum sepenuhnya berkembang, tetapi saya berharap kita dapat meningkatkan dan mengembangkannya bersama-sama sebagai sebuah ko
Memperkuat Layanan SSL di Server Web Anda (Apache/Linux): 3 Langkah
Memperkuat Layanan SSL di Server Web Anda (Apache/Linux): Ini adalah tutorial singkat yang berkaitan dengan satu aspek keamanan siber - kekuatan layanan ssl di server web Anda. Latar belakangnya adalah bahwa layanan ssl di situs web Anda digunakan untuk memastikan bahwa tidak ada yang dapat meretas data yang sedang ditransmisikan
Menyiapkan untuk Memprogram Picaxe Melalui Skrip Shell (linux): 5 Langkah
Menyiapkan untuk Memprogram Picaxe Via Shell Script(linux): Panduan sederhana yang menunjukkan cara membuat skrip shell yang akan mengunduh program dari situs ftp kemudian mengompilasinya kemudian mengunduhnya ke picaxe.(Ini juga yang pertama bagi saya dapat diinstruksikan)