GNU/Linux >> Belajar Linux >  >> Cent OS

Pemantauan Server Dengan munin Dan monit Di CentOS 5.2

Pada artikel ini saya akan menjelaskan bagaimana Anda dapat memonitor server CentOS 5.2 Anda dengan munin dan monit. munin menghasilkan grafik kecil yang bagus tentang hampir setiap aspek server Anda (rata-rata beban, penggunaan memori, penggunaan CPU, throughput MySQL, lalu lintas eth0, dll.) tanpa banyak konfigurasi, sedangkan monit memeriksa ketersediaan layanan seperti Apache, MySQL, Postfix dan mengambil tindakan yang sesuai seperti memulai ulang jika menemukan layanan tidak berperilaku seperti yang diharapkan. Kombinasi keduanya memberi Anda pemantauan penuh:grafik yang memungkinkan Anda mengenali masalah saat ini atau yang akan datang (seperti "Kami membutuhkan server yang lebih besar segera, rata-rata beban kami meningkat dengan cepat."), dan pengawas yang memastikan ketersediaan layanan yang dipantau .

Meskipun munin memungkinkan Anda memantau lebih dari satu server, kami hanya akan membahas pemantauan sistem yang dipasang di sini.

Tutorial ini ditulis untuk CentOS 5.2, tetapi konfigurasi harus berlaku untuk distribusi lain dengan sedikit perubahan juga.

Saya ingin mengatakan terlebih dahulu bahwa ini bukan satu-satunya cara untuk mengatur sistem seperti itu. Ada banyak cara untuk mencapai tujuan ini tetapi ini adalah cara yang saya ambil. Saya tidak memberikan jaminan apa pun bahwa ini akan berhasil untuk Anda!

1 Catatan Awal

Nama host sistem kami adalah server1.example.com, dan kami memiliki situs web www.example.com di dalamnya dengan root dokumen /var/www/www.example.com/web.

2 Aktifkan Repositori RPMforge

Pada CentOS 5.2, munin dan monit tidak tersedia di repositori default CentOS. Untungnya kita dapat menginstalnya dari repositori RPMforge. Untuk mengaktifkan repositori RPMforge, kami menjalankan

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
rpm -Uvh rpmforge-release-0.3.6- 1.el5.rf.i386.rpm
rm -f rpmforge-release-0.3.6-1.el5.rf.i386.rpm

pada host i386 dan

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
rpm -Uvh rpmforge-release-0.3.6- 1.el5.rf.x86_64.rpm
rm -f rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm

pada host x86_64 (silakan periksa https://rpmrepo.org/RPMforge/Using untuk versi terbaru).

3 Instal Dan Konfigurasi munin

Untuk menginstal munin di CentOS 5.2, kita lakukan ini:

yum install munin munin-node

Kemudian kita membuat link startup sistem untuk munin dan memulainya:

chkconfig --levels 235 munin-node aktif
/etc/init.d/munin-node start

Selanjutnya, kita harus mengedit file konfigurasi munin /etc/munin/munin.conf. Kami ingin munin menempatkan outputnya ke dalam direktori /var/www/www.example.com/web/monitoring, oleh karena itu kami mengubah nilai htmldir, dan kami ingin menggunakan nama server1.example.com sebagai ganti localhost. localdomain pada output HTML, oleh karena itu kita ganti localhost.localdomain dengan server1.example.com. Tanpa komentar, file yang diubah terlihat seperti ini:

vi /etc/munin/munin.conf
[...]dbdir /var/lib/muninhtmldir /var/www/www.example.com/web/monitoringlogdir /var/log/ muninrundir /var/run/munin# Dimana mencari template HTMLstmpldir /etc/munin/templates[...]# a simple host tree[server1.example.com] address 127.0.0.1 use_node_name yes[...] 

Selanjutnya kita buat direktori /var/www/www.example.com/web/monitoring dan ubah kepemilikannya menjadi pengguna dan grup munin, jika tidak munin tidak dapat menempatkan outputnya di direktori tersebut. Kemudian kita restart munin:

mkdir -p /var/www/www.example.com/web/monitoring
chown munin:munin /var/www/www.example.com/web/monitoring
/etc/init .d/munin-node restart

Sekarang tunggu beberapa menit agar munin dapat menghasilkan output pertamanya, lalu buka http://www.example.com/monitoring/ di browser Anda, dan Anda melihat statistik pertama. Setelah beberapa hari ini akan terlihat seperti ini:

(Ini hanya kutipan kecil dari banyak grafik yang dihasilkan munin...)

4 Password-Protect Direktori Output munin (Opsional)

Sekarang adalah ide yang baik untuk melindungi direktori /var/www/www.example.com/web/monitoring dengan kata sandi kecuali jika Anda ingin semua orang dapat melihat setiap statistik kecil tentang server Anda.

Untuk melakukan ini, kami membuat file .htaccess di /var/www/www.example.com/web/monitoring:

vi /var/www/www.example.com/web/monitoring/.htaccess
AuthType BasicAuthName "Hanya Anggota"AuthUserFile /var/www/www.example.com/.htpasswdmemerlukan pengguna yang valid

Kemudian kita harus membuat file password /var/www/www.example.com/.htpasswd. Kami ingin masuk dengan nama pengguna admin, jadi kami melakukan ini:

htpasswd -c /var/www/www.example.com/.htpasswd admin

Masukkan kata sandi untuk admin, dan selesai!

5 Instal Dan Konfigurasi monit

Selanjutnya kita install monit:

yum install monit

Kemudian kita buat link startup sistem untuk monit:

chkconfig --level 235 monit aktif

file konfigurasi default monit adalah /etc/monit.conf di mana Anda dapat menemukan beberapa contoh konfigurasi (Anda dapat menemukan lebih banyak contoh konfigurasi di http://mmonit.com/wiki/Monit/ConfigurationExamples) yang semuanya dikomentari, tetapi ia memberi tahu monit untuk juga mencari di direktori /etc/monit.d untuk file konfigurasi, oleh karena itu daripada memodifikasi /etc/monit.conf, kami membuat file konfigurasi baru /etc/monit.d/monitrc. Dalam kasus saya, saya ingin memantau proftpd, sshd, mysql, apache, dan postfix, saya ingin mengaktifkan antarmuka web monit pada port 2812, saya ingin antarmuka web https, saya ingin login in to antarmuka web dengan nama pengguna admin dan pengujian sandi, dan saya ingin monit mengirim email peringatan ke [email protected], jadi file saya terlihat seperti ini:

vi /etc/monit.d/monitrc
set daemon 60set logfile fasilitas syslog log_daemonset mailserver localhostset mail-format { from:[email protected] }set alert [email protected]set httpd port 2812 dan SSL ENABLE PEMFILE /var/certs/monit.pem izinkan admin:testcheck proses proftpd dengan pidfile /var/run/proftpd.pid start program ="/etc/init.d/proftpd start" stop program ="/etc/init. "/ etc/init.d/sshd stop" jika gagal port 22 protokol ssh kemudian restart jika 5 restart dalam 5 siklus maka timeoutcheck proses mysql dengan pidfile /var/run/mysqld/mysqld.pid group database start program ="/etc/init. d/mysqld start" stop program ="/etc/init.d/mysqld stop" jika host gagal 127.0.0.1 port 3306 kemudian restart jika 5 restart dalam 5 siklus maka timeoutcheck p proses apache dengan pidfile /var/run/httpd.pid group www start program ="/etc/init.d/httpd start" stop program ="/etc/init.d/httpd stop" jika gagal host www.example.com port 80 protokol http dan minta "/ monit/token" lalu restart jika cpu lebih besar dari 60% untuk 2 siklus kemudian waspada jika cpu> 80% untuk 5 siklus kemudian restart jika totalmem> 500 MB untuk 5 siklus kemudian restart jika anak> 250 kemudian restart jika loadavg(5min) lebih besar dari 10 untuk 8 siklus kemudian berhenti jika 3 restart dalam 5 siklus kemudian timeoutcheck proses postfix dengan pidfile /var/spool/postfix/pid/master.pid group mail start program ="/etc/init. d/postfix start" stop program ="/etc/init.d/postfix stop" jika protokol port 25 smtp gagal maka restart jika 5 restart dalam 5 siklus maka timeout

(Pastikan Anda hanya memeriksa proses yang benar-benar ada di server Anda - jika tidak, monit tidak akan mulai. Yaitu, jika Anda memberi tahu monit untuk memeriksa Postfix, tetapi Postfix tidak diinstal pada sistem, monit tidak akan mulai.)

File konfigurasi cukup menjelaskan; jika Anda tidak yakin tentang suatu opsi, lihat dokumentasi monit:http://mmonit.com/monit/documentation/monit.html

Di bagian apache dari konfigurasi monit Anda menemukan ini:

 jika gagal host www.example.com port 80 protokol http dan request "/monit/token" lalu restart

yang berarti monit mencoba terhubung ke www.example.com pada port 80 dan mencoba mengakses file /monit/token yaitu /var/www/www.example.com/web/monit/token karena root dokumen situs web kami adalah /var/www/www.example.com/web. Jika monit tidak berhasil berarti Apache tidak berjalan, dan monit akan memulai ulang. Sekarang kita harus membuat file /var/www/www.example.com/web/monit/token dan menulis beberapa string acak ke dalamnya:

mkdir /var/www/www.example.com/web/monit
echo "halo"> /var/www/www.example.com/web/monit/token

Selanjutnya kita membuat pem cert (/var/certs/monit.pem) yang kita butuhkan untuk antarmuka web monit terenkripsi SSL:

mkdir /var/certs
cd /var/certs

Kami memerlukan file konfigurasi OpenSSL untuk membuat sertifikat kami. Ini bisa terlihat seperti ini:

vi /var/certs/monit.cnf
# buat sertifikat RSA - ServerRANDFILE =./openssl.rnd[ req ]default_bits =1024encrypt_key =yesdistinguished_name =req_dnx509_extensions =cert_type[ req_dn =Nama Negara ]negara (kode 2 huruf)countryName_default =MOstateOrProvinceName =Nama Negara Bagian atau Provinsi (nama lengkap)stateOrProvinceName_default =MonitorialocalityName =Nama Lokalitas (misalnya, kota)localityName_default =MonittownorganizationName =Nama Organisasi (misalnya, perusahaan)organizationName_default =Monit Inc.organizationalUnitName =Nama Unit Organisasi ( misalnya section)organizationalUnitName_default =Dept. of Monitoring TechnologiescommonName =Nama Umum (FQDN server Anda)commonName_default =server.monit.moemailAddress =Alamat EmailemailAddress_default =[email protected][ cert_type ]nsCertType =server

Sekarang kita buat sertifikatnya seperti ini:

openssl req -new -x509 -days 365 -nodes -config ./monit.cnf -out /var/certs/monit.pem -keyout /var/certs/monit.pem
openssl gendh 512>> /var/certs/monit.pem
openssl x509 -subject -dates -fingerprint -noout -in /var/certs/monit.pem
chmod 700 /var/certs/monit.pem

Akhirnya, kita bisa mulai monit:

/etc/init.d/monit start

Sekarang arahkan browser Anda ke https://www.example.com:2812/ (pastikan port 2812 tidak diblokir oleh firewall Anda), masuk dengan admin dan uji, dan Anda akan melihat antarmuka web monit. Seharusnya terlihat seperti ini:

(Layar Utama)

(Halaman Status Apache)

Tergantung pada konfigurasi Anda di /etc/monit.d/monitrc monit akan memulai ulang layanan Anda jika gagal dan mengirim email pemberitahuan jika ID proses layanan berubah, dll.

Selamat bersenang-senang!

  • munin:http://munin.projects.linpro.no
  • monit:http://mmonit.com/monit
  • CentOS:http://www.centos.org
  • RPMforge:https://rpmrepo.org/RPMforge

Cent OS
  1. Pemantauan server dengan Icinga 2 dan Icingaweb 2 di CentOS 7

  2. Menyiapkan Server dan Klien NFS di CentOS 7.2

  3. Pantau dan Kelola layanan Anda dengan Monit di CentOS 6 / RHEL 6

  1. Cara memantau penggunaan sumber daya server Anda dengan Munin di CentOS 6

  2. Instal Zenario dengan Apache, PHP dan MariaDB di CentOS 7

  3. Siapkan server email dengan PostfixAdmin dan MariaDB di CentOS 7

  1. Cara Menginstal Server dan Klien OpenVPN dengan Easy-RSA 3 di CentOS 7

  2. Cara Menginstal OpenVPN Server dan Klien dengan Easy-RSA 3 di CentOS 8

  3. Instal Mattermost dengan PostgreSQL dan Nginx di CentOS 7