dj-wasabi.zabbix-agent

Spis treści

Wprowadzenie

Ta rola została przeniesiona do: https://github.com/ansible-collections/community.zabbix/ W tym repozytorium będzie dostępna wersja tylko do odczytu dla tych, którzy jeszcze nie mogą skorzystać z kolekcji. Zmiany/aktualizacje będą stosowane tylko do kolekcji, a nie w tym repozytorium.

Wymagania

Systemy operacyjne

Ta rola będzie działać na następujących systemach operacyjnych:

  • Red Hat
  • Fedora
  • Debian
  • Ubuntu
  • openSUSE
  • Windows (najlepsze starania)
  • macOS

Będziesz potrzebować jednego z tych systemów operacyjnych. :-) Proszę o przesyłanie Pull Requestów lub sugestii, jeśli chcesz użyć tej roli dla innych systemów operacyjnych.

Dostęp do systemu lokalnego

Aby pomyślnie zainstalować rolę, wymaga ona python-netaddr na kontrolerze, aby zarządzać adresami IP. To wymaga, aby biblioteka była dostępna na Twojej lokalnej maszynie (lub aby pip był zainstalowany, aby móc uruchomić). To prawdopodobnie oznacza, że uruchomienie roli będzie wymagało dostępu sudo do lokalnej maszyny i dlatego możesz potrzebować flagi -K, aby móc wprowadzić hasło do lokalnej maszyny, jeśli nie uruchamiasz jako root.

Wersje Zabbix

Zobacz poniższą listę obsługiwanych systemów operacyjnych z wersjami Zabbix:

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

Rozpoczęcie

Instalacja

Instalacja tej roli jest bardzo prosta: ansible-galaxy install dj-wasabi.zabbix-agent

To zainstaluje rolę zabbix-agent w Twoim katalogu roles.

Minimalna konfiguracja

Aby uruchomić agenta Zabbix, musisz zdefiniować następujące właściwości przed wykonaniem roli:

  • zabbix_agent_version
  • zabbix_agent_server
  • zabbix_agent_serveractive (gdy używasz aktywnych kontroli)

zabbix_agent_version jest opcjonalny. Najnowsza dostępna wersja major.minor Zabbix zostanie zainstalowana na hoście (lub hostach). Jeśli chcesz użyć starszej wersji, określ to w formacie major.minor. Przykład: zabbix_agent_version: 4.0, zabbix_agent_version: 3.4 lub zabbix_agent_version: 2.2.

zabbix_agent_server (oraz zabbix_agent_serveractive) powinny zawierać IP lub FQDN hosta uruchamiającego serwer Zabbix.

Problemy

Z powodu problemu omówionego na #291, wersja Ansible 2.9.{0,1,2} nie działa poprawnie na systemach Windows.

Zmienne roli

Główne zmienne

W pliku default/main.yml znajdują się zmienne, które mogą być nadpisane (lub muszą być nadpisane):

  • zabbix_agent_server: Adres IP serwera zabbix lub zabbix-proxy.

  • zabbix_agent_serveractive: Adres IP serwera zabbix lub zabbix-proxy dla aktywnych kontroli.

  • zabbix_agent_version: To jest wersja zabbix. Domyślnie jest to 4.4, ale można to nadpisać na jedną z wersji wymienionych w Wersje Zabbix. Wcześniej zmienna zabbix_version była używana bezpośrednio, ale mogło to powodować pewne niedogodności. Ta zmienna jest utrzymywana dla zachowania zgodności.

  • zabbix_repo: Domyślnie: zabbix

    • epel instaluje agenta z repozytorium EPEL
    • zabbix (domyślnie) instaluje agenta z repozytorium Zabbix
    • other instaluje agenta z już istniejącego lub innego repozytorium
  • zabbix_agent_listeninterface: Interfejs, na którym słucha zabbix-agent. Pozostaw puste dla wszystkich.

  • zabbix_agent_package: Nazwa pakietu zabbix-agent. Domyślnie: zabbix-agent. W przypadku EPEL jest automatycznie zmieniana nazwa.

  • zabbix_sender_package: Nazwa pakietu zabbix-sender. Domyślnie: zabbix-sender. W przypadku EPEL jest automatycznie zmieniana nazwa.

  • zabbix_get_package: Nazwa pakietu zabbix-get. Domyślnie: zabbix-get. W przypadku EPEL jest automatycznie zmieniana nazwa.

  • zabbix_agent_package_state: Określa, czy Zabbix-agent ma być obecny lub w najnowszej wersji.

  • zabbix_agent_interfaces: Lista, która konfiguruje interfejsy, które można wykorzystać przy konfigurowaniu za pomocą API.

  • zabbix_selinux: Włącza politykę SELinux, aby agent mógł działać. Domyślnie: False.

  • zabbix_agent_userparameters: Lista nazw userparameterów i skryptów (jeśli istnieją). Szczegółowy opis znajduje się w sekcji Wdrażanie Userparameterów. Domyślnie: [] (Pusta lista).

    • name: Nazwa userparametru (powinna być taka sama jak nazwa pliku szablonu userparametru)
    • scripts_dir: Nazwa katalogu z niestandardowymi skryptami potrzebnymi dla userparameterów
  • zabbix_agent_userparameters_templates_src: Wskazuje ścieżkę względną (od templates/), w której są wyszukiwane szablony userparameterów

  • zabbix_agent_userparameters_scripts_src: Wskazuje ścieżkę względną (od files/), w której są wyszukiwane skrypty userparameterów

  • zabbix_agent_allowroot: Zezwala na uruchamianie agenta jako 'root'. 0 - nie pozwala, 1 - pozwala

  • zabbix_agent_runas_user: Obniża uprawnienia do konkretnego, istniejącego użytkownika w systemie. Ma to znaczenie tylko, gdy uruchamiasz jako 'root' i AllowRoot jest wyłączone.

  • zabbix_agent_become_on_localhost: Ustaw na False, jeśli nie potrzebujesz podwyższać uprawnień na localhost, aby lokalnie instalować pakiety za pomocą pip. Domyślnie: True

  • zabbix_install_pip_packages: Ustaw na False, jeśli nie chcesz instalować wymaganych pakietów pip. Przydatne, gdy całkowicie kontrolujesz swoje środowisko. Domyślnie: True

  • zabbix_agent_apt_priority: Dodaje wagę (Pin-Priority) dla repozytorium APT.

Konfiguracja specyficzna dla TLS

Te zmienne są specyficzne dla Zabbix 3.0 i wyższych:

  • zabbix_agent_tlsconnect: Jak agent powinien łączyć się z serwerem lub proxy. Używane dla aktywnych kontroli.

    Możliwe wartości:

    • niezaszyfrowane
    • psk
    • cert
  • zabbix_agent_tlsaccept: Jakie przychodzące połączenia akceptować.

    Możliwe wartości:

    • niezaszyfrowane
    • psk
    • cert
  • zabbix_agent_tlscafile: Pełna ścieżka do pliku zawierającego certyfikaty CA dla weryfikacji certyfikatów.

  • zabbix_agent_tlscrlfile: Pełna ścieżka do pliku zawierającego odwołane certyfikaty.

  • zabbix_agent_tlsservercertissuer: Dozwolony wystawca certyfikatu serwera.

  • zabbix_agent_tlsservercertsubject: Dozwolony temat certyfikatu serwera.

  • zabbix_agent_tlscertfile: Pełna ścieżka do pliku zawierającego certyfikat agenta lub łańcuch certyfikatów.

  • zabbix_agent_tlskeyfile: Pełna ścieżka do pliku zawierającego prywatny klucz agenta.

  • zabbix_agent_tlspskidentity: Unikalny, wrażliwy na wielkość liter ciąg używany do identyfikacji klucza przed-szyfrowanego (PSK).

  • zabbix_agent_tlspskidentity_file: Pełna ścieżka do pliku zawierającego tożsamość klucza przed-szyfrowanego.

  • zabbix_agent_tlspskfile: Pełna ścieżka do pliku zawierającego klucz przed-szyfrowany.

  • zabbix_agent_tlspsk_secret: Przed-szyfrowany klucz tajny, który powinien być umieszczony w pliku skonfigurowanym w agent_tlspskfile.

  • zabbix_agent_tlspsk_auto: Włącza automatyczne generowanie i przechowywanie indywidualnych kluczy przed-szyfrowanych i tożsamości na klientach.

Zmienne API Zabbix

Te zmienne muszą być nadpisane, gdy chcesz skorzystać z API Zabbix do automatycznego tworzenia lub aktualizacji hostów.

Konfiguracja szyfrowania hostów będzie dostosowana do konfiguracji agenta.

Gdy zabbix_api_create_hostgroup lub zabbix_api_create_hosts jest ustawione na True, zainstaluje na hoście wykonującym playbook Ansible moduł zabbix-api w Pythonie.

  • zabbix_url: URL, na którym dostępna jest strona Zabbix. Przykład: http://zabbix.example.com

  • zabbix_api_http_user: Użytkownik http do uzyskania dostępu do url Zabbix za pomocą Basic Auth

  • zabbix_api_http_password: Hasło http do uzyskania dostępu do url Zabbix za pomocą Basic Auth

  • zabbix_api_create_hosts: Gdy chcesz włączyć API Zabbix do tworzenia/usuwania hosta. Musi to być ustawione na True, jeśli chcesz użyć zabbix_create_host. Domyślnie: False

  • zabbix_api_create_hostgroup: Gdy chcesz włączyć API Zabbix do tworzenia/usuwania grup hostów. Musi to być ustawione na True, jeśli chcesz użyć zabbix_create_hostgroup. Domyślnie: False

  • zabbix_api_user: Nazwa użytkownika, który ma dostęp do API.

  • zabbix_api_pass: Hasło dla użytkownika, który ma dostęp do API.

  • zabbix_create_hostgroup: obecny (Domyślnie), jeśli grupa hostów ma być utworzona, lub nieobecny, jeśli chcesz ją usunąć. To działa tylko wtedy, gdy zabbix_api_create_hostgroup jest ustawione na True.

  • zabbix_host_status: włączony (Domyślnie), gdy host jest monitorowany, wyłączony, gdy host jest wyłączony z monitorowania.

  • zabbix_create_host: obecny (Domyślnie), jeśli host ma być utworzony, lub nieobecny, jeśli chcesz go usunąć. To działa tylko wtedy, gdy zabbix_api_create_hosts jest ustawione na True.

  • zabbix_update_host: tak (Domyślnie), jeśli host powinien być zaktualizowany, jeśli już istnieje. To działa tylko wtedy, gdy zabbix_api_create_hosts jest ustawione na True.

  • zabbix_useuip: 1, jeśli połączenie z agentem Zabbix odbywa się za pomocą IP, 0 dla FQDN.

  • zabbix_host_groups: Lista grup hostów, do których należy ten host.

  • zabbix_link_templates: Lista szablonów, które muszą być połączone z tym hostem. Szablony muszą istnieć.

  • zabbix_macros: Lista z kluczem i wartością makra do tworzenia hostmacro's.

  • zabbix_inventory_mode: Konfiguracja trybu inwentaryzacji Zabbix. Potrzebne do budowania danych inwentaryzacyjnych, ręcznie podczas konfigurowania hosta lub automatycznie, korzystając z niektórych opcji automatycznego wypełniania. Musi być ustawione na automatic, jeśli chcesz automatycznie budować dane inwentaryzacyjne.

  • zabbix_visible_hostname: Konfiguracja widocznej nazwy Zabbix wewnątrz interfejsu webowego Zabbix dla węzła.

  • zabbix_validate_certs: tak (Domyślnie), jeśli musimy weryfikować certyfikaty tls API. Użyj no, jeśli używane są certyfikaty samopodpisane.

Zmienne dla Windows

Uwaga

Wsparcie systemu Windows to najlepsze starania (nie mam możliwości testowania/weryfikacji zmian na różnych dostępnych instancjach Windows). PR-y dotyczące systemu Windows będą prawie natychmiastowo łączone, chyba że ktoś będzie w stanie zapewnić mechanizm testowy Windows za pomocą Travis dla Pull Requests.

  • zabbix_version_long: Długa (major.minor.patch) wersja agenta Zabbix. Będzie to używane do generowania linku zabbix_win_download_link oraz do aktualizacji agenta Zabbix, jeśli zabbix_agent_package_state: latest.

  • zabbix_win_download_link: URL do pobrania pliku win.zip.

  • zabbix_win_install_dir: Katalog, w którym Zabbix ma być zainstalowany.

  • zabbix_agent_win_logfile: Pełna ścieżka do pliku dziennika dla agenta Zabbix.

  • zabbix_agent_win_include: Katalog, w którym przechowywane są specyficzne pliki konfiguracyjne Zabbix.

  • zabbix_agent_win_svc_recovery: Włącza ustawienia automatycznego odzyskiwania usługi agenta Zabbix.

Zmienne dla macOS

  • zabbix_version_long: Długa (major.minor.patch) wersja agenta Zabbix. Będzie to używane do generowania linku zabbix_mac_download_link.

  • zabbix_mac_download_link: URL do pobrania pliku pkg.

Zmienne dla Dockera

Gdy nie chcesz instalować agenta Zabbix na hoście, ale chciałbyś uruchomić go w kontenerze, to te właściwości będą przydatne. Gdy zabbix_agent_docker jest ustawione na True, zostanie pobrany obraz Dockera, a kontener zostanie uruchomiony. Żadne inne instalacje nie będą wykonywane na hoście, z wyjątkiem pliku PSK i "Katalogu Zabbix Include".

Następujące katalogi są montowane w kontenerze:

  - /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

Pamiętaj, że używanie agenta Zabbix w kontenerze wymaga zmian w szablonie Zabbix dla systemu Linux, ponieważ /proc, /sys i /etc są montowane w katalogu /hostfs.

  • zabbix_agent_docker: Gdy ustawione na True, zainstaluje kontener Dockera na docelowym hoście zamiast instalacji na hoście docelowym. Domyślnie: False

  • zabbix_agent_docker_state: Domyślnie: started

  • zabbix_agent_docker_name: Nazwa kontenera. Domyślnie: zabbix-agent

  • zabbix_agent_docker_image: Nazwa obrazu Dockera. Domyślnie: zabbix/zabbix-agent

  • zabbix_agent_docker_image_tag: Tag obrazu Dockera.

  • zabbix_agent_docker_user_gid: Identyfikator grupy użytkownika zabbix w kontenerze.

  • zabbix_agent_docker_user_uid: Identyfikator użytkownika zabbix w kontenerze.

  • zabbix_agent_docker_network_mode: Nazwa (Docker) sieci, która powinna być używana dla kontenera. Domyślnie host.

  • zabbix_agent_docker_restart_policy: Polityka ponownego uruchamiania kontenera. Domyślnie: unless-stopped

  • zabbix_agent_docker_privileged: Gdy ustawione na True, kontener działa w trybie z przywilejami.

  • zabbix_agent_docker_ports: Lista wartości <PORT>:<PORT> do otwierania portów dla kontenera.

  • zabbix_agent_docker_security_opts: Lista dostępnych opcji bezpieczeństwa.

  • zabbix_agent_docker_volumes: Lista wszystkich katalogów, które muszą być dostępne w kontenerze.

  • zabbix_agent_docker_env: Słownik ze wszystkimi zmiennymi środowiskowymi, które muszą być ustawione dla kontenera.

Inne zmienne

  • zabbix_agent_firewall_enable: Jeśli IPtables musi być zaktualizowane poprzez otwarcie portu TCP dla portu skonfigurowanego w zabbix_agent_listenport.

  • zabbix_agent_firewall_source: Gdy podano, IPtables będzie skonfigurowane tak, aby zezwolić na ruch tylko z tego adresu IP/zakresu.

  • zabbix_agent_firewalld_enable: Jeśli firewalld musi być zaktualizowane poprzez otwarcie portu TCP dla portu skonfigurowanego w zabbix_agent_listenport i zabbix_agent_jmx_listenport, jeśli jest zdefiniowany.

  • zabbix_agent_firewalld_source: Gdy podano, firewalld będzie skonfigurowane tak, aby pozwalać na ruch tylko dla IP skonfigurowanego w zabbix_agent_server.

  • zabbix_agent_firewalld_zone: Gdy podano, zasada firewalld będzie przypisana do tej strefy (tylko jeśli zabbix_agent_firewalld_enable jest ustawione na true). Domyślne zachowanie to użycie domyślnej strefy zdefiniowanej przez zdalną konfigurację firewalld.

  • zabbix_agent_firewall_action: Kiedy wstawić zasady lub dołączyć do IPTables. Domyślnie: insert.

  • zabbix_agent_firewall_chain: Do której chain dodać regułę do IPTables. Domyślnie INPUT

  • zabbix_agent_description: Opis hosta w Zabbix.

  • zabbix_agent_inventory_zabbix: Dodaje fakty do inwentaryzacji Zabbix.

Zmienne IPMI

  • zabbix_agent_ipmi_authtype: Algorytm uwierzytelniania IPMI. Możliwe wartości to 1 (callback), 2 (użytkownik), 3 (operator), 4 (admin), 5 (OEM), gdzie 2 jest domyślną wartością API.

  • zabbix_agent_ipmi_password: Hasło IPMI.

  • zabbix_agent_ipmi_privilege: Poziom uprawnień IPMI. Możliwe wartości to 1 (callback), 2 (użytkownik), 3 (operator), 4 (admin), 5 (OEM), gdzie 2 jest domyślną wartością API.

  • zabbix_agent_ipmi_username: Nazwa użytkownika IPMI.

proxy

Gdy docelowy host nie ma dostępu do internetu, ale masz dostępny proxy, wówczas następujące właściwości muszą być ustawione, aby pobrać pakiety przez proxy:

  • zabbix_http_proxy
  • zabbix_https_proxy

Zależności

Nie ma zależności od innych ról.

Przykład Playbooka

interfejsy agenta

To skonfiguruje interfejs agenta Zabbix na hoście.

zabbix_agent_interfaces:
  - type: 1
    main: 1
    useip: "{{ zabbix_useuip }}"
    ip: "{{ zabbix_agent_ip }}"
    dns: "{{ ansible_fqdn }}"
    port: "{{ zabbix_agent_listenport }}"

Inne interfejsy

Możesz również skonfigurować zabbix_agent_interfaces, aby dodać/skonfigurować interfejsy snmp, jmx i ipmi.

Będziesz musiał użyć jednego z poniższych numerów typów podczas konfigurowania:

Typ interfejsu Nr
Zabbix Agent 1
snmp 2
ipmi 3
jmx 4

Konfiguracja interfejsu snmp będzie wyglądać następująco:

zabbix_agent_interfaces:
  - type: 2
    main: 1
    useip: "{{ zabbix_useuip }}"
    ip: "{{ agent_ip }}"
    dns: "{{ ansible_fqdn }}"
    port: "{{ agent_listenport }}"

Zmienne w konfiguracji roli

Zawarte jest również przykład, jak użyć swojej roli (na przykład, z zmiennymi przekazanymi jako parametry), co także jest miłe dla użytkowników:

- 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 # użyj zabbix_api_create_hosts i/lub zabbix_api_create_hostgroup od 0.8.0
       zabbix_api_user: Admin
       zabbix_api_pass: zabbix
       zabbix_create_host: present
       zabbix_host_groups:
         - Linux Servers
       zabbix_link_templates:
         - Template OS Linux
         - Apache APP Template
       zabbix_macros:
         - macro_key: apache_type
           macro_value: reverse_proxy

Kombinacja group_vars i playbook

Możesz również użyć plików group_vars lub host_vars do ustawienia zmiennych potrzebnych dla tej roli. Plik, który powinieneś zmienić: group_vars/all lub host_vars/<zabbix_server> (gdzie to nazwa hosta maszyny uruchamiającej serwer Zabbix)

    zabbix_agent_server: 192.168.33.30
    zabbix_agent_serveractive: 192.168.33.30
    zabbix_url: http://zabbix.example.com
    zabbix_api_use: true # użyj zabbix_api_create_hosts i/lub zabbix_api_create_hostgroup od 0.8.0
    zabbix_api_user: Admin
    zabbix_api_pass: zabbix
    zabbix_create_host: present
    zabbix_host_groups:
      - Linux Servers
    zabbix_link_templates:
      - Template OS Linux
      - Apache APP Template
    zabbix_macros:
      - macro_key: apache_type
        macro_value: reverse_proxy

a w playbooku wystarczy podać:

- hosts: all
  roles:
     - role: dj-wasabi.zabbix-agent

Przykład komunikacji agenta szyfrowanej PSK TLS

Zmienne np. w playbooku lub w 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

Molekuła

Ta rola jest skonfigurowana do testowania z Molekuła. Możesz znaleźć na tej stronie więcej informacji dotyczących Molekuła: https://werner-dijkerman.nl/2016/07/10/testing-ansible-roles-with-molecule-testinfra-and-docker/

Z każdym Pull Requestem, Molekuła zostanie wykonana za pomocą travis.ci. Pull Requesty będą scalane dopiero po pomyślnym zakończeniu tych testów.

Sa dwa scenariusze, które są wykonywane przez Travisa.

domyślny

W pierwszym scenariuszu, Molekuła uruchomi 5 kontenerów Dockera z następującymi systemami operacyjnymi:

  • Debian 8
  • CentOS 7
  • Ubuntu 16.04
  • Ubuntu 18.04
  • Mint

Ten scenariusz będzie wykonywał podstawową instalację/konfigurację, bez rejestracji hosta za pomocą API Zabbix do serwera.

z-serwerem

W drugim scenariuszu, Molekuła uruchomi 4 kontenery Dockera z następującymi systemami operacyjnymi:

  • CentOS 7 (Serwer Zabbix)
  • Debian 8
  • CentOS 7
  • Ubuntu 18.04

Najpierw zainstaluje się Serwer Zabbix w kontenerze. Ta instalacja korzysta z innych ról dj-wasabi w celu zainstalowania/skonfigurowania serwera Zabbix. Gdy ta instancja działa, instalowane są 3 inne agenty.

Każdy host zarejestruje się na serwerze Zabbix, a jego status powinien wynosić 0 (to oznacza, że serwer Zabbix i agent Zabbix są połączone).

Agent Ubuntu zarejestruje się za pomocą PSK, aby komunikacja między serwerem Zabbix a agentem Zabbix była szyfrowana kluczem pre-szyfrowanym.

przed-ostatnią-wersją

Trzeci i ostatni scenariusz to przed-ostatnią-wersją. Jest to ten sam scenariusz jak domyślny, ale używa poprzedniej wersji Zabbix.

Wdrażanie Userparameterów

Aby zainstalować niestandardowe userparameter i/lub skrypty, wymagane są następujące kroki:

  • Umieść pożądany plik userparameter w katalogu templates/userparameters i nazwij go jako <userparameter_name>.j2. Na przykład: templates/userparameters/mysql.j2. Możesz zmienić domyślny katalog na niestandardowy, modyfikując zmienną zabbix_agent_userparameters_templates_src.
  • Umieść katalog skryptów (jeśli istnieją) w katalogu files/scripts. Na przykład: files/scripts/mysql. Możesz zmienić domyślny katalog na niestandardowy, modyfikując zmienną zabbix_agent_userparameters_scripts_src.
  • Dodaj zmienną zabbix_agent_userparameters do playbooka jako listę słowników i zdefiniuj nazwę userparametru oraz nazwę katalogu skryptów (jeśli nie ma skryptów, po prostu nie określaj zmiennej scripts_dir).

Przykład:

- 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

Przykład pliku "templates/userparameters/mysql.j2":

UserParameter=mysql.ping_to,mysqladmin -uroot ping | grep -c alive

Licencja

MIT

Informacje o autorze

Proszę o wysyłanie sugestii lub pull requestów, aby uczynić tę rolę lepszą. Również daj mi znać, jeśli napotkasz jakieś problemy z instalacją lub użytkowaniem tej roli.

Github: https://github.com/dj-wasabi/ansible-zabbix-agent

mail: ikben [ at ] werner-dijkerman . nl

O projekcie

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

Zainstaluj
ansible-galaxy install dj-wasabi.zabbix-agent
Licencja
mit
Pobrania
4.2M
Właściciel
DevOps Engineer, Technical reviewer Packt Pub / Manning / BPB Online / O'Reilly Media