Monitorovanie DHCP servera pomocou Zabbix-u

V tomto článku vám predstavím, akým spôsobom monitorovať isc-dhcp server, pomocou monitorovacieho systému Zabbix.  Pôjde hlavne o monitorovanie veľkosti rozsahu a počtu pridelených IP. Pôvodný článok v portugalčine som objavil na blogu WERNECK COSTA.

Scenár :

  • Server Ubuntu 14.04.4 LTS
  • Zabbix Server a agent verzia 3.0.2
  • ISC-DHCP
  • Oba servery bežia na jednom stroji, preto budem používať IP 127.0.0.1

 

Sledované hodnoty:

  • Kapacita IP rozsahu (pool)
  • Počet pridelených IP z rozsahu
  • Počet IP „touch“ v každom rozsahu

 

Ako Zabbix prečíta dáta z DHCP servera

Keďže „Lease“ súbor môže byť pomerne rozsiahly, akýkoľvek „cat + grep + cut“ by preto trval dlho a spotreboval by veľa zdrojov. Preto sa autor rozhodol použiť nástroj dhcpd-pools: http://dhcpd-pools.sourceforge.net/.

 

Postup:

Nainštalujeme si závislosti:

Vytvoríme si adresár, stiahneme a rozbalíme dhcpd-pools:

Skompilujeme a nainštalujeme:

Po inštalácii môžeme vykonať skúšku pomocou nasledovného príkazu:

Výstup príkazu by mal vyzerať nejako takto:

Z výstupu môžeme vyčítať že, sieť má nakonfigurovaný rozsah 254 IP adries, z čoho 6 IP sa používa, čo je 2,362%, a 179 IP bolo už použitých. Väčšinou ale potrebujeme prideľovať IP adresy pre viaceré siete. Na to potrebujeme vykonať potrebné zmeny v etc/dhcp/dhcpd .conf. Treba pridať  do config-u shared-network nazov_subnetu { subnet …}:

Potom bude výstup vyzerať nasledovne: 

Teraz si výpis zjednodušíme, aby sme s nim mohli ďalej pracovať, pre lepšie pochopenie je možné zobraziť nápovedu (man dhcpd-pools):

Tu môžeme vidieť, že použitie parametra “ L “ obmedzuje výpis podľa vyššie uvedenej tabuľky, v závislosti na zvolenej kombinácii. Takže, ak by sme spustili príkaz vrátane “ -L22 „, vrátia sa iba dáta z “ Shared networks“ :

Výsledok:

Zachytávanie údajov pomocou Zabbixu

Pomocou rozšírenia Zabbix agenta je možné sledovať všetko, čo je možné získať zo servera príkazom alebo scriptom. Princíp je veľmi jednoduchý. V konfiguračnom súbore agenta /etc/zabbix/zabbix_agentd.conf pridáme (zmeníme) riadok:

Zmeníme na:

V tomto adresári (/etc/zabbix_agentd.conf.d/) vytvoríme súbor „userparameters_dhcpd.conf“ a skopírujeme do neho nasledujúce user parametre:

Po vytvorení súboru reštartujeme agenta:

Každý UserParameter má dva prvky: položku a príkaz. Príklad:

Položka (Item):

Príkaz (Command): 

A následne vyskúšame či Zabbix agent pracuje s našimi user parametrami: 

Ak je všetko v poriadku, výpis by mal vyzerať nasledovne:

Ďalej môžeme otestovať ostatné položky UserParameters: 

V mojom prípade sa mi vrátila hodnota:

Ďalej budeme potrebovať skript, ktorý oznámi aké subnety sú zadefinované v DHCP serveri a vráti údaje vo formáte JSON.

Vytvoríme /etc/zabbix/scripts/dhcppolls.sh

Pridáme do súboru /etc/zabbix_agentd.conf.d/userparameters_dhcpd.conf ďalší riadok (UserParameter):

A znovu reštartujeme agenta:

Funkčnosť „discovery“ skriptu si overíme nasledovným príkazom:

Výpis by mal vyzerať nasledovne:

Ak nám všetko funguje, môžeme prejsť k nastaveniu rozhrania Zabbixu. Pridáme objavovacie pravidlo cez „Configuration -> Hosts -> nas_dhcp_server -> Discovery rules -> Create discovery rule

zabbix-discovery-rules

Ďalej pridáme Item prototypes:

zabbix-item-prototypes

 

Do Items pridáme všetky položky, ktoré chceme sledovať: 

zabbix-item-prototypes2

Funkčnosť si overíme cez Monitoring -> Overview

zabbix-dhcp-overview

Prípadne môžeme z nazbieraných údajov vykresliť graf, ktorý sa automaticky vytvorí pre každý subnet: Configuration -> Hosts -> nas_dhcp_server -> Discovery -> Discovery DHCP Pools -> Graph prototypes 

zabbix-dhcp-discovery-graph

zabbix-dhcp-graph

Prípadne môžeme vytvoriť graf pre všetky subnety súčasne, v tomto prípade však treba pridať každý subnet ručne: Configuration -> Hosts -> nas_dhcp_server -> Graphs -> Create graph

zabbix-dhcp-graph-all

 

zabbix-dhcp-graph-usage

Pri reštartovaní servera mi nechcel tento monitoring nabehnúť a tak som našiel takéto, trocha primitívne riešenie.

Pridať do /etc/rc.local

 

 

Zdroj: https://neckcosta.wordpress.com/2013/11/01/monitoramento-de-pools-isc-dhcp-com-zabbix/

Komentáre