Pengantar
Secara default, Zevenet menjalankan pemeriksaan kesehatan sederhana ke backend atau server nyata, tetapi kadang-kadang pemeriksaan ini tidak cukup untuk menentukan bahwa backend bekerja dengan benar. Karena alasan ini, Zevenet mengimplementasikan layanan yang mengeksekusi dan mengelola pemeriksaan kesehatan lanjutan melalui daemon yang menggunakan plugin yang disebut Penjaga Pertanian.
Tugas utama Farm Guardian adalah bekerja sebagai pemantauan lanjutan untuk aplikasi, untuk ini, Farm Guardian membaca konfigurasi farm dan mendapatkan daftar backend, dan dibantu oleh plugin memeriksa status kesehatan backend, Farm Guardian memperbarui status backend untuk diberikan lahan yang memungkinkan atau tidak memungkinkan Zen Load Balancer mengirim koneksi di backend tersebut.
Plugin yang digunakan oleh Farm Guardian dapat ditemukan di bawah direktori / usr / local / zenloadbalancer / app / libexec / .
Konfigurasi Penjaga Pertanian
Pemeriksaan Kesehatan untuk backend. Mencentang kotak ini akan memungkinkan keadaan pemantauan yang lebih maju untuk backend dan benar-benar dapat diprogram dengan skrip Anda sendiri. Ketika perilaku yang salah terdeteksi oleh Farm Guardian, itu secara otomatis menonaktifkan server sebenarnya dan akan ditandai sebagai FGdown. Ini adalah layanan independen sehingga Anda tidak perlu memulai kembali layanan pertanian.
Waktu Antara Cek. Ini adalah jumlah detik yang akan menunggu Farm Guardian untuk melaksanakan pemeriksaan kesehatan.
Memerintahkan untuk memeriksa. Perintah yang akan dieksekusi untuk melawan backend yang dikonfigurasi. Konstanta atau token digunakan untuk menyediakan konfigurasi dinamis.
Log Guardian Farm. Kotak centang ini akan memungkinkan log Farm Guardian untuk men-debug beberapa perilaku, meskipun mungkin mengkonsumsi banyak penyimpanan.
plugin
Farm Guardian menggunakan plugin untuk mengonfigurasi pemeriksaan kesehatan tingkat lanjut untuk mendeteksi apakah server nyata tertentu berfungsi seperti yang diharapkan menggunakan opsi yang disesuaikan. Ada banyak pemeriksaan kesehatan untuk setiap jenis protokol, layanan, atau aplikasi. Plugin yang paling penting dijelaskan di bawah ini.
check_ftp: Plugin ini menguji koneksi FTP dengan host yang ditentukan.
check_fping: Plugin ini akan menggunakan perintah fping untuk melakukan ping ke host yang ditentukan untuk pemeriksaan cepat.
check_http: Plugin ini menguji layanan HTTP pada host yang ditentukan. Ia dapat menguji protokol biasa (HTTP) dan secure (HTTPS), mengikuti pengalihan, mencari string dan ekspresi reguler, memeriksa waktu koneksi, dan melaporkan waktu kedaluwarsa sertifikat, kode pengembalian HTTP, dll.
check_imap: Plugin ini menguji koneksi IMAP dengan host yang ditentukan.
check_ldap: Plugin ini menguji layanan LDAP. Itu dapat diuji dengan pencarian yang diberikan.
check_ldaps: Plugin ini menguji layanan LDAPS. Itu dapat diuji dengan pencarian yang diberikan.
check_mysql: Plugin ini menguji koneksi ke server MySQL.
check_mysql_query: Plugin ini memeriksa hasil kueri terhadap level ambang.
check_pgsql: Tes apakah Database PostgreSQL menerima koneksi.
check_pop: Plugin ini menguji koneksi POP dengan host yang ditentukan.
check_radius: Tes untuk melihat apakah server RADIUS menerima koneksi.
check_simap: Plugin ini menguji koneksi IMAP yang aman dengan host yang ditentukan
check_smtp: Plugin ini akan mencoba membuka koneksi SMTP dengan host.
check_snmp: Periksa status mesin jarak jauh dan dapatkan informasi sistem melalui SNMP.
check_spop: Plugin ini menguji koneksi POP aman dengan host yang ditentukan.
check_ssh: Cobalah untuk terhubung ke server SSH di server dan port yang ditentukan.
check_ssmtp: Plugin ini menguji koneksi SSMTP dengan host yang ditentukan.
check_tcp: Plugin ini menguji koneksi TCP dengan host yang ditentukan.
Untuk informasi lebih lanjut, jalankan perintah berikut di bawah jalur plugin:
plugin_name --help
Farm Guardian akan menggunakan plugin ini untuk memeriksa status kesehatan backend dan akan mengelola output kesalahan eksekusi dari plugin yang dieksekusi untuk menentukan status backend sebagai berikut:
Jika kesalahan output == 0 maka backendnya OK> $? = 0
Jika kesalahan keluaran <> 0 maka backend TIDAK OK> $? <> 0
Plugin khusus
Plugin ini dapat dikonfigurasikan dan sepenuhnya dapat diprogram oleh sysadmin agar dapat disesuaikan dengan protokol atau aplikasi apa pun.
Contoh ini menunjukkan plugin khusus check_load.sh.
#!/bin/bash ### ###comments: ###snmp utils should be installed ###snmpd should be installed and configured in the backends ### MAXVALUE=4 COMMUNITY="public" EXECUTE=`snmpget -v 2c -c $COMMUNITY $1 .1.3.6.1.4.1.2021.10.1.3.1 |cut -d ':' -f2 | cut -d '.' -f1 | sed s/\ // | sed s/\"//` echo "SNMP CPU load check for $1 is $EXECUTE" # If the result is true, exit with 1; error; else exit = 0; OK if (( $EXECUTE >= $MAXVALUE )); then #error output; the server is overloaded and the load balancer isn’t going to send more connections exit 1 else #not error; the server can accept more connections exit 0 fi
Konstanta
Saat Farm Guardian menjalankan plugin, ia dapat menggunakan beberapa konstanta atau token sebagai argumen, seperti:
- HOST: Farm Guardian akan mengurus perubahan konstanta ini dengan alamat IP server sebenarnya.
- PORT: Farm Guardian akan mengurus perubahan konstanta ini dengan port server sebenarnya.
Konstanta ini dapat digunakan untuk setiap plugin, Farm Guardian akan menggunakannya untuk menjalankan pemeriksaan kesehatan dengan parameter nyata di tempat.
Contoh
Contoh berikutnya menjelaskan pemeriksaan kesehatan HTTP tingkat lanjut untuk layanan web. Kesalahan umum adalah bahwa server aplikasi menampilkan halaman kosong tetapi port 8080 masih menerima permintaan HTTP.
Untuk farm HTTP, harap konfigurasikan yang berikutnya di bagian Farm Guardian dari setiap layanan:
Farm Guardian akan mengeksekusi check_http plugin untuk setiap backend dan akan menggantikan konstanta HOST serta PORT oleh alamat IP dan port untuk setiap backend, untuk setiap eksekusi plugin yang diberikan akan mengembalikan kode kesalahan 0 jika string 'Selamat Datang' ditemukan dalam konten index.php. Jika string 'Selamat Datang' tidak ditemukan maka backend ini akan ditandai sebagai BAWAH.
Untuk informasi lebih lanjut mengenai konfigurasi Farm Guardian, silakan merujuk ke Panduan konfigurasi Farm Guardian.
Log Farm Guardian dapat diaktifkan meskipun bisa menghabiskan banyak ruang disk dan menyimpan log di jalur /usr/local/zenloadbalancer/config/[_service[_farmguardian.log or / var / log / syslog dalam versi Zevenet terbaru.