Sebelumnya kita telah membahas tentang cara menggunakan Nagios untuk memonitor server Linux dan Windows. Pada artikel ini, mari kita tinjau cara memantau sesi aktif dan suhu perangkat VPN menggunakan Nagios. Anda dapat memantau hampir semua hal tentang perangkat keras menggunakan plugin nagios check_snmp.
1. Identifikasi file cfg untuk menentukan host, grup host, dan layanan untuk perangkat VPN
Anda dapat membuat file vpn.cfg baru atau menggunakan kembali salah satu file .cfg yang ada. Dalam artikel ini, saya telah menambahkan layanan VPN dan definisi hostgroup ke file switch.cfg yang ada. Pastikan baris switch.cfg di file nagios.cfg tidak dikomentari seperti gambar di bawah ini.
# grep switch.cfg /usr/local/nagios/etc/nagios.cfg cfg_file=/usr/local/nagios/etc/objects/switch.cfg
2. Tambahkan grup host baru untuk perangkat VPN di switch.cfg
Tambahkan hostgroup ciscovpn berikut ke file /usr/local/nagios/etc/objects/switch.cfg.
define hostgroup{ hostgroup_name ciscovpn alias Cisco VPN Concentrator }
3. Tambahkan host baru untuk perangkat VPN di switch.cfg
Dalam contoh ini, saya telah mendefinisikan dua host–satu untuk primer dan satu lagi untuk konsentrator Cisco VPN sekunder di file /usr/local/nagios/etc/objects/switch.cfg. Ubah arahan alamat ke alamat ip perangkat VPN Anda.
define host{ use generic-host host_name cisco-vpn-primary alias Cisco VPN Concentrator Primary address 192.168.1.7 check_command check-host-alive max_check_attempts 10 notification_interval 120 notification_period 24x7 notification_options d,r contact_groups admins hostgroups ciscovpn } define host{ use generic-host host_name cisco-vpn-secondary alias Cisco VPN Concentrator Secondary address 192.168.1.9 check_command check-host-alive max_check_attempts 10 notification_interval 120 notification_period 24x7 notification_options d,r contact_groups admins hostgroups ciscovpn }
4. Tambahkan layanan baru untuk memantau sesi dan suhu aktif VPN di switch.cfg
Tambahkan layanan "Suhu" dan layanan "Sesi VPN Aktif" ke file /usr/local/nagios/etc/objects/switch.cfg.
define service{ use generic-service hostgroup_name ciscovpn service_description Temperature is_volatile 0 check_period 24x7 max_check_attempts 4 normal_check_interval 10 retry_check_interval 2 contact_groups admins notification_interval 960 notification_period 24x7 check_command check_snmp!-l Temperature -o .1.3.6.1.4.1.3076.2.1.2.22.1.29.0,.1.3.6.1.4.1.3076.2.1.2.22.1.33.0 -w 37,:40 -c :40,:45 } define service{ use generic-service hostgroup_name ciscovpn service_description Active VPN Sessions is_volatile 0 check_period 24x7 max_check_attempts 4 normal_check_interval 5 retry_check_interval 1 contact_groups admins notification_interval 960 notification_period 24x7 check_command check_snmp!-l ActiveSessions -o 1.3.6.1.4.1.3076.2.1.2.17.1.7.0,1.3.6.1.4.1.3076.2.1.2.17.1.9.0 -w :70,:8 -c :75,:10 }
5. Validasi check_snmp dari baris perintah
Plug-in Check_snmp menggunakan perintah 'snmpget' dari paket NET-SNMP. Pastikan net-snmp diinstal pada sistem Anda seperti yang ditunjukkan di bawah ini. Jika tidak, unduh dari situs web NET-SNMP.
# rpm -qa | grep -i net-snmp net-snmp-libs-5.1.2-11.el4_6.11.2 net-snmp-5.1.2-11.el4_6.11.2 net-snmp-utils-5.1.2-11.EL4.10
Pastikan check_snmp berfungsi dari baris perintah seperti yang ditunjukkan di bawah ini.
# /usr/local/nagios/libexec/check_snmp -H 192.168.1.7 \ -P 2c -l Temperature -w :35,:40 -c :40,:45 \ -o .1.3.6.1.4.1.3076.2.1.2.22.1.29.0,.1.3.6.1.4.1.3076.2.1.2.22.1.33.0 Temperature OK - 35 38 | iso.3.6.1.4.1.3076.2.1.2.22.1.29.0=35 iso.3.6.1.4.1.3076.2.1.2.22.1.33.0=38 # /usr/local/nagios/libexec/check_snmp -H 192.168.1.7 \ -P 2c -l ActiveSessions -w :80,:40 -c :100,:50 \ -o 1.3.6.1.4.1.3076.2.1.2.17.1.7.0,1.3.6.1.4.1.3076.2.1.2.17.1.9.0 ActiveSessions CRITICAL - *110* 20 | iso.3.6.1.4.1.3076.2.1.2.17.1.7.0=110 iso.3.6.1.4.1.3076.2.1.2.17.1.9.0=20
Dalam contoh ini, parameter berikut diteruskan ke check_snmp:
- -H, –hostname=ADDRESS Nama host, Alamat IP, atau soket unix (harus berupa jalur absolut)
- -P, –protocol=[1|2c|3] Versi protokol SNMP
- -l, –label=STRING Label awalan untuk keluaran dari plugin. yaitu Temerature atau ActiveSessions
- -w, –warning=INTEGER_RANGE Rentang yang tidak akan menghasilkan status PERINGATAN
- -c, –critical=INTEGER_RANGE Rentang yang tidak akan menghasilkan status KRITIS
- -o, –oid=OID Pengidentifikasi objek atau variabel SNMP yang nilainya ingin Anda kueri. Pastikan untuk merujuk ke manual perangkat Anda untuk melihat semua oid yang didukung dan tersedia untuk peralatan Anda. Jika Anda memiliki lebih dari dua oid, pisahkan dengan koma.
Dalam contoh ActiveSessions, dua OID sedang dipantau. yaitu satu untuk tunnel VPN LAN-2-LAN (iso.3.6.1.4.1.3076.2.1.2.17.1.7.0) dan satu lagi untuk sesi PPTP (iso.3.6.1.4.1.3076.2.1.2.17.1.9.0). Pada contoh di atas, sesi aktif VPN LAN-2-LAN telah melampaui batas kritis 100.
Object Identifier (OID) disusun dalam hierarki Management Information Base (MIB) tree dengan akar dan cabang berdasarkan standar internet.
6. Validasi konfigurasi dan mulai ulang nagios
Verifikasi konfigurasi nagios untuk memastikan tidak ada peringatan dan kesalahan.
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg Total Warnings: 0 Total Errors: 0 Things look okay - No serious problems were detected during the pre-flight check
Mulai ulang server nagios untuk mulai memantau perangkat VPN.
# /etc/rc.d/init.d/nagios stop Stopping nagios: .done. # /etc/rc.d/init.d/nagios start Starting nagios: done.
Verifikasi status ActiveSessions dan Suhu perangkat VPN dari UI web Nagios (http://{nagios-server}/nagios) seperti yang ditunjukkan di bawah ini.
Gambar – UI Web Nagios menampilkan Status Perangkat VPN
7. Pemecahan masalah
Masalah: check_snmp berfungsi tanpa masalah dari baris perintah Linux, tetapi UI web Nagios menampilkan kesalahan berikut:
Status Information: SNMP problem - No data received from host CMD: /usr/bin/snmpget -t 1 -r 5 -m '' -v 1 [authpriv] 192.168.1.7:161
Solusi: Pastikan definisi check_command untuk plugin check_snmp di file switch.cfg didefinisikan dengan benar. Argumen untuk perintah check_snmp harus sesuai dengan definisi check_snmp di /usr/local/nagios/etc/commands.cfg
check_command check_snmp!Temperature!.1.3.6.1.4.1.3076.2.1.2.22.1.29.0,.1.3.6.1.4.1.3076.2.1.2.22.1.33.0!37,:40!:40,:45 [Note: This is wrong, as it is passing 4 arguments to check_snmp command The value after the exclamation is considered as one argument. !{argument1}!{argument2}] check_command check_snmp!-l Temperature -o .1.3.6.1.4.1.3076.2.1.2.22.1.29.0,.1.3.6.1.4.1.3076.2.1.2.22.1.33.0 -w 37,:40 -c :40,:45 [Note: This is correct, as it is passing 1 argument to check_snmp command The value after the exclamation is considered as one argument. !{argument1}]
Dalam definisi perintah check_snmp yang ditunjukkan di bawah, hanya ada satu argumen $ARG1$. Jadi, di switch.cfg, saat mendefinisikan check_snmp, Anda hanya perlu meneruskan satu argumen seperti yang ditunjukkan di atas.
# 'check_snmp' command definition define command{ command_name check_snmp command_line $USER1$/check_snmp -H $HOSTADDRESS$ $ARG1$ }
Bacaan yang Disarankan
Ini adalah dua buku terbaik yang mencakup Nagios 3. Saya sangat menyarankan Anda membaca kedua buku ini untuk mendapatkan pemahaman yang lebih detail tentang Nagios.