dj-wasabi.zabbix-agent
Inhaltsverzeichnis
- Überblick
- Anforderungen
- Erste Schritte
- Rollenspezifische Variablen
- Abhängigkeiten
- Beispiel-Playbook
- Moleküle
- Bereitstellung von Benutzerparametern
- Lizenz
- Autoreninformationen
Einführung
Diese Rolle ist migriert zu: https://github.com/ansible-collections/community.zabbix/ In diesem Repository ist eine schreibgeschützte Version verfügbar für diejenigen, die Collections (noch) nicht nutzen können. Änderungen/Updates werden nur auf der Collection und nicht in diesem Repository angewendet.
Anforderungen
Betriebssysteme
Diese Rolle funktioniert auf den folgenden Betriebssystemen:
- Red Hat
- Fedora
- Debian
- Ubuntu
- opensuse
- Windows (Best-Effort)
- macOS
Sie benötigen also eines dieser Betriebssysteme. :-) Bitte senden Sie Pull Requests oder Vorschläge, wenn Sie diese Rolle für andere Betriebssysteme verwenden möchten.
Zugriff auf das lokale System
Um die Installation erfolgreich abzuschließen, benötigt die Rolle python-netaddr
auf dem Controller, um IP-Adressen verwalten zu können. Dies erfordert, dass die Bibliothek auf Ihrem lokalen Rechner verfügbar ist (oder dass pip
installiert ist, um sie auszuführen). Wahrscheinlich bedeutet dies, dass das Ausführen der Rolle sudo
-Zugriff auf Ihren lokalen Rechner erfordert und Sie daher möglicherweise die -K
-Option benötigen, um Ihr lokales Passwort einzugeben, wenn Sie nicht als root arbeiten.
Zabbix-Versionen
Hier ist eine Liste unterstützter Betriebssysteme mit den Zabbix-Versionen:
Zabbix 4.4
- CentOS 7.x, 8.x
- Amazon 7.x
- RedHat 7.x, 8.x
- Fedora 27, 29
- OracleLinux 7.x, 8.x
- Scientific Linux 7.x, 8.x
- Ubuntu 14.04, 16.04, 18.04
- Debian 8, 9, 10
- macOS 10.14, 10.15
Zabbix 4.2
- CentOS 7.x
- Amazon 7.x
- RedHat 7.x
- Fedora 27, 29
- OracleLinux 7.x
- Scientific Linux 7.x
- Ubuntu 14.04, 16.04, 18.04
- Debian 8, 9, 10
- macOS 10.14, 10.15
Zabbix 4.0
- CentOS 7.x
- Amazon 7.x
- RedHat 7.x
- Fedora 27, 29
- OracleLinux 7.x
- Scientific Linux 7.x
- Ubuntu 14.04, 16.04, 18.04
- Debian 8, 9, 10
- macOS 10.14, 10.15
Zabbix 3.4
- CentOS 7.x
- Amazon 7.x
- RedHat 7.x
- Fedora 27, 29
- OracleLinux 7.x
- Scientific Linux 7.x
- Ubuntu 14.04, 16.04, 18.04
- Debian 7, 8, 9
Zabbix 3.2
- CentOS 7.x
- Amazon 7.x
- RedHat 7.x
- Fedora 27, 29
- OracleLinux 7.x
- Scientific Linux 7.x
- Ubuntu 14.04, 16.04
- Debian 7, 8
Zabbix 3.0
- CentOS 5.x, 6.x, 7.x
- Amazon 5.x, 6.x, 7.x
- RedHat 5.x, 6.x, 7.x
- OracleLinux 5.x, 6.x, 7.x
- Scientific Linux 5.x, 6.x, 7.x
- Ubuntu 14.04
- Debian 7, 8
Zabbix 2.4
- CentOS 6.x, 7.x
- Amazon 6.x, 7.x
- RedHat 6.x, 7.x
- OracleLinux 6.x, 7.x
- Scientific Linux 6.x, 7.x
- Ubuntu 12.04, 14.04
- Debian 7
Zabbix 2.2
- CentOS 5.x, 6.x
- RedHat 5.x, 6.x
- OracleLinux 5.x, 6.x
- Scientific Linux 5.x, 6.x
- Ubuntu 12.04
- Debian 7
- XenServer 6
Erste Schritte
Installation
Die Installation dieser Rolle ist sehr einfach: ansible-galaxy install dj-wasabi.zabbix-agent
Dies installiert die Zabbix-Agent-Rolle in Ihrem roles
-Verzeichnis.
Minimale Konfiguration
Um den Zabbix-Agenten zum Laufen zu bringen, müssen Sie die folgenden Eigenschaften definieren, bevor Sie die Rolle ausführen:
- zabbix_agent_version
- zabbix_agent_server
- zabbix_agent_serveractive (bei Verwendung aktiver Überprüfungen)
Die zabbix_agent_version
ist optional. Die neueste verfügbare Haupt-.Neben-Version von Zabbix wird auf dem Host installiert. Wenn Sie eine ältere Version verwenden möchten, geben Sie dies im Haupt.Neben-Format an. Beispiel: zabbix_agent_version: 4.0
, zabbix_agent_version: 3.4
oder zabbix_agent_version: 2.2
.
Der zabbix_agent_server
(und zabbix_agent_serveractive
) sollte die IP oder den FQDN des Hosts enthalten, auf dem der Zabbix-Server läuft.
Probleme
Aufgrund eines Problems, das auf #291 besprochen wurde, funktioniert die Ansible-Version 2.9.{0,1,2} nicht korrekt auf Windows-bezogenen Zielen.
Rollenspezifische Variablen
Hauptvariablen
In der Datei default/main.yml gibt es einige Variablen, die überschrieben werden können (oder müssen):
zabbix_agent_server
: Die IP-Adresse für den Zabbix-Server oder Zabbix-Proxy.zabbix_agent_serveractive
: Die IP-Adresse für den Zabbix-Server oder Zabbix-Proxy für aktive Überprüfungen.zabbix_agent_version
: Dies ist die Version von Zabbix. Standardmäßig ist es 4.4, kann jedoch auf eine der in Zabbix-Versionen genannten Versionen überschrieben werden. Zuvor wurde die Variablezabbix_version
direkt verwendet, aber es könnte einige Unannehmlichkeiten verursachen. Diese Variable wird zur Rückwärtskompatibilität beibehalten.zabbix_repo
: Standard: zabbix- epel installiert den Agenten aus dem EPEL-Repo
- zabbix (Standard) installiert den Agenten aus dem Zabbix-Repo
- other installiert den Agenten aus einem bereits vorhandenen oder anderen Repo
zabbix_agent_listeninterface
: Interface, auf der der Zabbix-Agent lauscht. Leer lassen für alle.zabbix_agent_package
: Der Name des Zabbix-Agent-Pakets. Standard:zabbix-agent
. Im Fall von EPEL wird es automatisch umbenannt.zabbix_sender_package
: Der Name des Zabbix-Sender-Pakets. Standard:zabbix-sender
. Im Fall von EPEL wird es automatisch umbenannt.zabbix_get_package
: Der Name des Zabbix-Get-Pakets. Standard:zabbix-get
. Im Fall von EPEL wird es automatisch umbenannt.zabbix_agent_package_state
: Ob der Zabbix-Agent vorhanden oder auf dem neuesten Stand sein muss.zabbix_agent_interfaces
: Eine Liste, die die Schnittstellen konfiguriert, die Sie verwenden können, wenn Sie über die API konfigurieren.zabbix_selinux
: Aktiviert eine SELinux-Richtlinie, damit der Agent ausgeführt werden kann. Standard: False.zabbix_agent_userparameters
: Liste von Benutzerdatenparameternamen und Skripten (falls vorhanden). Eine detaillierte Beschreibung finden Sie im Abschnitt Bereitstellung von Benutzerparametern. Standard:[]
(Leere Liste).name
: Name des Benutzerparameters (sollte mit dem Namen der Benutzerparameter-Vorlagendatei übereinstimmen)scripts_dir
: Verzeichnisname der benutzerdefinierten Skripte, die für Benutzerparameter benötigt werden
zabbix_agent_userparameters_templates_src
: Gibt den relativen Pfad (vontemplates/
) an, wo Benutzerparameter-Vorlagen gesucht werdenzabbix_agent_userparameters_scripts_src
: Gibt den relativen Pfad (vonfiles/
) an, wo Benutzerparameterskripte gesucht werdenzabbix_agent_allowroot
: Erlaubt, dass der Agent als 'root' ausgeführt wird. 0 - nicht erlauben, 1 - erlaubenzabbix_agent_runas_user
: Senkt die Berechtigungen auf einen bestimmten, vorhandenen Benutzer im System. Hat nur Wirkung, wenn als 'root' ausgeführt und AllowRoot deaktiviert ist.zabbix_agent_become_on_localhost
: AufFalse
setzen, wenn Sie keine Berechtigungen auf localhost erhöhen müssen, um Pakete lokal mit pip zu installieren. Standard: Truezabbix_install_pip_packages
: AufFalse
setzen, wenn Sie die erforderlichen pip-Pakete nicht installieren möchten. Nützlich, wenn Sie Ihre Umgebung vollständig kontrollieren. Standard: Truezabbix_agent_apt_priority
: Fügen Sie ein Gewicht (Pin-Priority
) für das APT-Repository hinzu.
TLS-spezifische Konfiguration
Diese Variablen sind spezifisch für Zabbix 3.0 und höher:
zabbix_agent_tlsconnect
: Wie der Agent eine Verbindung zum Server oder Proxy herstellen soll. Wird für aktive Überprüfungen verwendet.Mögliche Werte:
- unverschlüsselt
- psk
- cert
zabbix_agent_tlsaccept
: Welche eingehenden Verbindungen akzeptiert werden sollen.Mögliche Werte:
- unverschlüsselt
- psk
- cert
zabbix_agent_tlscafile
: Vollständiger Pfad zu einer Datei, die die Zertifikate der obersten CA(s) zur Überprüfung des Peer-Zertifikats enthält.zabbix_agent_tlscrlfile
: Vollständiger Pfad zu einer Datei, die widerrufene Zertifikate enthält.zabbix_agent_tlsservercertissuer
: Erlaubter Aussteller des Serverzertifikats.zabbix_agent_tlsservercertsubject
: Erlaubtes Subjekt des Serverzertifikats.zabbix_agent_tlscertfile
: Vollständiger Pfad zu einer Datei, die das Agentenzertifikat oder die Zertifikatskette enthält.zabbix_agent_tlskeyfile
: Vollständiger Pfad zu einer Datei, die den privaten Schlüssel des Agenten enthält.zabbix_agent_tlspskidentity
: Eindeutiger, großgeschriebener String zur Identifizierung des vorab geteilten Schlüssels.zabbix_agent_tlspskidentity_file
: Vollständiger Pfad zu einer Datei, die die Identität des vorab geteilten Schlüssels enthält.zabbix_agent_tlspskfile
: Vollständiger Pfad zu einer Datei, die den vorab geteilten Schlüssel enthält.zabbix_agent_tlspsk_secret
: Der vorab geteilte geheime Schlüssel, der in der Datei konfiguriert werden sollte, die mitagent_tlspskfile
konfiguriert ist.zabbix_agent_tlspsk_auto
: Aktiviert die automatische Generierung und Speicherung individueller vorab geteilten Schlüssel und Identitäten auf den Clients.
Zabbix-API-Variablen
Diese Variablen müssen überschrieben werden, wenn Sie die Zabbix-API verwenden möchten, um Hosts automatisch zu erstellen und/oder zu aktualisieren.
Die Hostverschlüsselungskonfiguration wird auf die Agentenkonfiguration abgestimmt.
Wenn zabbix_api_create_hostgroup
oder zabbix_api_create_hosts
auf True
gesetzt ist, wird auf dem Host, der das Ansible-Playbook ausführt, das zabbix-api
Python-Modul installiert.
zabbix_url
: Die URL, über die die Zabbix-Webseite verfügbar ist. Beispiel: http://zabbix.example.comzabbix_api_http_user
: Der HTTP-Benutzer, um auf die Zabbix-URL mit Basic Auth zuzugreifenzabbix_api_http_password
: Das HTTP-Passwort, um auf die Zabbix-URL mit Basic Auth zuzugreifenzabbix_api_create_hosts
: Wenn Sie die Zabbix-API aktivieren möchten, um den Host zu erstellen/löschen. Dies muss aufTrue
gesetzt werden, wenn Siezabbix_create_host
verwenden möchten. Standard:False
zabbix_api_create_hostgroup
: Wenn Sie die Zabbix-API aktivieren möchten, um die Hostgruppen zu erstellen/löschen. Dies muss aufTrue
gesetzt werden, wenn Siezabbix_create_hostgroup
verwenden möchten. Standard:False
zabbix_api_user
: Benutzername des Benutzers, der API-Zugriff hat.zabbix_api_pass
: Passwort für den Benutzer, der API-Zugriff hat.zabbix_create_hostgroup
: vorhanden (Standard), wenn die Hostgruppe erstellt werden muss, oder abwesend, wenn Sie sie löschen möchten. Dies funktioniert nur, wennzabbix_api_create_hostgroup
aufTrue
gesetzt ist.zabbix_host_status
: aktiviert (Standard), wenn der Host überwacht wird, deaktiviert, wenn der Host für die Überwachung deaktiviert ist.zabbix_create_host
: vorhanden (Standard), wenn der Host erstellt werden muss, oder abwesend, wenn Sie ihn löschen möchten. Dies funktioniert nur, wennzabbix_api_create_hosts
aufTrue
gesetzt ist.zabbix_update_host
: ja (Standard), wenn der Host aktualisiert werden sollte, wenn er bereits vorhanden ist. Dies funktioniert nur, wennzabbix_api_create_hosts
aufTrue
gesetzt ist.zabbix_useuip
: 1, wenn die Verbindung zum Zabbix-Agenten über IP hergestellt wird, 0 für FQDN.zabbix_host_groups
: Eine Liste von Hostgruppen, zu denen dieser Host gehört.zabbix_link_templates
: Eine Liste von Vorlagen, die mit diesem Host verknüpft werden müssen. Die Vorlagen sollten existieren.zabbix_macros
: Eine Liste mit macro_key und macro_value zur Erstellung von Host-Makros.zabbix_inventory_mode
: Konfigurieren Sie den Zabbix-Inventarstatus. Notwendig zum Aufbau von Inventardaten, manuell bei der Konfiguration eines Hosts oder automatisch mit einigen automatischen Befüllungsoptionen. Dies muss aufautomatic
gesetzt werden, wenn Sie automatisch Inventardaten aufbauen möchten.zabbix_visible_hostname
: Konfigurieren Sie den sichtbaren Namen in der Zabbix-Weboberfläche für den Knoten.zabbix_validate_certs
: ja (Standard), wenn wir die TLS-Zertifikate der API validieren müssen. Verwenden Sienein
, falls selbstsignierte Zertifikate verwendet werden.
Windows-Variablen
HINWEIS
Die Unterstützung von Windows ist ein Best-Effort-Ansatz (ich habe keine Möglichkeit, Änderungen auf den verschiedenen verfügbaren Windows-Instanzen zu testen/verifizieren). PRs, die spezifisch für Windows sind, werden fast sofort zusammengeführt, es sei denn, jemand kann ein Windows-Testmechanismus über Travis für Pull Requests bereitstellen.
zabbix_version_long
: Die lange (major.minor.patch) Version des Zabbix-Agenten. Dies wird verwendet, um denzabbix_win_download_link
Link zu generieren und für das Zabbix-Agenten-Update, wennzabbix_agent_package_state: latest
.zabbix_win_download_link
: Der Download-Link zurwin.zip
-Datei.zabbix_win_install_dir
: Das Verzeichnis, in dem Zabbix installiert werden soll.zabbix_agent_win_logfile
: Der vollständige Pfad zur Protokolldatei für den Zabbix-Agenten.zabbix_agent_win_include
: Das Verzeichnis, in dem die zabbix-spezifischen Konfigurationsdateien gespeichert sind.zabbix_agent_win_svc_recovery
: Aktivieren Sie die automatischen Wiederherstellungsoptionen für den Zabbix-Agentdienst.
macOS-Variablen
zabbix_version_long
: Die lange (major.minor.patch) Version des Zabbix-Agenten. Dies wird verwendet, um denzabbix_mac_download_link
Link zu generieren.zabbix_mac_download_link
: Der Download-Link zurpkg
-Datei.
Docker-Variablen
Wenn Sie den Zabbix-Agenten nicht auf dem Host installieren, sondern in einem Container ausführen möchten, sind diese Eigenschaften nützlich. Wenn zabbix_agent_docker
auf True
gesetzt ist, wird ein Docker-Image heruntergeladen und ein Container gestartet. Es werden keine weiteren Installationen auf dem Host vorgenommen, mit Ausnahme der PSK-Datei und des "Zabbix Include Directory".
Die folgenden Verzeichnisse werden im Container gemountet:
- /etc/zabbix/zabbix_agentd.d:/etc/zabbix/zabbix_agentd.d
- /:/hostfs:ro
- /etc:/hostfs/etc:ro
- /proc:/hostfs/proc:ro
- /sys:/hostfs/sys:ro
- /var/run:/var/run
Bitte beachten Sie, dass die Verwendung des Zabbix-Agenten in einem Container Änderungen an der Zabbix-Vorlage für Linux erfordert, da /proc
, /sys
und /etc
im Verzeichnis /hostfs
gemountet sind.
zabbix_agent_docker
: Wenn aufTrue
gesetzt, wird ein Docker-Container auf dem Zielhost installiert, anstatt eine Installation auf dem Ziel vorzunehmen. Standard:False
zabbix_agent_docker_state
: Standard:gestart
zabbix_agent_docker_name
: Der Name des Containers. Standard:zabbix-agent
zabbix_agent_docker_image
: Der Name des Docker-Images. Standard:zabbix/zabbix-agent
zabbix_agent_docker_image_tag
: Das Tag des Docker-Images.zabbix_agent_docker_user_gid
: Die Gruppen-ID des Zabbix-Benutzers im Container.zabbix_agent_docker_user_uid
: Die Benutzer-ID des Zabbix-Benutzers im Container.zabbix_agent_docker_network_mode
: Der Name des (Docker)-Netzwerks, das für den Container verwendet werden soll. Standardhost
.zabbix_agent_docker_restart_policy
: Die Neustartpolitik des Containers. Standard:es sei denn, gestoppt
zabbix_agent_docker_privileged
: Wenn aufTrue
gesetzt, läuft der Container im privilegierten Modus.zabbix_agent_docker_ports
: Eine Liste mit<PORT>:<PORT>
-Werten zum Öffnen von Ports für den Container.zabbix_agent_docker_security_opts
: Eine Liste mit verfügbaren Sicherheitsoptionen.zabbix_agent_docker_volumes
: Eine Liste aller Verzeichnisse, die im Container verfügbar sein müssen.zabbix_agent_docker_env
: Ein Dictionary mit allen Umgebungsvariablen, die für den Container gesetzt werden müssen.
Weitere Variablen
zabbix_agent_firewall_enable
: Wenn IPTables aktualisiert werden muss, indem ein TCP-Port für den inzabbix_agent_listenport
konfigurierten Port geöffnet wird.zabbix_agent_firewall_source
: Wenn angegeben, wird IPTables so konfiguriert, dass nur der Verkehr von dieser IP-Adresse/diesem Bereich erlaubt ist.zabbix_agent_firewalld_enable
: Wenn firewalld aktualisiert werden muss, indem ein TCP-Port für den inzabbix_agent_listenport
undzabbix_agent_jmx_listenport
(falls definiert) konfigurierten Port geöffnet wird.zabbix_agent_firewalld_source
: Wenn angegeben, wird firewalld so konfiguriert, dass nur der Verkehr für die inzabbix_agent_server
konfigurierten IP-Adresse erlaubt ist.zabbix_agent_firewalld_zone
: Wenn angegeben, wird die firewalld-Regel an diese Zone angehängt (nur wennzabbix_agent_firewalld_enable
auf true gesetzt ist). Das Standardverhalten ist, die standardmäßige Zone zu verwenden, die durch die firewalld-Konfiguration des Remote-Hosts definiert ist.zabbix_agent_firewall_action
: Wenn die Regelinsertiert
oderangehängt
werden soll, wird der Standardwertinsert
verwendet.zabbix_agent_firewall_chain
: Welchechain
zur IPTables-Regel hinzugefügt werden soll. StandardINPUT
zabbix_agent_description
: Beschreibung des Hosts in Zabbix.zabbix_agent_inventory_zabbix
: Fügt Fakten für ein Zabbix-Inventar hinzu.
IPMI-Variablen
zabbix_agent_ipmi_authtype
: IPMI-Authentifizierungsalgorithmus. Mögliche Werte sind 1 (Callback), 2 (Benutzer), 3 (Bediener), 4 (Administrator), 5 (OEM), wobei 2 die Standard-API ist.zabbix_agent_ipmi_password
: IPMI-Passwort.zabbix_agent_ipmi_privilege
: IPMI-Berechtigungsstufe. Mögliche Werte sind 1 (Callback), 2 (Benutzer), 3 (Bediener), 4 (Administrator), 5 (OEM), wobei 2 die Standard-API ist.zabbix_agent_ipmi_username
: IPMI-Benutzername.
Proxy
Wenn der Zielhost keinen Zugang zum Internet hat, Sie aber einen Proxy zur Verfügung haben, müssen die folgenden Eigenschaften festgelegt werden, um die Pakete über den Proxy herunterzuladen:
zabbix_http_proxy
zabbix_https_proxy
Abhängigkeiten
Es gibt keine Abhängigkeiten zu anderen Rollen.
Beispiel-Playbook
agent_interfaces
Dies konfiguriert die Zabbix-Agent-Schnittstelle auf dem Host.
zabbix_agent_interfaces:
- type: 1
main: 1
useip: "{{ zabbix_useuip }}"
ip: "{{ zabbix_agent_ip }}"
dns: "{{ ansible_fqdn }}"
port: "{{ zabbix_agent_listenport }}"
Weitere Schnittstellen
Sie können auch die zabbix_agent_interfaces
konfigurieren, um snmp-, jmx- und ipmi-Schnittstellen hinzuzufügen/zu konfigurieren.
Sie müssen eine der folgenden Typnummern verwenden, wenn Sie sie konfigurieren:
Typ Schnittstelle | Nr |
---|---|
Zabbix-Agent | 1 |
snmp | 2 |
ipmi | 3 |
jmx | 4 |
Die Konfiguration einer snmp-Schnittstelle sieht folgendermaßen aus:
zabbix_agent_interfaces:
- type: 2
main: 1
useip: "{{ zabbix_useuip }}"
ip: "{{ agent_ip }}"
dns: "{{ ansible_fqdn }}"
port: "{{ agent_listenport }}"
Variablen in der Rollen-Konfiguration
Ein Beispiel, wie Sie Ihre Rolle verwenden können (zum Beispiel mit Variablen, die als Parameter übergeben werden) ist auch hilfreich für die Benutzer:
- hosts: all
roles:
- role: dj-wasabi.zabbix-agent
zabbix_agent_server: 192.168.33.30
zabbix_agent_serveractive: 192.168.33.30
zabbix_url: http://zabbix.example.com
zabbix_api_use: true # Verwendung von zabbix_api_create_hosts und/oder zabbix_api_create_hostgroup ab 0.8.0
zabbix_api_user: Admin
zabbix_api_pass: zabbix
zabbix_create_host: present
zabbix_host_groups:
- Linux-Server
zabbix_link_templates:
- Vorlage OS Linux
- Apache-APP-Vorlage
zabbix_macros:
- macro_key: apache_type
macro_value: reverse_proxy
Kombination von group_vars und Playbook
Sie können auch die group_vars oder host_vars-Dateien verwenden, um die für diese Rolle benötigten Variablen festzulegen. Datei, die Sie ändern sollten: group_vars/all
oder host_vars/<zabbix_server>
(wobei
zabbix_agent_server: 192.168.33.30
zabbix_agent_serveractive: 192.168.33.30
zabbix_url: http://zabbix.example.com
zabbix_api_use: true # Verwendung von zabbix_api_create_hosts und/oder zabbix_api_create_hostgroup ab 0.8.0
zabbix_api_user: Admin
zabbix_api_pass: zabbix
zabbix_create_host: present
zabbix_host_groups:
- Linux-Server
zabbix_link_templates:
- Vorlage OS Linux
- Apache-APP-Vorlage
zabbix_macros:
- macro_key: apache_type
macro_value: reverse_proxy
und im Playbook nur angeben:
- hosts: all
roles:
- role: dj-wasabi.zabbix-agent
Beispiel für die TLS-PSK-verschlüsselte Agentenkommunikation
Variablen z.B. im Playbook oder in host_vars/myhost
:
zabbix_agent_tlsaccept: psk
zabbix_agent_tlsconnect: psk
zabbix_agent_tlspskidentity: "myhost PSK"
zabbix_agent_tlspsk_secret: b7e3d380b9d400676d47198ecf3592ccd4795a59668aa2ade29f0003abbbd40d
zabbix_agent_tlspskfile: /etc/zabbix/zabbix_agent_pskfile.psk
Moleküle
Diese Rolle ist so konfiguriert, dass sie mit Molekülen getestet wird. Auf dieser Seite finden Sie weitere Informationen zu Molekülen: https://werner-dijkerman.nl/2016/07/10/testing-ansible-roles-with-molecule-testinfra-and-docker/
Mit jedem Pull-Request wird die Molekülprüfung über travis.ci ausgeführt. Pull-Requests werden nur zusammengeführt, wenn diese Tests erfolgreich ausgeführt werden.
Es gibt 2 Szenarien, die mit Travis ausgeführt werden.
Standard
Im ersten Szenario startet Molecule 5 Docker-Container mit den folgenden Betriebssystemen:
- Debian 8
- CentOS 7
- Ubuntu 16.04
- Ubuntu 18.04
- Mint
Dieses Szenario führt eine grundlegende Installation/Konfiguration durch, ohne den Host über die Zabbix-API beim Server zu registrieren.
Mit-Server
Das zweite Szenario startet 4 Docker-Container mit den folgenden Betriebssystemen:
- CentOS 7 (Zabbix-Server)
- Debian 8
- CentOS 7
- Ubuntu 18.04
Zuerst wird ein Zabbix-Server in einem Container installiert. Diese Installation nutzt andere dj-wasabi-Rollen zur Installation/Konfiguration eines Zabbix-Servers. Sobald diese Instanz läuft, werden die anderen 3 Agenten installiert.
Jeder Host registriert sich beim Zabbix-Server, und der Status sollte 0 sein (das bedeutet, dass der Zabbix-Server und der Zabbix-Agent verbunden sind).
Der Ubuntu-Agent registriert sich über einen PSK, sodass die Kommunikation zwischen dem Zabbix-Server und dem Zabbix-Agenten mit dem vorab geteilten Schlüssel verschlüsselt wird.
Vorletzte-Version
Das dritte und letzte Szenario ist die vorletzte-Version
. Dies ist dasselbe Szenario wie das Standard
, verwendet jedoch die vorherige Zabbix-Version.
Bereitstellung von Benutzerparametern
Um benutzerdefinierte Benutzerparameter und/oder Skripte zu installieren, sind die folgenden Schritte erforderlich:
- Legen Sie die gewünschte Benutzerparameterdatei im Verzeichnis
templates/userparameters
ab und benennen Sie sie als<userparameter_name>.j2
. Beispiel:templates/userparameters/mysql.j2
. Sie können das Standardverzeichnis durch Ändern derzabbix_agent_userparameters_templates_src
-Variable in ein benutzerdefiniertes Verzeichnis ändern. - Legen Sie das Skripteverzeichnis (sofern vorhanden) im Verzeichnis
files/scripts
ab. Beispiel:files/scripts/mysql
. Sie können das Standardverzeichnis durch Ändern derzabbix_agent_userparameters_scripts_src
-Variablen in ein benutzerdefiniertes Verzeichnis ändern. - Fügen Sie die Variable
zabbix_agent_userparameters
zum Playbook als Liste von Dictionaries hinzu und definieren Sie den Namen des Benutzerparameters und den Namen des Skripteverzeichnisses (falls keine Skripte vorhanden sind, geben Sie einfach die Variablescripts_dir
nicht an).
Beispiel:
- hosts: mysql_servers
tasks:
- include_role:
name: dj-wasabi.zabbix-agent
vars:
zabbix_agent_server: zabbix.mydomain.com
zabbix_agent_userparameters:
- name: mysql
scripts_dir: mysql
- name: galera
Beispiel der Datei "templates/userparameters/mysql.j2":
UserParameter=mysql.ping_to,mysqladmin -uroot ping | grep -c alive
Lizenz
MIT
Autoreninformationen
Bitte senden Sie Vorschläge oder Pull Requests, um diese Rolle zu verbessern. Lassen Sie mich auch wissen, wenn Sie bei der Installation oder Nutzung dieser Rolle auf Probleme stoßen.
Github: https://github.com/dj-wasabi/ansible-zabbix-agent
Mail: ikben [ at ] werner-dijkerman . nl
Installing and maintaining zabbix-agent for RedHat/Debian/Ubuntu/Windows/Suse.
ansible-galaxy install dj-wasabi.zabbix-agent