ZABBIX

Otwarte oprogramowanie do monitorowania infrastruktury IT, takiej jak sieci, serwery, maszyny wirtualne i usługi w chmurze.

Rola w kontekście Goldenore CDC

Zabbix w projekcie Goldenore CDC może pełnić rolę wizualizatora zastępującego częściowo Grafanę lub wspomagając ją. Więc tak jak Grafana może monitorować przepływ danych Kafki Connect między connectorem źródłowym, a docelowym. Pozwala także na tworzenie reguł ostrzegających o niepożądanym zajściu na podstawie gromadzonych danych.

Kontenery Zabbix

Baza danych dla Zabbix

Właściwościdocker

Nazwa obrazu

mysql-server

Nazwa obrazu w dockerhub

mysql:8.0-oracle

Port

BRAK

Zależności

BRAK

Backend Zabbix

Właściwościdocker

Nazwa obrazu

zabbix-server

Nazwa obrazu w dockerhub

zabbix/zabbix-server-mysql:ubuntu-6.4-latest

Port

10051

Zależności

mysql-server

Frontend Zabbix

Właściwościdocker

Nazwa obrazu

zabbix-web

Nazwa obrazu w dockerhub

zabbix/zabbix-web-nginx-mysql:ubuntu-6.4-latest

Port

80

Zależności

mysql-server, zabbix-server

Zmienne środowiskowe

W konfiguracji docker compose w nagłówkach "env_file" przekazywane są domyślne wartości konfiguracyjne dla serwisów pozyskane ze strony https://www.zabbix.com/.

Wolumeny

Wolumeny we wszystkich serwisach także są wolumenami domyślnymi ze oficjalnej strony Zabbix. Wyjątkiem są dwa woluminy:

       - ./zabbix-files/dashboards.sql:/cdc-dashboard/dashboards.sql
       - ./zabbix-files/insert_dashboard.sh:/cdc-dashboard/insert_dashboard.sh

Pozwala on na późniejsze wprowadzenie dashboardu z monitoringiem Kafki Connect rozwiązania CDC

Sekrety

secrets:
  MYSQL_USER:
    file: ./env_vars/.MYSQL_USER
  MYSQL_PASSWORD:
    file: ./env_vars/.MYSQL_PASSWORD
  MYSQL_ROOT_USER:
    file: ./env_vars/.MYSQL_ROOT_USER
  MYSQL_ROOT_PASSWORD:
    file: ./env_vars/.MYSQL_ROOT_PASSWORD

W tej części docker compose przekazywane są dane logowania do zabbixa, które przy uruchomieniu zostają podawane do wszystkich serwisów.

Domyślne dane logowania

SerwisLoginHasło

MySQL

zabbix

zabbix

Frontend

Admin

zabbix

Instrukcja dołączenia Zabbix do rozwiązania CDC

Do pliku docker-compose.yml należy dołączyć podane serwisy:

  zabbix-server:
      image: zabbix/zabbix-server-mysql:ubuntu-6.4-latest
      ports:
       - "10051:10051"
      volumes:
       - /etc/localtime:/etc/localtime:ro
       - ./zbx_env/usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts:ro
       - ./zbx_env/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts:ro
       - ./zbx_env/var/lib/zabbix/dbscripts:/var/lib/zabbix/dbscripts:ro
       - ./zbx_env/var/lib/zabbix/export:/var/lib/zabbix/export:rw
       - ./zbx_env/var/lib/zabbix/modules:/var/lib/zabbix/modules:ro
       - ./zbx_env/var/lib/zabbix/enc:/var/lib/zabbix/enc:ro
       - ./zbx_env/var/lib/zabbix/ssh_keys:/var/lib/zabbix/ssh_keys:ro
       - ./zbx_env/var/lib/zabbix/mibs:/var/lib/zabbix/mibs:ro
       - snmptraps:/var/lib/zabbix/snmptraps:rw
      env_file:
       - ./env_vars/.env_db_mysql
       - ./env_vars/.env_srv
      secrets:
       - MYSQL_USER
       - MYSQL_PASSWORD
       - MYSQL_ROOT_USER
       - MYSQL_ROOT_PASSWORD
      container_name: zabbix-server
      depends_on:
       - mysql-server


  zabbix-web-nginx-mysql:
      image: zabbix/zabbix-web-nginx-mysql:ubuntu-6.4-latest
      ports:
       - "80:8080"
       - "443:8443"
      volumes:
       - /etc/localtime:/etc/localtime:ro
       - ./zbx_env/etc/ssl/nginx:/etc/ssl/nginx:ro
       - ./zbx_env/usr/share/zabbix/modules/:/usr/share/zabbix/modules/:ro
      env_file:
       - ./env_vars/.env_db_mysql
       - ./env_vars/.env_web
      secrets:
       - MYSQL_USER
       - MYSQL_PASSWORD
      depends_on:
       - mysql-server
       - zabbix-server
      healthcheck:
       test: ["CMD", "curl", "-f", "http://localhost:8080/ping"]
       interval: 10s
       timeout: 5s
       retries: 3
       start_period: 30s
      container_name: zabbix-web

  mysql-server:
      image: mysql:8.0-oracle
      command:
       - mysqld
       - --character-set-server=utf8mb4
       - --collation-server=utf8mb4_bin
       - --default-authentication-plugin=mysql_native_password
      volumes:
       - ./zabbix-files/dashboards.sql:/cdc-dashboard/dashboards.sql
       - ./zabbix-files/insert_dashboard.sh:/cdc-dashboard/insert_dashboard.sh
       - ./zbx_env/var/lib/mysql:/var/lib/mysql:rw
      env_file:
       - ./env_vars/.env_db_mysql
      secrets:
       - MYSQL_USER
       - MYSQL_PASSWORD
       - MYSQL_ROOT_PASSWORD
      container_name: zabbix-mysql

Na koniec pliku dołączamy:

volumes:
  snmptraps:

secrets:
  MYSQL_USER:
    file: ./env_vars/.MYSQL_USER
  MYSQL_PASSWORD:
    file: ./env_vars/.MYSQL_PASSWORD
  MYSQL_ROOT_USER:
    file: ./env_vars/.MYSQL_ROOT_USER
  MYSQL_ROOT_PASSWORD:
    file: ./env_vars/.MYSQL_ROOT_PASSWORD

Oprócz modyfikacji docker compose należy dołączyć do folderu z rozwiązaniem CDC dołączyć folder "env_vars" oraz "zabbix-files" znajdujące się w repozytorium GOLDENORE_CDC_ZABIX (https://dev.azure.com/goldenore/GOLDENORE_CDC/_git/GOLDENORE_CDC_ZABIX).

Instrukcja po uruchomieniu Zabbix

Uwaga! Uruchomienie zabbix trwa dość długo. Może być to około 5 minut.

  1. Wchodzimy w Data collection

  2. Wybieramy zakładkę hosts

  3. Klikamy import (prawy górny róg)

  4. Wybieramy plik znajdujący się w folderze zabbix-files o nazwie zabbix_host.json

  5. Wchodzimy w zaimportowanego hosta o nazwie JMXKafka

  6. Zmieniamy wartość interfaces z 0.0.0.0 na odpowiedni adres ip

  7. Wracamy do konsoli maszyny

  8. Wpisujemy komendę docker exec -it zabbix-mysql bash

  9. Wchodzimy do folderu cdc-dashboard

  10. Wywołujemy ./insert_dashboard.sh

  11. Podajemy hasło do bazy danych zabbix

Zmiana zmiennych środowiskowych w programie Zabbix

  1. Wchodzimy w Data collection

  2. Wybieramy zakładkę hosts

  3. Wybieramy hosta JMXKafka

  4. Wybieramy zakładkę macros

  5. Zmieniamy interesujące nas wartości

Last updated