Portál AbcLinuxu, 2. května 2025 11:57
Kolega už delší čas monitoruje switche i jiná zařízení přes Observium, které si z nich vytahuje data přes SNMP. Ty následně analyzuje a zpracovává do nejrůznějších tabulek a grafů. Mně se obzvláště zalíbilo, že Observium umí zpracovat také informace o síťových portech. Napadlo mě, že by nebylo špatné takto monitorovat i linuxové stroje. Trochu jsem zapídil po netu a po rozběhání mne výsledek nadchnul natolik, že jsem se rozhodl o něj s vámi podělit prostřednictvím tohoto blogpostu.
Agent (server), který je dotazován přes SNMP protokol je pasivní. Tzn. že nedělá nic, dokud mu nepřijde SNMP dotaz - teprve na jeho základě zjistí odpovídající informace a odešle zpět.
Součástí dotazu je tzv. OID (Object Identifier) - řetězec čísel oddělených tečkami, který představuje dotazovanou větev informačního stromu. Čím víc je OID specifikovaný (a delší), tím menší objem informací SNMP démon vrací.
U debianu jsou v konfiguračním souboru /etc/snmp/snmpd.conf
ve výchozím stavu nakonfigurovány tyto OID řetězce:
view systemonly included .1.3.6.1.2.1.1 view systemonly included .1.3.6.1.2.1.25.1
Tyto (a další) OID řetězce jsou definovány prostřednictvím MIB souborů. Pokud stroj dotazovaný přes SNMP nemá příslušný MIB (Management information base) k dispozici, nezná ani informace pro příslušné OID.
Problém u SNMP je, že pokud je OID příliš obecný, nemusí agent vracet všechna data najednou. Monitorování přes SNMP se nehodí pro sledování stroje v reálném čase, protože agent vyžaduje na zpracování dotazu určitý čas. Také je nutné aby se klient v pravidelných intervalech sám aktivně dotazoval serveru, a tato komunikace mohla v minulosti - v případě většího počtu strojů - generovat provoz, který je ovšem z dnešního hlediska víceméně zanedbatelný.
SNMP protokol v současné době existuje ve třech verzích:
K tomu, aby bylo možné přes Observium monitorovat linuxový stroj, stačí doinstalovat a nakonfigurovat snmpd démona. U distribucí co používají APT stačí:
apt-get install snmpd
Ve výchozím stavu naslouchá SNMP démon pouze na localhostu, pro monitorování přes Observium je třeba změnit konfiguraci tak, aby naslouchal dotazům zvenčí a doplnit základní údaje (sysLocation, sysContact, sysDescr)
Cílem tohoto blogpostu ale není podrobně rozebírat konfiguraci SNMP, ale upozornit na LLDP (Link Layer Discovery Protocol), otevřenou verzi protokolu, jehož prostřednictvím si mezi sebou mohou po síti vyměňovat sousedící zařízení informace o názvu síťového zařízení, verzi jeho softwaru, nastavení IP, VLAN apod.
Pro linux totiž existuje softwarová implementace LLDP (Link Layer Discovery Protocol) - démon lldpd - který umí spolupracovat se SNMP démonem. Instalace je jednoduchá a nevyžaduje mnoho závislostí.:
apt-get install lldpd
Aby spolupracoval se snmp, musí být démon lldpd spuštěn s příslušnými parametry - k tomu stačí odkomentovat nastavení proměnné DAEMON_ARGS v souboru /etc/default/lldpd
. A konfiguraci SNMP démona rozšířit o následující OID řetězce:
view systemonly included .1.0.8802 view systemonly included .1
Pak, po restartu, začne SNMP vracet informace, které umí Observium zpracovat a vizualizovat. Ilustrační obrázky, jak taková vizualizace vypadá jsou v příloze.
na to, že pokud doinstalujete a spustíte také démona lldpd, bude Observium umět také vizualizovat síťové vazby mezi monitorovaným strojem a switchem (resp. dalším strojem)
Pro zařazení a popis stroje využívá Observium údaje, které mu vrací SNMP. Na straně monitorovacího stroje se nic dalšího neřeší
Spouštění virtuálních strojů zajišťuje Pacemaker, který je umí také zaživa migrovat. Řešil jsem tudíž otázku, jak zjistit kde virtuální stroj ve skutečnosti běží. Kontektivitu si však vždy bere přes openvswitch hostitele. A tak díky tomu, že Observium umí vizualizovat záznamy z LLDP, lze prakticky ihned zjistit přes jaký stroj virtuál komunikuje - tj. který stroj je aktuálním hostitelem.
V přehledu strojů lze také vizuálně snadno identifikovat, který stroj je fyzický a který virtuální. Viz obrázek v příloze, stroj charlie-brown je fyzický a drupal virtuální.
Ve výpisu síťových portů je vidět kromě jejich MAC adresy také uveden konkrétní port na switchi do kterého je zařízení připojeno. A to platí i pro virtuální porty. Ilustrační obrázek demonstruje jak to vypadá, když se o konektivitu na fyzickém stroji stará openvswitch.
Poslední, největší obrázek, pak demonstruje jak vypadá vizualizace portů a jejich zapojení.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.