dj-wasabi.zabbix-agent

Inhaltsverzeichnis

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 Variable zabbix_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 (von templates/) an, wo Benutzerparameter-Vorlagen gesucht werden

  • zabbix_agent_userparameters_scripts_src: Gibt den relativen Pfad (von files/) an, wo Benutzerparameterskripte gesucht werden

  • zabbix_agent_allowroot: Erlaubt, dass der Agent als 'root' ausgeführt wird. 0 - nicht erlauben, 1 - erlauben

  • zabbix_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: Auf False setzen, wenn Sie keine Berechtigungen auf localhost erhöhen müssen, um Pakete lokal mit pip zu installieren. Standard: True

  • zabbix_install_pip_packages: Auf False setzen, wenn Sie die erforderlichen pip-Pakete nicht installieren möchten. Nützlich, wenn Sie Ihre Umgebung vollständig kontrollieren. Standard: True

  • zabbix_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 mit agent_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.com

  • zabbix_api_http_user: Der HTTP-Benutzer, um auf die Zabbix-URL mit Basic Auth zuzugreifen

  • zabbix_api_http_password: Das HTTP-Passwort, um auf die Zabbix-URL mit Basic Auth zuzugreifen

  • zabbix_api_create_hosts: Wenn Sie die Zabbix-API aktivieren möchten, um den Host zu erstellen/löschen. Dies muss auf True gesetzt werden, wenn Sie zabbix_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 auf True gesetzt werden, wenn Sie zabbix_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, wenn zabbix_api_create_hostgroup auf True 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, wenn zabbix_api_create_hosts auf True gesetzt ist.

  • zabbix_update_host: ja (Standard), wenn der Host aktualisiert werden sollte, wenn er bereits vorhanden ist. Dies funktioniert nur, wenn zabbix_api_create_hosts auf True 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 auf automatic 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 Sie nein, 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 den zabbix_win_download_link Link zu generieren und für das Zabbix-Agenten-Update, wenn zabbix_agent_package_state: latest.

  • zabbix_win_download_link: Der Download-Link zur win.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 den zabbix_mac_download_link Link zu generieren.

  • zabbix_mac_download_link: Der Download-Link zur pkg-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 auf True 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. Standard host.

  • zabbix_agent_docker_restart_policy: Die Neustartpolitik des Containers. Standard: es sei denn, gestoppt

  • zabbix_agent_docker_privileged: Wenn auf True 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 in zabbix_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 in zabbix_agent_listenport und zabbix_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 in zabbix_agent_server konfigurierten IP-Adresse erlaubt ist.

  • zabbix_agent_firewalld_zone: Wenn angegeben, wird die firewalld-Regel an diese Zone angehängt (nur wenn zabbix_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 Regel insertiert oder angehängt werden soll, wird der Standardwert insert verwendet.

  • zabbix_agent_firewall_chain: Welche chain zur IPTables-Regel hinzugefügt werden soll. Standard INPUT

  • 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 der Hostname der Maschine ist, die den Zabbix-Server ausführt)

    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 der zabbix_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 der zabbix_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 Variable scripts_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

Über das Projekt

Installing and maintaining zabbix-agent for RedHat/Debian/Ubuntu/Windows/Suse.

Installieren
ansible-galaxy install dj-wasabi.zabbix-agent
Lizenz
mit
Downloads
4.2M
Besitzer
DevOps Engineer, Technical reviewer Packt Pub / Manning / BPB Online / O'Reilly Media