Cara Menginstal dan Mengonfigurasi Monit untuk Menonton dan Memantau Server Anda

Artikel ini mengasumsikan Anda akan menggunakan Ubuntu Server 20.04 atau 24.04.

Motivasi

Monit adalah alat yang sederhana dan ringan untuk memantau dan mengelola layanan, proses, berkas, dan sistem berkas pada server Linux Anda. Kemampuannya yang proaktif menjadikannya pilihan tepat untuk otomatisasi server. Di bawah ini adalah langkah-langkah terperinci tentang cara menginstal, mengonfigurasi, dan menggunakan Monit pada Ubuntu Server 20.04 dan 24.04.

Alternatif

Netdata hadir dengan WordOps dan melakukan pekerjaan yang bagus dalam menampilkan statistik peladen Anda. Tetapi tidak memiliki fitur pemantauan proaktif yang ditawarkan Monit. Perkakas lain seperti Kibana, Zabbix, dan Nagios juga populer, tetapi mereka lebih sulit untuk diatur dan menghabiskan lebih banyak sumber daya sistem.

Instal Monit

Untungnya, Monit disertakan dalam repositori Ubuntu, jadi mari kita instal:

sudo apt update
sudo apt install monit

Konfigurasi Dasar

File konfigurasi utama untuk Monit terletak di /etc/monit/monitrc. Sebelum mengedit, sebaiknya Anda membuat cadangan:

sudo cp /etc/monit/monitrc /etc/monit/monitrc.backup

Secara default, Monit memeriksa layanan setiap 2 menit (120 detik). Anda dapat memodifikasi nilai ini di file dengan mengedit baris di bawah ini. Kami lebih suka pemeriksaan dilakukan setiap 1 menit:

set daemon 60

Monit dilengkapi dengan mailserver sendiri, tetapi karena kita membutuhkan sesuatu yang lebih kuat dan telah mengonfigurasi Sendmail, mari kita gunakan itu sebagai MTA kita, dengan mengarahkan pengaturan ke localhost (parameter ini dikomentari secara default, jadi Anda bisa menempelkan di atasnya):

set mailserver localhost localhost

The format surat mendefinisikan semua aspek struktur email Anda sehingga Anda harus mengosongkan semua barisnya, dan konfigurasi minimalnya hanya mengubah email FROM Anda:

dari: Monit <mo************@*****le.com>

Tetapkan email yang akan menerima semua peringatan dari Monit, biasanya email bisnis Anda sendiri:

mengatur peringatan al****@*****le.com

Monit menggunakan antarmuka HTTP yang tertanam baik untuk menyediakan halaman status berbasis web dan untuk menangani perintah baris perintah. Bahkan jika Anda tidak ingin mengaktifkan antarmuka web, Anda harus menyediakan blok konfigurasi yang valid dan lengkap untuk membuat dan membuat titik akhir dan mengelola Monit dengan benar.

setel port httpd 2812 dan gunakan alamat localhost
 mengizinkan localhost
 izinkan admin:monit # memerlukan pengguna 'admin' dengan kata sandi 'monit'

Untuk mengizinkan akses jarak jauh, ubah localhost ke IP server atau domain yang sesuai, dan mengatur kredensial autentikasi yang aman.

Sertakan file konfigurasi tambahan:

Selain file konfigurasi utamanya, Monit dapat menyertakan file konfigurasi tambahan dari /etc/monit/conf-enabled/. Kita akan menambahkan beberapa monitor di dalam direktori ini, yang mencakup sebagian besar layanan yang kita gunakan pada server kita, tetapi mari kita mulai dengan yang paling penting, yaitu keamanan.

Memantau login SSH yang berhasil

Ini adalah peringatan pertama yang sangat penting, karena kita perlu mengetahui kapan pun seseorang berhasil masuk ke server kita melalui SSH. Peringatan ini disediakan oleh Shireesh di Elitmus dan kami akan menamainya ssh_logins.conf:

periksa berkas ssh_logins dengan path /var/log/auth.log
  abaikan kecocokan dengan "/etc/monit/whitelist_ips.regex"
  jika cocok dengan "Publickey yang diterima" maka waspada

Tambahkan satu IP per baris pada file /etc/monit/whitelist_ips.regex atau mengomentari/menghapusnya jika Anda ingin menerima semua peringatan.

Memantau tumpukan LEMP

Nama yang tepat lemp.conf monitor ini mencakup sumber daya sistem kita, seperti penyimpanan, CPU dan RAM, NGINX, PHP, dan MySQL, yang dalam kasus kami adalah MariaDB. Rumus untuk loadavg adalah 1,5 * jumlah inti CPU:

# Periksa penggunaan sistem berkas pada sistem berkas root
periksa root filesystem dengan path /
    jika penggunaan ruang > 90% maka beri peringatan # Beri peringatan jika penggunaan ruang disk melebihi 90%

# Periksa metrik kinerja sistem pada localhost
periksa sistem localhost
    if loadavg (1min) > 6 then alert # Peringatan jika rata-rata beban 1 menit melebihi 6
    if loadavg (5 menit) > 4 then alert # Peringatan jika rata-rata beban 5 menit melebihi 4
    jika penggunaan memori > 90% maka waspada # Waspada jika penggunaan memori melebihi 90%
    # Peringatan jika penggunaan CPU melebihi 80% selama 15 kali pemeriksaan berturut-turut
    jika penggunaan cpu > 80% selama 15 siklus maka waspada # Total penggunaan CPU
    jika penggunaan cpu (pengguna) > 70% maka beri peringatan # Penggunaan CPU pengguna
    jika penggunaan cpu (sistem) > 30% maka peringatan # Penggunaan CPU sistem
    jika penggunaan cpu (tunggu) > 20% maka peringatan # Penggunaan CPU tunggu I/O

# Periksa proses server web Nginx (HTTPS)
periksa proses nginx dengan pidfile /var/run/nginx.pid
    start program = "/usr/sbin/service nginx start"
    stop program = "/usr/sbin/service nginx stop"
    if cpu > 80% selama 2 siklus maka peringatan # Peringatan jika penggunaan CPU melebihi 80% selama 2 kali pemeriksaan berturut-turut
    jika gagal host 127.0.0.1 port 443 protokol https maka restart # Restart jika Nginx tidak merespons pada HTTPS

# Periksa proses server basis data MySQL
periksa proses mysqld dengan pidfile /var/run/mysqld/mysqld.pid
    start program = "/usr/sbin/service mysql start"
    stop program = "/usr/sbin/service mysql stop"
    if cpu > 80% untuk 2 siklus maka peringatan # Peringatan jika penggunaan CPU melebihi 80% untuk 2 kali pemeriksaan berturut-turut
    jika gagal unixsocket /var/run/mysqld/mysqld.sock maka restart # Restart MySQL jika soket Unix tidak merespons

# Periksa proses PHP-FPM untuk PHP 8.3
periksa proses php8.3-fpm dengan pidfile /var/run/php/php8.3-fpm.pid
    start program = "/usr/sbin/service php8.3-fpm start"
    stop program = "/usr/sbin/service php8.3-fpm stop"
    jika cpu > 80% untuk 2 siklus maka waspada # Waspada jika penggunaan CPU melebihi 80% selama 2 kali pemeriksaan berturut-turut

Memantau Redis

Mari tambahkan pemantauan Redis pada berkas terpisah, redis.confkarena tidak terlalu penting untuk menjalankan WordPress dan dapat dinonaktifkan jika diperlukan:

Pemantauan Redis # (menggunakan soket Unix)
periksa proses redis dengan pidfile /var/run/redis/redis-server.pid
    program mulai = "/usr/sbin/service redis-server start"
    stop program = "/usr/sbin/service redis-server stop"
    
    # Pemantauan sumber daya proses
    jika penggunaan cpu > 80% selama 5 siklus maka waspada
    jika penggunaan memori > 75% maka waspada
    jika anak-anak > 255 untuk 5 siklus maka waspada
    
    kelompokkan redis

# Periksa berkas log Redis untuk kesalahan
periksa berkas redis_log dengan path /var/log/redis/redis-server.log
    jika cocok dengan "ERROR" maka peringatan
    if cocok dengan "KRITIS" maka peringatan
    kelompokkan redis

Monitor Fail2Ban

Dengan menggunakan metodologi yang sama, mari kita tambahkan fail2ban.conf:

periksa proses fail2ban dengan pidfile /var/run/fail2ban/fail2ban.pid
    layanan kelompok
    program start = "/etc/init.d/fail2ban force-start"
    stop program = "/etc/init.d/fail2ban stop"
    jika gagal unixsocket /var/run/fail2ban/fail2ban.sock kemudian restart
    jika 5 kali restart dalam 5 siklus maka timeout

periksa berkas fail2ban_log dengan path /var/log/fail2ban.log
    if cocok dengan "ERROR|WARNING" then alert

Memantau ClamAV

Kita perlu mengetahui apakah ClamAV, yang kita instal sebelumnya, menemukan virus atau malware di server kita, jadi clamav.conf terlihat seperti ini:

# Perhatikan file log ClamAV untuk perubahan yang mengindikasikan adanya deteksi
periksa berkas clamav_log dengan path /var/log/clamav/clamav.log
  jika cocok dengan "DITEMUKAN" maka peringatan

Memantau integritas file sensitif

Monit dapat mengawasi file-file penting atau file yang mungkin tidak terlalu sering berubah dan memperingatkan kita kapan pun hal itu terjadi. Aktivitas tersebut biasanya disebut "pemantauan integritas berkas", jadi berkas conf kita diberi nama fim.conf dan di dalamnya Anda dapat membuat daftar file Anda seperti itu:

# Memantau file konfigurasi WordPress untuk mengetahui adanya perubahan
periksa file wp_config dengan path /var/www/example.com/wp-config.php
    jika checksum berubah maka peringatan

periksa file whitelist_ips dengan path /etc/monit/whitelist_ips.regex
    jika berubah checksum maka peringatan

Mengaktifkan dan Memulai Layanan Monit

Aktifkan Monit untuk memulai secara otomatis saat boot:

sudo systemctl aktifkan monit

Kemudian mulai layanan Monit:

sudo systemctl start monit

Anda dapat memeriksa status layanan Monit dengan:

sudo systemctl status monit

Menguji Konfigurasi Monit

Sebelum memasukkan konfigurasi Monit Anda ke dalam produksi, ujilah:

sudo monit -t
sudo monit reload
sudo monit status

The memonitor status akan mencantumkan semua layanan dan proses yang sedang dipantau oleh Monit.

Jika ada kesalahan konfigurasi, Monit akan menampilkannya, dan Anda dapat memperbaikinya.

Apakah halaman ini bermanfaat?

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *