Monit - Pemantauan Proses dan Layanan untuk Linux
Layanan di server mana pun harus aktif dan berjalan dan melakukan apa yang seharusnya mereka lakukan.
Pemantauan otomatis diperlukan untuk memastikan dan memaksimalkan waktu aktif dan ketersediaan layanan sistem di server.
Ini memungkinkan administrator sistem untuk mendapatkan pemberitahuan dan memperbaiki masalah sesegera mungkin dengan gangguan atau waktu henti yang minimal.
Dalam posting ini kita akan bermain dengan alat yang disebut Monit yang dapat memantau layanan dan proses di server dan mengirimkan email peringatan ketika ada yang gagal.
Alat itu sendiri cukup ringan dan memungkinkan pengguna untuk menulis "tes" menggunakan bahasa gaya skrip yang sangat sederhana.
Instal Monit
Pada sistem berbasis Debian dan Ubuntu, Monit tersedia di repositori default. Instal menggunakan apt-get
$ sudo apt-get install monit
Setelah instalasi monit akan dimulai sebagai layanan latar belakang dan dapat diverifikasi dengan perintah berikut
# service monit status * monit is running
Konfigurasi Monit
Hal berikutnya yang harus dilakukan adalah mengkonfigurasi monit untuk memantau hal-hal tertentu. File konfigurasi untuk Monit terletak di /etc/monit/monitrc pada sistem berbasis Ubuntu dan Debian.
You can either add all configurations to this file - /etc/monit/monitrc, or create additional configuration files in the /etc/monit/conf.d/ directory and monit would automatically read and load all of them
Mulai edit file konfigurasi untuk menambahkan layanan yang ingin Anda pantau.
Monit juga memiliki file log yang terletak di /var/log/monit.log yang akan berisi informasi berharga jika Anda perlu memperbaiki sesuatu
Setelah konfigurasi, uji konfigurasi baru dengan menjalankan perintah berikut
# sudo monit -t
Muat ulang konfigurasi baru tanpa memulai ulang semua monit
# sudo monit reload
Aktifkan antarmuka web
Antarmuka web memungkinkan Anda untuk memeriksa laporan Monit dari browser. Ini berguna saat menyiapkan dan menguji monit. Nanti, lebih baik untuk menonaktifkannya agar semuanya tetap aman.
Temukan baris "set httpd" di file konfigurasi dan batalkan komentar. Jika baris tidak ada, buat saja.
set httpd port 2812 and # use address localhost # only accept connection from localhost # allow localhost # allow localhost to connect to the server and allow admin:monit # require user 'admin' with password 'monit' # allow @monit # allow users of group 'monit' to connect (rw) # allow @users readonly # allow users of group 'users' to connect readonly
Sekarang akses http://localhost:2812/ dan antarmuka web Monit akan terbuka.
Siapkan peringatan Email
Seluruh ide di balik monit adalah untuk mendapatkan peringatan setiap kali sesuatu yang tidak terduga terjadi. Monit dapat mengirimkan email secara otomatis. Temukan baris "setel peringatan" dan tentukan email tujuan pengiriman laporan. Tentukan juga server surat yang akan digunakan.
set alert [email protected] set mailserver localhost
Pastikan ada server smtp (MTA) yang berjalan di localhost dan dapat mengirimkan email dengan benar. Gunakan perintah email untuk memverifikasi bahwa sistem telah dikonfigurasi dengan benar untuk mengirim email.
Hindari email non-lansiran - Monit secara default mengirimkan email untuk setiap hal yang dilakukannya atau semua yang terjadi. Misalnya saat monit dimulai. Namun kami hanya menginginkan email khusus peringatan. Ubah konfigurasi sebagai berikut
set alert [email protected] not on {instance}
Konfigurasi di atas tidak akan mengirimkan laporan instans melalui email yang dihasilkan saat monit start/stop. Periksa dokumentasi monit pada filter acara untuk mengetahui lansiran guna mempelajari lebih lanjut.
Beginilah tampilan surat peringatan Monit. Ini dimunculkan saat uji ruang disk berjalan dan gagal di server.
Resource limit matched Service server_disk Date: Thu, 11 Jun 2015 15:41:43 Action: alert Host: localhost Description: space usage 61.4% matches resource limit [space usage>50.0%] Your faithful employee, Monit
Memonitor layanan seperti Apache, Mysql, Postfix
Sekarang Anda ingin memantau server web, server basis data, server surat, dan daemon lainnya untuk memastikan bahwa layanan selalu aktif dan berjalan dengan sempurna. Ini mudah.
Terus tambahkan instruksi dalam file konfigurasi monit untuk menentukan setiap layanan yang ingin Anda pantau dan Monit akan mulai melakukannya secara instan.
After changing configurations, make sure to run 'sudo monit reload' to bring them in effect. While testing you can manually turn services on/off and check the monit report from the web interface.
Berikut beberapa contohnya -
1. Layanan HTTP - port 80
Contoh berikut akan memberitahu Monit untuk memeriksa apakah server http melayani pada port 80 atau tidak. Jika tidak, itu akan menghasilkan peringatan
check host http_server with address localhost if failed port 80 protocol http then alert
Jadi jika ada masalah dengan server http (apache atau nginx) peringatan akan dibuat
Demikian pula Anda dapat mengatur monitor untuk port lain seperti ftp, smtp, imap dll.
2. Pantau status situs web
Memantau port 80 saja tidak cukup untuk memastikan bahwa situs web aktif dan berfungsi. Kami perlu memastikan bahwa mengambil halaman memberikan kode respons http 200. Berikut adalah konfigurasi yang diperlukan
# check that website is working proper check host binarytides with address www.binarytides.com if failed port 80 protocol http request "/" status = 200 then alert
Jika salah satu dari "port 80" atau "server http" atau "status 200 untuk / url" gagal maka peringatan akan dibuat. Ini adalah cara yang efektif untuk memeriksa apakah situs Anda aktif dan tersedia bagi pengguna.
3. Server web Apache - Pemantauan Proses
Proses dipantau menggunakan file pid tertentu. Misalnya pada web server Apache Debian memiliki pid yang terletak di /var/run/apache2/apache2.pid yang dapat diperiksa untuk memastikan apache berjalan atau tidak.
# Monitor Apache and restart if not running, also alert check process apache with pidfile /var/run/apache2/apache2.pid start program = "/etc/init.d/apache2 start" stop program = "/etc/init.d/apache2 stop"
Di atas memberitahu monit untuk memantau proses dari file pid yang ditentukan. Di sini, jika monit tidak menemukan proses yang sedang berjalan, monit akan mencoba untuk memulainya menggunakan perintah yang ditentukan dalam parameter "mulai program". Secara default, monit juga akan menghasilkan peringatan (email) saat memulai ulang.
Hanya memantau
Jika Anda tidak ingin monit me-restart Apache dan hanya menginformasikan tentang acara tersebut, gunakan jenis konfigurasi yang berbeda
# Alert if apache not running check process apache with pidfile /run/apache2/apache2.pid if does not exist then alert
4. Periksa Mysql pada port 3306 - Pemantauan port
Dalam contoh ini kita memonitor database mysql tidak menggunakan pid tetapi langsung dengan menghubungkan ke service port yaitu 3306.
Untuk memeriksa hanya nomor port dengan protokol gunakan konfigurasi berikut -
# check just port 3306 check host localmysql with address localhost if failed port 3306 protocol mysql then alert
Konfigurasi berikut akan memeriksa proses mysql dan restart jika tidak berjalan. Itu juga akan memeriksa layanan port 3306.
check process mysql_server with pidfile /var/run/mysqld/mysqld.pid start program = "/etc/init.d/mysql start" stop program = "/etc/init.d/mysql stop" if failed host 127.0.0.1 port 3306 protocol mysql then alert
5. Pantau server dan port email Postfix
Sekarang mari kita setup konfigurasi untuk memonitor mail server postfix. Konfigurasinya identik dengan yang sebelumnya, hanya dengan file pid dan nomor port yang berbeda
check host localpostfix with address localhost if failed port 25 protocol smtp then alert
Untuk memantau proses dan memulai kembali setelah gagal gunakan ini -
check process postfix with pidfile /var/spool/postfix/pid/master.pid start program = "/etc/init.d/postfix start" stop program = "/etc/init.d/postfix stop" if failed port 25 protocol smtp then restart
And do not forget that while postfix is down, monit might not be able to send any emails (unless there are other mail servers specified). But monit would send them once the mail server is up again.
6. Peringatan berulang kali
Secara default, Monit hanya menghasilkan peringatan dua kali. Sekali ketika tes gagal dan lainnya ketika berhasil.
Jika Anda ingin mendapatkan peringatan berulang untuk tes gagal yang sama (jika terlalu penting misalnya), gunakan konfigurasi berikut.
set alert [email protected] with reminder on 15 cycles
Konfigurasi di atas adalah pengaturan global, yang mengirimkan semua peringatan setelah setiap 15 pemeriksaan/siklus.
Untuk mengulang peringatan hanya untuk pengujian tertentu, tentukan perintah peringatan dalam kriteria pengujian tertentu seperti ini
check filesystem datafs with path /dev/sda1 alert [email protected] with reminder on 1 cycles if space usage > 80% for 5 times within 5 cycles then alert
Jika Anda ingin diingatkan lebih sedikit tetapi berulang kali, gunakan sesuatu seperti "pengingat pada 10 siklus".
Periksa status Monit
Ini membutuhkan monit http daemon untuk berjalan.
$ sudo monit status The Monit daemon 5.8.1 uptime: 0m Process 'apache' status Running monitoring status Monitored pid 1335 parent pid 1 uid 0 effective uid 0 gid 0 uptime 1h 52m children 7 memory kilobytes 29556 memory kilobytes total 241604 memory percent 0.3% memory percent total 2.9% cpu percent 0.0% cpu percent total 0.0% data collected Fri, 05 Dec 2014 11:11:18 System 'enlightened' status Running monitoring status Monitored load average [0.05] [0.26] [0.35] cpu 3.7%us 0.8%sy 0.0%wa memory usage 3613152 kB [44.2%] swap usage 0 kB [0.0%] data collected Fri, 05 Dec 2014 11:11:18
Atau periksa antarmuka web di http://localhost:2812/ untuk memeriksa status semuanya
Kesimpulan
Contoh di atas hanya menunjukkan contoh yang sangat sederhana dalam menyiapkan tugas pemantauan dengan Monit.
Monit mampu melakukan hal-hal yang jauh lebih kompleks seperti melakukan ping ke host jaringan, menjalankan skrip eksternal, dan menguji output untuk nilai tertentu.
Periksa dokumentasi lengkapnya di -
https://mmonit.com/monit/documentation/monit.html
Contoh konfigurasi dari halaman wiki Monit memiliki banyak contoh tentang cara mengkonfigurasi monitor untuk berbagai layanan -
http://mmonit.com/wiki/Monit/ConfigurationExamplesJika Anda memiliki umpan balik atau pertanyaan, beri tahu kami di komentar di bawah.