2 Automatische registratie van actieve agenten

Overzicht

Het is mogelijk om actieve Zabbix-agent autoregistratie toe te staan, waarna de server begint met het monitoren van deze agents. Op deze manier kunnen nieuwe hosts aan monitoring worden toegevoegd zonder dat ze handmatig op de server geconfigureerd moeten worden.

Autoregistratie kan plaatsvinden wanneer een voorheen onbekende actieve agent om checks vraagt.

Deze functie kan erg handig zijn voor het automatisch monitoren van nieuwe Cloud-nodes. Zodra je een nieuwe node hebt in de Cloud, 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 checks. Wanneer de actieve agent om checks vraagt en de 'ListenIP' of 'ListenPort' configuratieparameters gedefinieerd heeft in het configuratiebestand, worden deze samen met de aanvraag naar de server gestuurd. (Als meerdere IP-adressen zijn gespecificeerd, wordt het eerste IP-adres naar de server gestuurd.)

Bij het toevoegen van de nieuw 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 aan te geven dat de host automatisch moet worden geregistreerd met een DNS-naam als de standaardagentinterface.

Autoregistratie wordt opnieuw uitgevoerd:

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

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 ontvangt van een agent, roept deze een actie aan. Een actie met de gebeurtenisbron "Autoregistratie" moet worden geconfigureerd voor agent autoregistratie.

Het instellen van netwerkontdekking is niet vereist voor het laten plaatsvinden van actieve agent autoregistratie.

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

  • Op het tabblad Actie, geef je actie een naam
  • Optioneel kun je voorwaarden specificeren. Je kunt een substring-overeenkomst of reguliere expressie-overeenkomst gebruiken in de voorwaarden voor hostnaam/hostmetadata. Als je de voorwaarde "Hostmetadata" gaat gebruiken, zie dan de volgende sectie.
  • Op het tabblad Bewerkingen, voeg relevante bewerkingen toe, zoals 'Host toevoegen', 'Toevoegen aan hostgroep' (bijvoorbeeld Ontdekte hosts), 'Koppelen aan sjablonen', enz.

Als de hosts die zich 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 maken, zoals Template_Linux-active, om aan te koppelen.

Aangemaakte hosts worden toegevoegd aan de groep Ontdekte hosts (standaard configureerbaar in BeheerAlgemeenOverige). Als je wilt dat hosts aan een andere groep worden toegevoegd, voeg dan een Verwijderen uit hostgroep bewerking toe (specificeer "Ontdekte hosts") en voeg ook een Toevoegen aan hostgroep bewerking toe (specificeer een andere hostgroep), omdat een host lid moet zijn van een hostgroep.

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.

Gebruik van DNS 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 automatisch moet worden geregistreerd met een DNS-naam als de standaard agentinterface in plaats van het IP-adres. In dat geval moet de DNS-naam worden opgegeven of teruggegeven als de waarde van de HostInterface- of HostInterfaceItem-parameter. Merk 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. Om de wijzigingen echter van kracht te laten worden, moet de agent worden herstart.

Als de parameters HostInterface of HostInterfaceItem niet zijn geconfigureerd, wordt de listen_dns-parameter opgelost uit het IP-adres. Als deze resolutie niet correct is geconfigureerd, kan dit de autoregistratie verbreken vanwege een ongeldige hostnaam.

Gebruik van hostmetadata

Wanneer een agent een automatische registratieaanvraag naar de server stuurt, stuurt hij zijn hostnaam mee. In sommige gevallen (bijvoorbeeld, Amazon cloud-nodes) is een hostnaam niet voldoende voor de Zabbix-server om ontdekte hosts te differentiëren. 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 (/manual/appendix/config/zabbix_agentd) - 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.

Een automatische registratiepoging vindt telkens plaats wanneer een actieve agent een verzoek naar de server stuurt om actieve controles te vernieuwen. De vertraging tussen de verzoeken is gespecificeerd in de parameter RefreshActiveChecks (/manual/appendix/config/zabbix_agentd) van de agent. Het eerste verzoek wordt onmiddellijk na het opnieuw opstarten 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.

Frontendconfiguratie

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

  • Naam: Automatische registratie Linux-host
  • Voorwaarden: Hostmetadata bevat Linux
  • Bewerkingen: Koppelen aan sjablonen: Linux

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

De tweede actie:

  • Naam: Automatische registratie Windows-host
  • Voorwaarden: Hostmetadata bevat Windows
  • Bewerkingen: Koppelen aan sjablonen: Windows

Agentconfiguratie

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

HostMetadataItem=system.uname

Hiermee zorg je ervoor dat hostmetadata "Linux" of "Windows" zal bevatten, afhankelijk van de host waarop een agent wordt uitgevoerd. 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 in de frontend en gebruik een moeilijk te raden geheim code om ongewenste hosts te voorkomen:

  • 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
    • Koppelen aan sjablonen: Linux

Let op dat deze methode op zichzelf geen sterke bescherming biedt omdat gegevens in platte tekst worden verzonden. Het is nodig om de configuratiecache te herladen 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 hebt aangebracht in het configuratiebestand.

Stap 2

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

Frontend configuratie

Werk de actie in de frontend bij:

  • Naam: Autoregistratieactie Linux
  • Voorwaarden:
    • Type berekening: EN
    • Voorwaarde (A): Hostmetadata bevat Linux
    • Voorwaarde (B): Hostmetadata bevat 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae
  • Bewerkingen:
    • Bericht verzenden naar gebruikers: Admin via alle media
    • Toevoegen aan hostgroepen: Linux-servers
    • Koppelen aan sjablonen: Linux
    • Koppelen aan 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.