Aktionen

Zabbix Agent für Windows per Skript automatisch installieren Musterdatei

Aus znilwiki

Version vom 12. Oktober 2017, 15:37 Uhr von BLinz (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „<big>Download: '''InstallZabbixAgent.zip'''</big><br> {{Hinweis| 1: Die Templates für alle Erweiterungen über <code>UserPara…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Download: InstallZabbixAgent.zip

Important.png
Hinweis: 1: Die Templates für alle Erweiterungen über UserParameter liegen mit im Verzeichnis der Erweiterungen!
Important.png
Hinweis: 2: Das Skript entspricht der Version die ich auch bei Kunden einsetze - minus vieler Erweiterungen des Agenten per UserParameter die nicht von mir stammen

Dieses Installationsskript habe ich geschrieben um (meine) Anforderungen an die Installation zu erfüllen. Das Skript ist auch für Softwareverteilungssysteme geeignet. Ich brauchte etwas "flexibles" und z.B. den vollen DNS-Namen als Hostnamen.


Changelog

  • 06.11.2013: Erste Version
  • 14.11.2013: Erweiterte Version
    • Userparamter für automatische Windows Dienste Erkennung
    • Userparameter für verfügbare Windows Updates Erkennung
    • Öffnen der Firewall-Ports für den Agenten auf Host ab Windows Vista / Server 2008
    • Windows Agenten für 2.2.0 bereits im Zip mit drin
  • 15.11.2013: Erweiterte Version
    • Script prüft nun ob es die benötigten Rechte hat und fordert diese ggf. an (UAC-Kontrolle)
    • Script prüft Rechte am Anfang und startet sich ggf. mit Anforderung der Rechte selbst einmal neu
  • 17.11.2013: Erweiterte Version
    • 'znilTail.exe' wurde mit im tools aufgenommen - siehe: Zabbix Agent Tail Programm für Log-Dateien
    • Es wird zusätzlich eine 'znilTail-with-zabbix_agentd.log.cmd' erstellt welche die 'znilTail.exe'gleich mit der Log-Datei des Zabbix Agents startet
  • 17.03.2014:
    • Aktuelle Version von servdisc.exe Version 3.0.0.1 wurde eingepflegt
    • Dateien des Agenten nun Version 2.4.2
  • 24.03.2014:
    • Neue servdisc.exe Version 3.0.0.2 eingepflegt (Fehler mit servdisc-ignore.txt behoben)
  • 09.04.2014:
    • Geändertes Skript: Konfiguration ist nun vom eigentlichen Installationsskript getrennt. So kann man in Zukunft einfach eine neuere Version über die alte kopieren
    • Dateien und Konfiguration für Zabbix Agent Auto Updater wurde mit aufgenommen
    • Erweiterung für BackupExec 2010 wurde aufgenommen (wenn nicht genutzt wird diese auch nicht aufgerufen): Zabbix:Template BackupExec 2010 Jobs
    • Erweiterung für die automatische Aktualisierung des Zabbix-Agent wurde aufgenommen (ist per Default deaktiviert): Zabbix Agent Auto Updater
    • Erweiterung für Windows Updates Erkennung in aktueller Version: Zabbix:Template Windows Updates
    • Erweiertung die den Lizenzstatus von Windows und die Aktivierung abfragt wurde aufgenommen: Zabbix:Template Windows Lizenzstatus
    • Aktuelle znilTail.exe die immer mit Administratorenrechten läuft, ggf. wird über UAC angefragt (nötig um das Log-Level zu ändern)
    • Firewall-Ports werden nun auch auf Systemen ab Windows XP SP2 / Server 2003 geöffnet (Wenn es den Dienst Windows Firewall gibt)
  • 17.04.2014:
    • Agenten-Dateien in der Version 2.4.3
    • Aktuelle Version von znilTail.exe - Zusätzlicher Button für Agenten-Neustart + Bugfixes. Zusätzlich mit neuerer Compiler-Version erstellt da es einen Fehlalarm durch ein Virenschutzprogramm gab.
    • Fehler im Skript behoben - falls man nur den Computernamen ohne Suffix haben wollte wurde komische Zeichen an den Computernamen angehängt
    • Include Verzeichnis mit Musterdatei. Auf Vorschlag von Marco H. hat man nun die Möglichkeit eigene Dateien mit UserParametern anzulegen. Diese werden im Include Verzeichnis in der Datei zabbix_agentd.win.include.txt aufgeführt. Kopiert man eine neue Version dieses Scripts einfach über das alte wird die Datei nicht überschrieben (wie die config.bat')
    • Neuer Parameter ZABBIXCLEANUP' in der Config.bat: ist dieser auf YES wird das Zabbix-Verzeichnis zuvor geleert, also alle Dateien gelöscht, bevor die neuen Dateien hinein kopiert werden (wieder ein Vorschlag von Marco H.)
    • Die Restart-Zabbix-Agent.cmd wurde umbenannt in zz_Restart-Zabbix-Agent.cmd damit diese immer am Ende steht
  • 13.04.2015:
    • Dateien des Agenten nun Version 2.4.4
    • Alte Firewall-Regeln werden zunächst gelöscht und dann die neuen angelegt - je nach System wurde die Regeln sonst bei jedem Setup ein weiteres mal angelegt (Windows überschreibt an dieser Stelle nicht)
    • Auf Wunsch werden verschiedene Metadaten gesetzt nach dem ein Test durchgeführt wurde. Dadurch können passende Templates zugeordnet werden im Moment gibt es Tests auf
      • Citrix XenApp 6 oder XenApp 7 / Microsoft SQL Server / Microsoft Exchange Server / Active Directory Domänen-Controller
    • Enthält aktuelle Versionen der BackupExec Überwachung / Windows-Dienste-Erkennung / Windows Mountpoints Erkennung / Windows Eventlog-Überwachung / Windows Updates-Überwachung
  • 23.04.2015:
    • Dateien des Agenten nun Version 2.4.5
    • Alle öffentlichen Erweiterungen abgeglichen - siehe nachfolgende Versionsübersicht




Versionen im Paket

Stand 23.04.2014:






Features

  • Wählt automatisch die 32 oder 64 Bit Version des Agenten
  • Installiert in den Programme / Program Files Ordner, je nach Sprache und Version
  • Erstellt dort einen Unterordner Zabbix
  • Trägt den Hostnamen in die Config-Datei ein, entweder
    • Rechnername
    • Rechnername.domain.suffix
  • Ab Zabbix 2.2: Belegt die Variable HostMetadateItem für die Auto-Registrierung
  • Führt - auf Wunsch - Tests aus ob es ein Citrix / SQL / Exchange oder AD-Controller ist und nimmt entsprechend andere Metadaten
  • Trägt den gewünschten Zabbix-Server ein für "Active" als auch "Passiv" Konfiguration - beides funktioniert gleichzeitig!
  • Kann den Agenten auch Updaten auf neue Version - einfach die Dateien im \bin durch die aktuelle Version ersetzen und noch einmal starten
  • Öffnet auf Systemen ab Windows XP / Server 2003 bis Server 2012 R2 automatisch die benötigten Firewall-Ports
  • Umfangreiche Agenterweiterungen:




Vorbereitung

  • Erstellt ein Verzeichnis an zentraler Stelle für die Installationsdateien
  • Wollt Ihr die Funktionen für das automatische Updaten der Agenten nutzen empfehle ich eine Freigabe ohne Kennwortschutz
  • Ich lege die Freigabe immer auf dem Zabbix-Server oder Proxy selbst an: Anleitung siehe hier: Windows Freigabe für Agenten-Dateien einrichten
  • Die Agenten für Version 2.4.4 sind bereits in der .zip enthalten, alternativ
    • Downloaded die aktuellen "Pre-compiled Zabbix x.x.x (stable) agents" für Windows: http://www.zabbix.com/download.php
    • Entpackt das Archiv und kopiert das bin Verzeichnis in das Installationsverzeichnis
    • Alternativ: In den Quellarchiv von Zabbix (z.B. zabbix-2.2.2.tar.gz) sind die Dateien nach dem entpacken auch im Verzeichnis ./bin zu finden
  • Ladet mein Skript herunter: InstallZabbixAgent.zip und entpackt das Archiv
  • Kopiert das Skript ebenfalls in das Installationsverzeichnis
  • Ändert den Namen der Datei Muster-config.bat um in config.bat
  • Wenn Ihr eigene UserParameter zusätzlich nutzen wollt so
    • bennent die Datei Sample-zabbix_agentd.win.include.txt in zabbix_agentd.win.include.txt um
    • Bearbeitet diese Datei und tragt eure weiteren UserParameter gemäß den Beispielen dort ein
    • Falls eure UserParameter weitere Programme oder Skripte brauchen kopiert diese einfach mit in das UserParamter Verzeichnis zu den anderen Programmen


Important.png
Hinweis: Die Agenten für Version 2.4.4 sind bereits im Paket enthalten, ersetzt diese bei Bedarf




Konfiguration

  • Bearbeitet die config.bat mit einem Texteditor und passt mindestens die folgende Zeile am Anfang der Datei an:
REM *** Configure the Agent **************************************************
REM DNS-Name or IP of the Zabbix-Server or Zabbix Proxy
Set ZABBIXSERVER=192.168.178.20
REM Port of Zabbix Server, Default = 10051
Set ZABBIXSERVERPORT=10051

Die IP-Adresse ersetzt Ihr durch die IP oder den DNS-Namen eures Zabbix-Servers oder Zabbix-Proxys
Den Port könnt ihr im Normalfall so lassen (außer ihr habe an eurem Server etwas anderes eingestellt)

  • Die restlichen Parameter nach Bedarf - so nimmt er den Rechnamen als Hostnamen - das bedeutet auf der Zabbix-Server Seite muss der Host ebenfalls mit diesem Namen angelegt werden.
    • Hostname wird - wenn nicht geändert:
    • SERVER.domain.suffix
    • Er nimmt dabei die Domäne des Computers auf dem das Installationsskript ausführt wird. Kann diese nicht ermitteltet werden nimmt er den Wert aus FALLBACKDOMAIN
    • Alternativ ändert die Zeilen im Skript
REM Hostname to use
REM Computername ==> MYSERVER ************************************************
Set ZABBIXHOSTNAME=%COMPUTERNAME%
REM Set next Entry to YES or NO. YES = add Computerdomain like .domain.local to Hostname
Set USEDOMAINSUFFIX=YES
REM If the Computer is in no domain, or the domain can not be determined, use the following suffix
Set FALLBACKDOMAIN=znil.local


Falls Ihr die automatische Registrierung der Host nutzt (Verfügbar seit Zabbix 2.2.0, siehe Zabbix Host mit Agent automatisch auf Server registrieren/einrichten lassen) könnt Ihr in diesen Zeilen die Metadaten angeben:

REM HostMetadata for Autodiscovery *******************************************
REM Set a REM in front of the line if you did not use
REM Only use at Version 2.2 or higher, not for 2.0.x
Set ZABBIXHOSTMETADATA=unbekannt

Ersetzt unbekannt entsprechend - Achtet aber peinlich genau auf Groß- und Kleinschreibung etc.

REM ## Try some alternativ Tests for different Metadata **********************
REM Set METADATATEST to YES if you want the following additional Tests
Set METADATATEST=NO
REM Alternativ Metadata if if this Server is a Citrix Terminalserver with XenApp 6.x or 7.x
Set ZABBIXHOSTMETADATACITRIX=CitrixServer
REM Alternativ Metadata if this Server is an Active Directory Domain Controller
Set ZABBIXHOSTMETADATADC=DomainController
REM Alternativ Metadata if this Server is an Exchange Mail Server
Set ZABBIXHOSTMETADATAEXCHANGE=ExchangeServer
REM Alternativ Metadata if this Server is an Microsoft SQL Server
Set ZABBIXHOSTMETADATAMSSQL=MSSQLServer

Wenn Ihr METADATATEST auf YES setzt wird er weitere Tests durchführen und bei Bedarf andere Daten für das Autodiscovery setzen.
Ihr müsst dann natürlich auch für jede Metadaten eine eigene Action definieren bzw. diese in einer Action aufnehmen.

REM Name of Config-File - Default zabbix_agentd.win.conf
Set ZABBIXHOSTCONFIGFILE=zabbix_agentd.win.conf

Hier könnt Ihr den Namen der Konfigurationsdatei angeben - wenn Ihr keinen guten Grund habt lasst diesen auf den voreingestellten Wert


Mit dem nächsten Eintrag wird alles im Zielverzeichnis gelöscht bevor die neuen Dateien kopiert werden:

REM CleanUp Directory before Installing - delete ALL Files in the Installation
REM Directory before installing new Version
Set ZABBIXCLEANUP=YES

Falls Ihr das nicht wollt setzt den Eintrag auf "NO"

REM Unregister "Zabbix Agent" Service - set to "NO" if you use some Hosts where Zabbix Agent is running
REM as an Windows User instead of SYSTEM (Changed some Host manually)
Set ZABBIXUNREGISTERSERVICE=YES

Wenn Ihr diesen Parameter auf NO setzt so wird bei einer Installation der vorhandene "Zabbix Agent" Dienst NICHT gelöscht. Dieser Parameter ist für den Fall das Ihr auf einigen wenigen Servern den Zabbix Agenten unter einem Windows-Benutzerkonto laufen lasst statt dem SYSTEM-Konto. Eingebaut wurde diese Parameter für meinen faulen Kollegen der seine Zabbix-Userparameter nicht anders ausführen könnte (keine Berechtigung da SYSTEM-Benutzer). Ihr braucht den Parameter regelmäßig NICHT und lasst diesen also auf YES
Die Zeilen am Ende sind für den Agent Auto Updater (Zabbix Agent Auto Updater) der Regelmäßig nachschaut ob es etwas zu tun gibt.
Ein- oder Ausschalten:

REM Use ZabbixAutoUpdater? YES or NO
Set ZABBIXAGENTUPDATER=NO

Der Updater muss natürlich wissen wo die Dateien liegen. Gebt hier die Freigabe, ggf. mit Unterorder an in welcher die Installationsdateien liegen (Verzeichnis in der sich die InstallZabbixAgent.bat befindet):

REM Set Path to the Agent-Files in Network and to the Installation-Script or Program
Set UPDATEFILESHARE=\\zabbixproxy\zabbix-agent

Wenn er Änderungen findet wird er das nachfolgende Programm oder Installationsscript starten und dan sich selbst beenden (damit er selbst auch aktualisiert werden kann):

Set UPDATEINSTALLER=\\zabbixproxy\zabbix-agent\InstallZabbixAgent.bat


Der Updater installiert sich als geplanten Task und schaut regelmäßig in der Freigabe nach ob sich etwas geändert hat, in der nachfolgenden Zeile kann man einstellen wie oft er dies tun soll. Die erste Prüfung wird "Installionszeitpunkt + UPDATEFREQUENCY" sein, danach regelmäßig alle x Minuten Ich nehme hier immer krumme werte damit es sich immer wieder Zeitlich verschiebt.

REM Update Frequency in Minutes
Set UPDATEFREQUENCY=69


Der geplante Task läuft als ein bestimmter Nutzer. Dieser muss auf dem lokalen System über Administratorenrechte verfügen. Er muss aber auch auf die Freigabe zugreifen können um diese auf Änderungen zu prüfen und um das Installationsscript starten zu können.
ICH nehme dazu immer den SYSTEM Benutzer - der ist lokal auf dem System Gott und wird nicht durch eine UAC-Kontrolle behindert, insbesondere unter Server 2012. Jedoch funktioniert das dann nur wenn wir eine Freigabe haben auf die anonym zugegriffen werden kann.
Ein Anleitung für eine solche Freigabe direkt auf dem Zabbix-Server oder dem Zabbix-Proxy findet Ihr hier: Windows Freigabe für Agenten einrichten

REM Set Username and Password for Update-Task. Use DOMAIN\Username or Username@domain.local
REM Thsi will not work with Password with an %. Use if possible a long Passwort with chars and Numbers
REM Or you can run the job as SYSTEM. SYSTEM need no Password. But SYSTEM need anonymous access to the Network-Share
Set UPDATEUSER=SYSTEM
Set UPDATEPASSWORD=
REM Set UPDATEUSER=DOMAIN\Administrator
REM Set UPDATEPASSWORD=passw0rd




Installation!

Loggt euch auf den gewünschten Rechner ein, navigiert zum Installationsverzeichnis und startet das Setup per Doppelklick auf die

InstallZabbixAgent.bat

Ihr müsst über Administratorberechtigungen verfügen, in der aktuellen Version fordert er diese ggf. über die UAC Kontrolle auch an.
Das war es dann. Falls Ihr mit HostMetadata arbeitet und eine entsprechende Action eingerichtet habt (Anleitung siehe hier) füllt sich euer Zabbix-Server fast von ganz allein.



Update!???

Eure Konfiguration sollte sich ja in der Datei Config.bat befinden - im .zip hat die Datei extra einen anderen Namen.
Gleiches gilt für ggf. eigene Includes im gleichnamigen Unterverzeichnis.
Habt das alles so gemacht wie hier beschrieben - dann

  • ladet die aktuelle Version hier herunter: InstallZabbixAgent.zip
  • entpackt das Archiv
  • Kopiert alle Dateien mit allen Unterverzeichnissen einfach über euer bisheriges Installationsverzeichnis

Wenn Ihr meinen Agent Auto Updater genutzt habt müsst Ihr die konfigurierte Zeit warten :-)
Ansonsten startet einfach noch mal das Installationsskript auf jedem Rechner - Ihr könnt beliebig oft "drüberinstallieren".

Warning.png
Warnung: Ja das geht so einfach. Als verantwortungsvoller Administrator lest Ihr vorher aber zumindest vorher einmal das Changelog ganz oben auf dieser Seite durch UND probiert es vorher einmal aus. Wenn Ihr den AgentAutoUpdater benutzt so legt in der Freigabe auch ein Test Verzeichnis an - und 1 oder 2 eurer Hosts haben eben immer dieses Testverzeichnis statt des normalen (Der Pfad in der Config.bat muss natürlich angepasst sein). Ich teste selbst immer - und trotzdem schlüpft mal ein Fehler durch.




Getestete Betriebssysteme

Bisher funktionierte das Script mit

  • Windows XP
  • Windows Server 2003
  • Windows Server 2003 64 Bit
  • Windows Server 2003 R2
  • Windows Server 2003 R2 64 Bit
  • Windows 7
  • Windows Server 2008 R2
  • Windows Server 2012
  • Windows Server 2012 R2




Quellcode des Skriptes

Download: InstallZabbixAgent.zip


Kommentare

Loading comments...