Dříve jsme diskutovali o tom, jak používat Nagios k monitorování serveru Linux a Windows. V tomto článku se podíváme na to, jak monitorovat aktivní relace a teplotu zařízení VPN pomocí Nagios. Pomocí zásuvného modulu nagios check_snmp můžete monitorovat v podstatě cokoli o hardwaru.
1. Identifikujte soubor cfg pro definování hostitele, hostitelské skupiny a služeb pro zařízení VPN
Můžete buď vytvořit nový soubor vpn.cfg, nebo znovu použít jeden ze stávajících souborů .cfg. V tomto článku jsem přidal definici služby VPN a hostitelské skupiny do existujícího souboru switch.cfg. Ujistěte se, že řádek switch.cfg v souboru nagios.cfg není okomentován, jak je uvedeno níže.
# grep switch.cfg /usr/local/nagios/etc/nagios.cfg cfg_file=/usr/local/nagios/etc/objects/switch.cfg
2. Přidejte novou hostitelskou skupinu pro zařízení VPN do souboru switch.cfg
Přidejte následující hostitelskou skupinu ciscovpn do souboru /usr/local/nagios/etc/objects/switch.cfg.
define hostgroup{ hostgroup_name ciscovpn alias Cisco VPN Concentrator }
3. Přidejte nového hostitele pro zařízení VPN do souboru switch.cfg
V tomto příkladu jsem definoval dva hostitele – jednoho pro primární a druhého pro sekundární koncentrátor Cisco VPN v souboru /usr/local/nagios/etc/objects/switch.cfg. Změňte odpovídajícím způsobem direktivu adresy na IP adresu vašeho zařízení VPN.
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. Přidejte nové služby pro sledování aktivních relací a teploty VPN na switch.cfg
Přidejte službu „Teplota“ a službu „Aktivní VPN relace“ do souboru /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. Ověřte check_snmp z příkazového řádku
Plug-in Check_snmp používá příkaz „snmpget“ z balíčku NET-SNMP. Ujistěte se, že je na vašem systému nainstalován net-snmp, jak je znázorněno níže. Pokud ne, stáhněte si jej z webu 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
Ujistěte se, že check_snmp funguje z příkazového řádku, jak je uvedeno níže.
# /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
V tomto příkladu jsou do check_snmp předány následující parametry:
- -H, –hostname=ADDRESS Název hostitele, IP adresa nebo unixový soket (musí to být absolutní cesta)
- -P, –protocol=[1|2c|3] Verze protokolu SNMP
- -l, –label=STRING Předpona štítku pro výstup z pluginu. tj. Teplota nebo ActiveSessions
- -w, –warning=INTEGER_RANGE(s) Rozsah(y), které nebudou mít za následek stav VAROVÁNÍ
- -c, –critical=INTEGER_RANGE(s) Rozsah(y), které nebudou mít za následek KRITICKÝ stav
- -o, –oid=OID Identifikátor(y) objektu nebo proměnné SNMP, jejichž hodnotu chcete dotazovat. Ujistěte se, že se v příručce k vašemu zařízení zobrazíte všechny podporované a dostupné oidy pro vaše zařízení. Pokud máte více než dva oidy, oddělte je čárkou.
V příkladu ActiveSessions jsou monitorována dvě OID. tj. jeden pro tunely VPN LAN-2-LAN (iso.3.6.1.4.1.3076.2.1.2.17.1.7.0) a druhý pro relace PPTP (iso.3.6.1.4.1.3076.2.1.2.17.1.9.0). Ve výše uvedeném příkladu aktivní relace VPN LAN-2-LAN překročily kritický limit 100.
Identifikátor objektu (OID) je uspořádán v hierarchickém stromu Management Information Base (MIB) s kořeny a větvemi založenými na internetovém standardu.
6. Ověřte konfiguraci a restartujte nagios
Ověřte konfiguraci nagios, abyste se ujistili, že nejsou žádná varování a chyby.
# /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
Restartujte server nagios a začněte monitorovat zařízení VPN.
# /etc/rc.d/init.d/nagios stop Stopping nagios: .done. # /etc/rc.d/init.d/nagios start Starting nagios: done.
Ověřte stav ActiveSessions a Temperature zařízení VPN z webového uživatelského rozhraní Nagios (http://{nagios-server}/nagios), jak je uvedeno níže.
Obr. – Webové uživatelské rozhraní Nagios zobrazující stav zařízení VPN
7. Odstraňování problémů
Problém: check_snmp funguje bez problémů z příkazového řádku Linuxu, ale webové uživatelské rozhraní Nagios zobrazuje následující chybu:
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
Řešení: Ujistěte se, že definice check_command pro plugin check_snmp v souboru switch.cfg je správně definována. Argumenty příkazu check_snmp by měly odpovídat definici check_snmp v /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}]
V níže uvedené definici příkazu check_snmp je pouze jeden argument $ARG1$. Takže v souboru switch.cfg při definování check_snmp musíte předat pouze jeden argument, jak je uvedeno výše.
# 'check_snmp' command definition define command{ command_name check_snmp command_line $USER1$/check_snmp -H $HOSTADDRESS$ $ARG1$ }
Doporučená četba
Toto jsou dvě nejlepší knihy, které pokrývají nejnovější Nagios 3. Důrazně doporučuji, abyste si přečetli obě tyto knihy, abyste získali podrobné znalosti o Nagios.