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
Nazwa obrazu
mysql-server
Nazwa obrazu w dockerhub
mysql:8.0-oracle
Port
BRAK
Zależności
BRAK
Backend Zabbix
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
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
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.
Wchodzimy w Data collection
Wybieramy zakładkę hosts
Klikamy import (prawy górny róg)
Wybieramy plik znajdujący się w folderze zabbix-files o nazwie zabbix_host.json
Wchodzimy w zaimportowanego hosta o nazwie JMXKafka
Zmieniamy wartość interfaces z 0.0.0.0 na odpowiedni adres ip
Wracamy do konsoli maszyny
Wpisujemy komendę
docker exec -it zabbix-mysql bash
Wchodzimy do folderu cdc-dashboard
Wywołujemy
./insert_dashboard.sh
Podajemy hasło do bazy danych zabbix
Zmiana zmiennych środowiskowych w programie Zabbix
Wchodzimy w Data collection
Wybieramy zakładkę hosts
Wybieramy hosta JMXKafka
Wybieramy zakładkę macros
Zmieniamy interesujące nas wartości
Last updated