Product SiteDocumentation Site

12.4. Pemantauan

Pemantauan adalah istilah umum, dan berbagai kegiatan yang dilibatkan memiliki beberapa tujuan: di satu sisi, mengikuti penggunaan sumber daya yang disediakan oleh sebuah mesin memungkinkan mengantisipasi saturasi dan peningkatan berikutnya yang diperlukan; di sisi lain, memperingatkan administrator segera setelah layanan ini tidak tersedia atau tidak berfungsi sebagaimana mestinya berarti bahwa masalah yang terjadi dapat lebih cepat diperbaiki.
Munin mencakup area pertama dengan menampilkan bagan grafis untuk riwayat nilai dari sejumlah parameter (RAM yang digunakan, ruang disk yang ditempati, beban prosesor, trafik jaringan, beban Apache/MySQL, dan seterusnya). Nagios mencakup daerah yang kedua, dengan secara teratur memeriksa bahwa layanan bekerja dan tersedia, dan mengirimkan peringatan melalui saluran yang tepat (surel, pesan teks, dan sebagainya). Keduanya memiliki desain modular, yang membuat mudah untuk menciptakan plug-in baru untuk memantau parameter atau layanan tertentu.

12.4.1. Menyiapkan Munin

Tujuan dari Munin adalah untuk memantau banyak mesin; oleh karena itu, cukup alami menggunakan arsitektur klien server. Host pusat — grapher — mengumpulkan data dari semua host yang dipantau, dan menghasilkan grafik historis.

12.4.1.1. Mengkonfigurasi Host yang Akan Dimonitor

Langkah pertama adalah untuk menginstal paket munin-node. Daemon yang diinstal oleh paket ini mendengarkan pada port 4949 dan mengirimkan kembali data yang dikumpulkan oleh semua plugin aktif. Masing-masing plugin adalah program sederhana yang mengembalikan deskripsi dari data yang dikumpulkan serta nilai yang terakhir diukur. Plugin disimpan dalam /usr/share/munin/plugins/, tetapi hanya yang memiliki symlink di /etc/munin/plugins/ yang benar-benar digunakan.
Ketika paket dipasang, satu set plugin aktif ditentukan berdasarkan perangkat lunak yang tersedia dan konfigurasi host saat ini. Namun, konfigurasi otomatis ini tergantung pada fitur yang harus disediakan oleh setiap plugin, dan biasanya merupakan ide yang baik untuk meninjau dan mengubah hasilnya dengan tangan. Menjelajahi Galeri Plugin bisa menarik meskipun tidak semua plugin memiliki dokumentasi yang komprehensif.
Namun, semua plugin adalah skrip dan sebagian besar agak sederhana dan dikomentari dengan baik. Oleh karena itu, menjelajahi /etc/munin/plugins/ adalah cara yang baik untuk mendapatkan gambaran tentang apa setiap plugin dan menentukan mana yang harus dihapus. Demikian pula, mengaktifkan plugin menarik yang ditemukan di /usr/share/munin/plugins/ adalah sekadar menyiapkan tautan simbolis dengan ln -sf /usr/share/munin/plugins/plugin /etc/munin/plugins/. Perhatikan bahwa ketika nama plugin diakhiri dengan garis bawah "_", plugin memerlukan parameter. Parameter ini harus disimpan atas nama tautan simbolis; Misalnya, plugin "if_" harus diaktifkan dengan tautan simbolis if_eth0, dan itu akan memantau lalu lintas jaringan pada antarmuka eth0.
Setelah semua plugin yang benar diatur, konfigurasi daemon harus diperbarui untuk menggambarkan kontrol akses untuk data yang dikumpulkan. Ini melibatkan direktif allow dalam berkas /etc/munin/munin-node.conf. Konfigurasi default adalah allow ^127\.0\.0\.1$, dan hanya mengizinkan akses ke host lokal. Administrator biasanya akan menambahkan baris serupa yang berisi alamat IP host grapher, kemudian menjalankan ulang daemon dengan systemctl restart munin-node.

12.4.1.2. Mengkonfigurasi Pembuat Grafik

"grapher" adalah sekadar komputer yang mengumpulkan data dan menghasilkan grafik yang sesuai. Perangkat lunak yang diperlukan adalah dalam paket munin. Konfigurasi standar menjalankan munin-cron (sekali setiap 5 menit), yang mengumpulkan data dari semua host yang tercantum dalam /etc/munin/munin.conf (hanya host lokal yang tercantum secara default), menyimpan data historis di berkas RRD (Round Robin Database, sebuah format berkas yang dirancang untuk menyimpan data yang bervariasi dalam waktu) disimpan di bawah /var/lib/munin/ dan menghasilkan halaman HTML dengan grafik di /var/cache/munin/www/.
Semua mesin yang dipantau oleh karena itu harus tercantum dalam berkas konfigurasi /etc/munin/munin.conf. Setiap mesin didaftar sebagai bagian penuh dengan suatu nama yang cocok dengan mesin dan setidaknya entri address yang memberikan alamat IP yang sesuai.
[ftp.falcot.com]
    address 192.168.0.12
    use_node_name yes
Seksi dapat menjadi lebih kompleks, dan menggambarkan grafik tambahan yang dapat dibuat dengan menggabungkan data yang berasal dari beberapa mesin. Sampel yang disediakan di berkas konfigurasi adalah titik awal yang baik untuk kustomisasi.
Langkah terakhir adalah untuk mempublikasikan halaman yang dihasilkan; ini melibatkan mengkonfigurasi server web sehingga isi /var/cache/munin/www/ menjadi tersedia di situs web. Akses ke situs web ini akan sangat dibatasi, menggunakan mekanisme otentikasi atau kontrol akses berbasis IP. Lihat Bagian 11.2, “Server Web (HTTP)” untuk rincian yang relevan.

12.4.2. Menyiapkan Nagios

Tidak seperti Munin, Nagios tidak selalu membutuhkan memasang apapun pada host yang dipantau; sebagian besar waktu, Nagios digunakan untuk memeriksa ketersediaan layanan jaringan. Sebagai contoh, Nagios dapat menyambung ke server web dan memeriksa bahwa suatu halaman web dapat diperoleh dalam selang waktu tertentu.

12.4.2.1. Memasang

Langkah pertama dalam menyiapkan Nagios adalah menginstal paket nagios4 dan monitoring-plugins. Menginstal paket mengkonfigurasi antarmuka web dan server Apache. Modul Apache authz_groupfile dan auth_digest harus diaktifkan, untuk itu jalankan:
# a2enmod authz_groupfile
Considering dependency authz_core for authz_groupfile:
Module authz_core already enabled
Module authz_core already enabled
Enabling module authz_groupfile.
To activate the new configuration, you need to run:
  systemctl restart apache2
# a2enmod auth_digest
Considering dependency authn_core for auth_digest:
Module authn_core already enabled
Enabling module auth_digest.
To activate the new configuration, you need to run:
  systemctl restart apache2
# systemctl restart apache2
Menambahkan pengguna lain cukup dengan memasukkannya ke dalam berkas /etc/nagios4/hdigest.users.
Mengarahkan peramban ke http://server/nagios4/ menampilkan antarmuka web; secara khusus, perhatikan bahwa Nagios sudah memantau beberapa parameter mesin tempat dia berjalan. Namun, beberapa fitur interaktif seperti menambahkan komentar ke host tidak bekerja. Fitur ini dinonaktifkan dalam konfigurasi default untuk Nagios, yang sangat ketat untuk alasan keamanan.
Memfungsikan beberapa fitur melibatkan mengedit /etc/nagios4/nagios.cfg. Kita juga perlu untuk mengatur izin menulis direktori yang digunakan oleh Nagios, dengan perintah seperti berikut:
# systemctl stop nagios4
# dpkg-statoverride --update --add nagios www-data 2710 /var/lib/nagios4/rw
# dpkg-statoverride --update --add nagios nagios 751 /var/lib/nagios4
# systemctl start nagios4

12.4.2.2. Mengkonfigurasi

Antarmuka web Nagios agak bagus, tetapi tidak memungkinkan konfigurasi, dan tidak bisa digunakan untuk menambah host dan layanan yang dipantau. Seluruh konfigurasi diatur melalui berkas-berkas yang dirujuk dalam berkas konfigurasi pusat, /etc/nagios4/nagios.cfg.
Berkas-berkas ini tidak boleh diselami tanpa pemahaman konsep-konsep Nagios. Konfigurasi memuat daftar objek jenis berikut:
  • suatu host adalah mesin yang akan dimonitor;
  • suatu hostgroup adalah seperangkat host yang harus dikelompokkan menjadi satu untuk ditampilkan, atau untuk memfaktorkan beberapa elemen konfigurasi umum;
  • suatu layanan adalah elemen yang dapat diuji terkait dengan host atau grup host. Paling sering akan berupa pengujian layanan jaringan, tetapi dapat juga melibatkan pemeriksaan bahwa beberapa parameter ada dalam rentang yang dapat diterima (misalnya, sisa ruang disk atau beban prosesor);
  • suatu servicegroup adalah satu set layanan yang harus dikumpulkan bersama-sama untuk ditampilkan;
  • suatu contact adalah orang yang dapat menerima pemberitahuan;
  • suatu contactgroup adalah sekumpulan kontak tersebut;
  • suatu timeperiod adalah rentang waktu saat beberapa layanan harus diperiksa;
  • suatu command adalah baris perintah yang dipanggil untuk memeriksa layanan yang diberikan.
Sesuai dengan jenisnya, setiap objek memiliki sejumlah properti yang dapat disesuaikan. Daftar lengkap akan terlalu panjang untuk disertakan, tapi properti yang paling penting adalah hubungan antar objek tersebut.
Suatu service menggunakan command untuk memeriksa keadaan dari suatu fitur pada host (atau hostgroup) dalam timeperiod. Bila ada masalah, Nagios mengirimkan peringatan kepada semua anggota contactgroup yang terhubung ke layanan. Setiap anggota dikirim pesan peringatan menurut saluran yang dijelaskan dalam objek contact yang cocok.
Suatu sistem warisan memungkinkan berbagi dengan mudah satu set properti ke banyak objek tanpa menggandakan informasi. Selain itu, konfigurasi awal mencakup sejumlah objek standar; dalam banyak kasus, mendefinisikan host baru, layanan, dan kontak cukup dengan menurunkan dari objek generik yang disediakan. Berkas-berkas dalam /etc/nagios4/conf.d/ adalah sumber yang baik informasi tentang bagaimana mereka bekerja.
Para administrator Falcot Corp menggunakan konfigurasi berikut:

Contoh 12.5. berkas /etc/nagios4/conf.d/falcot.cfg

define contact{
    name                            generic-contact
    service_notification_period     24x7
    host_notification_period        24x7
    service_notification_options    w,u,c,r
    host_notification_options       d,u,r
    service_notification_commands   notify-service-by-email
    host_notification_commands      notify-host-by-email
    register                        0 ; Template only
}
define contact{
    use             generic-contact
    contact_name    rhertzog
    alias           Raphael Hertzog
    email           hertzog@debian.org
}
define contact{
    use             generic-contact
    contact_name    rmas
    alias           Roland Mas
    email           lolando@debian.org
}

define contactgroup{
    contactgroup_name     falcot-admins
    alias                 Falcot Administrators
    members               rhertzog,rmas
}

define host{
    use                   generic-host ; Name of host template to use
    host_name             www-host
    alias                 www.falcot.com
    address               192.168.0.5
    contact_groups        falcot-admins
    hostgroups            debian-servers,ssh-servers
}
define host{
    use                   generic-host ; Name of host template to use
    host_name             ftp-host
    alias                 ftp.falcot.com
    address               192.168.0.12
    contact_groups        falcot-admins
    hostgroups            debian-servers,ssh-servers
}

# 'check_ftp' command with custom parameters
define command{
    command_name          check_ftp2
    command_line          /usr/lib/nagios/plugins/check_ftp -H $HOSTADDRESS$ -w 20 -c 30 -t 35
}

# Generic Falcot service
define service{
    name                  falcot-service
    use                   generic-service
    contact_groups        falcot-admins
    register              0
}

# Services to check on www-host
define service{
    use                   falcot-service
    host_name             www-host
    service_description   HTTP
    check_command         check_http
}
define service{
    use                   falcot-service
    host_name             www-host
    service_description   HTTPS
    check_command         check_https
}
define service{
    use                   falcot-service
    host_name             www-host
    service_description   SMTP
    check_command         check_smtp
}

# Services to check on ftp-host
define service{
    use                   falcot-service
    host_name             ftp-host
    service_description   FTP
    check_command         check_ftp2
}
This configuration file describes two monitored hosts. The first one is the web server, and the checks are made on the HTTP (80) and secure-HTTP (443) ports. Nagios also checks that an SMTP server runs on port 25. The second host is the FTP server, and the check includes making sure that a reply comes within 20 seconds. Beyond this delay, a warning is emitted; beyond 30 seconds, the alert is deemed critical. The Nagios web interface also shows that the SSH service is monitored: this comes from the hosts belonging to the ssh-servers hostgroup.
Perhatikan penggunaan warisan: suatu objek dibuat untuk mewarisi dari objek lain dengan "menggunakan nama orang tua". Objek induk harus dapat diidentifikasi, yang memerlukan memberikan sebuah properti "nama pengenal". Jika objek induk tidak dimaksudkan untuk menjadi sebuah objek yang nyata, tetapi hanya untuk melayani sebagai orang tua, memberinya sebuah properti "register 0" memberitahu Nagios untuk tidak untuk mempertimbangkan itu, dan karena itu untuk mengabaikan kekurangan beberapa parameter yang bila tidak demikian akan diperlukan.