2 Automatische registratie van actieve agenten

Overzicht

Het is mogelijk om actieve Zabbix-agent-autoregistratie toe te staan, waarna de server ze kan gaan monitoren. Op deze manier kunnen nieuwe hosts worden toegevoegd voor monitoring zonder ze handmatig op de server te configureren.

Autoregistratie kan plaatsvinden wanneer een voorheen onbekende actieve agent vraagt om controles uit te voeren.

Deze functie kan erg handig zijn voor het automatisch monitoren van nieuwe cloud-nodes. Zodra je een nieuwe node in de cloud hebt, zal Zabbix automatisch starten met het verzamelen van prestatie- en beschikbaarheidsgegevens van de host.

Actieve agent-autoregistratie ondersteunt ook het monitoren van toegevoegde hosts met passieve controles. Wanneer de actieve agent vraagt om controles uit te voeren en de 'ListenIP' of 'ListenPort' configuratieparameters zijn gedefinieerd in het configuratiebestand, worden deze samen met de aanvraag naar de server gestuurd. (Als meerdere IP-adressen zijn gespecificeerd, wordt het eerste adres naar de server gestuurd.)

Bij het toevoegen van de nieuwe automatisch geregistreerde host gebruikt de server het ontvangen IP-adres en poort om de agent te configureren. Als er geen IP-adreswaarde wordt ontvangen, wordt het IP-adres van de inkomende verbinding gebruikt. Als er geen poortwaarde wordt ontvangen, wordt 10050 gebruikt.

Het is mogelijk om te specificeren dat de host automatisch moet worden geregistreerd met een DNS-naam als de standaardagentinterface.

Autoregistratie wordt opnieuw uitgevoerd:

  • als de metadata-informatie van de host verandert:
    • als HostMetadata is gewijzigd en de agent is herstart
    • als de waarde die wordt geretourneerd door HostMetadataItem is gewijzigd
  • voor handmatig aangemaakte hosts zonder metadata
  • als een host handmatig wordt gewijzigd om door een andere Zabbix-proxy te worden gemonitord
  • als autoregistratie voor dezelfde host afkomstig is van een nieuwe Zabbix-proxy

Het actieve agent-autoregistratieheartbeat voor Zabbix-server en Zabbix-proxy is 120 seconden. Dus als een ontdekte host wordt verwijderd, wordt de autoregistratie na 120 seconden opnieuw uitgevoerd.

Configuratie

Specificeer server

Zorg ervoor dat de Zabbix-server geïdentificeerd is in het agent configuratiebestand - zabbix_agentd.conf

ServerActive=10.0.0.1

Tenzij je specifiek een Hostname definieert in zabbix_agentd.conf, zal de systeemhostnaam van de locatie van de agent door de server worden gebruikt om de hostnaam te bepalen. De systeemhostnaam in Linux kan worden verkregen door het 'hostname' commando uit te voeren.

Als Hostname gedefinieerd is in de Zabbix-agentconfiguratie als een door komma's gescheiden lijst van hosts, zullen er hosts worden aangemaakt voor alle vermelde hostnamen.

Herstart de agent na het maken van wijzigingen in het configuratiebestand.

Actie voor actieve agent-autoregistratie

Wanneer de server een autoregistratieverzoek van een agent ontvangt, wordt er een actie aangeroepen. Een actie met de gebeurtenisbron "Autoregistratie" moet worden geconfigureerd voor agent-autoregistratie.

Het instellen van netwerkontdekking is niet nodig om actieve agenten te laten registreren.

In de Zabbix-frontend, ga naar Meldingen → Acties, selecteer Autoregistratie als gebeurtenisbron en klik op Actie maken:

  • In het tabblad Actie, geef je actie een naam
  • Specificeer indien nodig voorwaarden. Je kunt een substring-match of reguliere expressie-match gebruiken in de voorwaarden voor hostnaam/hostmetadata. Als je de voorwaarde "Hostmetadata" gaat gebruiken, zie het volgende gedeelte.
  • In het tabblad Bewerkingen, voeg relevante bewerkingen toe, zoals - 'Host toevoegen', 'Aan hostgroep toevoegen' (bijvoorbeeld Ontdekte hosts), 'Koppelen aan sjablonen', enz.

Als de hosts die zichzelf zullen registreren waarschijnlijk alleen worden ondersteund voor actieve monitoring (zoals hosts die zijn afgeschermd van je Zabbix-server), dan wil je mogelijk een specifieke sjabloon zoals Template_Linux-active maken om aan te koppelen.

Aangemaakte hosts worden toegevoegd aan de groep Ontdekte hosts (standaard configureerbaar in BeheerAlgemeenOverig). Als je wilt dat hosts aan een andere groep worden toegevoegd, voeg dan een Verwijderen uit hostgroep-bewerking toe (waarbij "Ontdekte hosts" wordt gespecificeerd) en voeg ook een Toevoegen aan hostgroep-bewerking toe (waarbij een andere hostgroep wordt gespecificeerd), omdat een host bij een hostgroep moet horen.

Veilige autoregistratie

Een veilige manier van autoregistratie is mogelijk door PSK-gebaseerde authenticatie te configureren met versleutelde verbindingen.

Het niveau van versleuteling wordt globaal geconfigureerd in BeheerAlgemeenAutoregistratie. Het is mogelijk om geen versleuteling te selecteren, TLS-versleuteling met PSK-authenticatie of beide (zodat sommige hosts kunnen registreren zonder versleuteling terwijl anderen dit doen via versleuteling).

Authenticatie via PSK wordt door de Zabbix-server geverifieerd voordat een host wordt toegevoegd. Bij succes wordt de host toegevoegd en worden Verbindingen van/naar host alleen ingesteld op 'PSK', met dezelfde identiteit/pre-shared key als in de wereldwijde autoregistratie-instelling.

Om de veiligheid van autoregistratie te waarborgen op installaties die proxies gebruiken, moet versleuteling tussen de Zabbix-server en proxy ingeschakeld zijn.

DNS gebruiken als standaardinterface

De configuratieparameters HostInterface en HostInterfaceItem (/manual/appendix/config/zabbix_agentd) stellen je in staat om een aangepaste waarde op te geven voor de hostinterface tijdens autoregistratie.

Meer specifiek zijn ze nuttig als de host moet worden geregistreerd met een DNS-naam als de standaardinterface van de agent in plaats van het IP-adres. In dat geval moet de DNS-naam worden gespecificeerd of geretourneerd als de waarde van de HostInterface- of HostInterfaceItem-parameters. Let op dat als de waarde van een van de twee parameters verandert, de automatisch geregistreerde hostinterface wordt bijgewerkt. Het is dus mogelijk om de standaardinterface bij te werken naar een andere DNS-naam of bij te werken naar een IP-adres. Voor de wijzigingen van kracht worden, moet de agent echter worden herstart.

Als de parameters HostInterface of HostInterfaceItem niet zijn geconfigureerd, wordt de listen_dns-parameter opgelost vanuit het IP-adres. Als een dergelijke oplossing onjuist is geconfigureerd, kan dit de autoregistratie verbreken vanwege een ongeldige hostnaam.

Gebruik van host-metadata

Wanneer de agent een autoregistratieverzoek naar de server stuurt, stuurt deze zijn hostnaam mee. In sommige gevallen (bijvoorbeeld Amazon-cloudnodes) is een hostnaam niet voldoende voor de Zabbix-server om ontdekte hosts te onderscheiden. Hostmetadata kan optioneel worden gebruikt om andere informatie van een agent naar de server te sturen.

Hostmetadata wordt geconfigureerd in het configuratiebestand van de agent (zabbix_agentd.conf). Er zijn 2 manieren om hostmetadata in het configuratiebestand op te geven:

HostMetadata
       HostMetadataItem

Zie de beschrijving van de opties in de bovenstaande link.

De parameter HostMetadataItem kan tot 65535 UTF-8-codepunten retourneren. Een langere waarde wordt afgekapt.

Merk op dat op MySQL de effectieve maximale lengte in tekens kleiner zal zijn als de geretourneerde waarde multibyte-tekens bevat. Bijvoorbeeld, een waarde die alleen 3-byte tekens bevat, zal beperkt zijn tot in totaal 21844 tekens, terwijl een waarde die alleen 4-byte tekens bevat, beperkt zal zijn tot 16383 tekens.

Een autoregistratiepoging vindt telkens plaats wanneer een actieve agent een verzoek stuurt om actieve controles bij te werken naar de server. De vertraging tussen verzoeken wordt gespecificeerd in de parameter RefreshActiveChecks van de agent. Het eerste verzoek wordt direct na het herstarten van de agent verzonden.

Voorbeeld 1

Gebruik van hostmetadata om onderscheid te maken tussen Linux- en Windows-hosts.

Stel dat je wilt dat de hosts automatisch worden geregistreerd door de Zabbix-server. Je hebt actieve Zabbix-agenten (zie de sectie "Configuratie" hierboven) in je netwerk. Op je netwerk zijn er Windows- en Linux-hosts en je hebt de sjablonen "Linux via Zabbix-agent" en "Windows via Zabbix-agent" beschikbaar in je Zabbix-frontend. Bij de registratie van de host wil je het juiste Linux/Windows-sjabloon toepassen op de geregistreerde host. Standaard wordt alleen de hostnaam bij automatische registratie naar de server gestuurd, wat mogelijk niet voldoende is. Om ervoor te zorgen dat het juiste sjabloon op de host wordt toegepast, moet je hostmetadata gebruiken.

Configuratie van de frontend

Het eerste wat je moet doen, is de frontend configureren. Maak 2 acties aan. De eerste actie:

  • Naam: Linux host autoregistratie
  • Voorwaarden: Hostmetadata bevat Linux
  • Bewerkingen: Templates koppelen: Linux

In dit geval kun je de "Host toevoegen" bewerking overslaan. Het koppelen van een sjabloon aan een host vereist dat de host eerst wordt toegevoegd, dus de server zal dit automatisch doen.

De tweede actie:

  • Naam: Windows host autoregistratie
  • Voorwaarden: Hostmetadata bevat Windows
  • Bewerkingen: Templates koppelen: Windows

Agentconfiguratie

Nu moet je de agents configureren. Voeg de volgende regel toe aan de configuratiebestanden van de agent:

HostMetadataItem=system.uname

Op deze manier zorg je ervoor dat de hostmetadata "Linux" of "Windows" zal bevatten, afhankelijk van de host waarop een agent draait. Een voorbeeld van hostmetadata in dit geval:

Linux: Linux server3 3.2.0-4-686-pae #1 SMP Debian 3.2.41-2 i686 GNU/Linux
       Windows: Windows WIN-0PXGGSTYNHO 6.0.6001 Windows Server 2008 Service Pack 1 Intel IA-32

Vergeet niet om de agent opnieuw te starten nadat je wijzigingen hebt aangebracht in het configuratiebestand.

Stap 1

Gebruik van host-metadata om enige basisbescherming te bieden tegen ongewenste hosts die zich registreren.

Frontend configuratie

Maak een actie aan in het frontend, waarbij je een moeilijk te raden geheime code gebruikt om ongewenste hosts te weigeren:

  • Naam: Autoregistratie actie Linux
  • Voorwaarden:
    • Berekeningstype: EN
    • Voorwaarde (A): Hostmetadata bevat //Linux//
    • Voorwaarde (B): Hostmetadata bevat //21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae//
  • Operaties:
    • Bericht verzenden naar gebruikers: Beheerder via alle media
    • Toevoegen aan hostgroepen: Linux servers
    • Koppelen aan sjablonen: Linux

Houd er rekening mee dat deze methode op zichzelf geen sterke bescherming biedt omdat de gegevens in platte tekst worden verzonden. Het is nodig om de configuratiecache opnieuw te laden zodat wijzigingen direct effect hebben.

Agent configuratie

Voeg de volgende regel toe aan het configuratiebestand van de agent:

HostMetadata=Linux    21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae

waarbij "Linux" een platform is, en de rest van de string de moeilijk te raden geheime tekst is.

Vergeet niet om de agent opnieuw op te starten nadat je wijzigingen in het configuratiebestand hebt aangebracht.

Stap 2

Het is mogelijk om aanvullende monitoring toe te voegen voor een al geregistreerde host.

Frontendconfiguratie

Bijwerk de actie in de frontend:

  • Naam: Autoregistratie actie Linux
  • Voorwaarden:
    • Type berekening: EN
    • Voorwaarde (A): Hostmetadata bevat Linux
    • Voorwaarde (B): Hostmetadata bevat 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae
  • Acties:
    • Bericht sturen naar gebruikers: Beheerder via alle media
    • Toevoegen aan hostgroepen: Linux servers
    • Koppel sjablonen: Linux
    • Koppel sjablonen: MySQL via Zabbix Agent

Agentconfiguratie

Werk de volgende regel in het configuratiebestand van de agent bij:

HostMetadata=MySQL op Linux 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae

Vergeet niet om de agent opnieuw op te starten nadat u wijzigingen hebt aangebracht in het configuratiebestand.