Files
grafana-zabbix/devenv/zabbix70/docker-compose.yml
2026-01-26 17:04:45 +01:00

135 lines
4.0 KiB
YAML

services:
ssl-cert:
image: alpine:latest@sha256:865b95f46d98cf867a156fe4a135ad3fe50d2056aa3f25ed31662dff6da4eb62
command: |
sh -c "if [ ! -f /certs/nginx.crt ] || [ ! -f /certs/nginx.key ]; then
apk add --no-cache openssl &&
mkdir -p /certs &&
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /certs/nginx.key -out /certs/nginx.crt -subj '/C=US/ST=State/L=City/O=Organization/CN=localhost' &&
chmod 644 /certs/nginx.crt /certs/nginx.key
else
echo 'SSL certificates already exist, skipping generation'
fi"
volumes:
- ../nginx:/certs
# Grafana
grafana:
extends:
file: ../../.config/docker-compose-base.yaml
service: grafana
volumes:
- ../dashboards:/devenv/dashboards
- '../datasources.yaml:/etc/grafana/provisioning/datasources/datasources.yaml'
- '../dashboards.yaml:/etc/grafana/provisioning/dashboards/dashboards.yaml'
# Zabbix
zabbix-server:
image: zabbix/zabbix-server-pgsql:alpine-7.0-latest@sha256:2cec4dde78b1ea1ad483ea823f91dff45abd013779909db004f3568a596c3bde
ports:
- '10051:10051'
depends_on:
- database
environment:
DB_SERVER_HOST: database
DB_SERVER_PORT: 5432
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: zabbix
POSTGRES_DB: zabbix
ZBX_TIMEOUT: 10
ZBX_STARTPOLLERS: 10
ZBX_STARTPOLLERSUNREACHABLE: 5
ZBX_DEBUGLEVEL: 3
zabbix-web:
image: zabbix/zabbix-web-nginx-pgsql:alpine-7.0-latest@sha256:927b9a2836ee0ae6f44c4c749e50042931e87c7d9866b7d3bbd3901318ae63eb
ports:
- '443:443'
- '8188:8080'
depends_on:
- database
- zabbix-server
volumes:
- ../nginx:/etc/nginx/ssl:ro
- ../nginx/default.conf:/etc/nginx/http.d/default.conf:ro
- ../nginx/.htpasswd:/etc/nginx/.htpasswd:ro
environment:
ZBX_SERVER_HOST: zabbix-server
ZBX_SERVER_PORT: 10051
DB_SERVER_HOST: database
DB_SERVER_PORT: 5432
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: zabbix
POSTGRES_DB: zabbix
database:
image: postgres:18@sha256:5773fe724c49c42a7a9ca70202e11e1dff21fb7235b335a73f39297d200b73a2
ports:
- '15432:5432'
command: postgres -c 'max_connections=1000'
environment:
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: zabbix
zabbix-agent:
image: zabbix/zabbix-agent:alpine-7.0-latest@sha256:52865010468af7f6dc3e3dbd45b645c32b8d133f4a230301cea26ffa679d5cc4
environment:
ZBX_SERVER_HOST: zabbix-server
ZBX_SERVER_PORT: 10051
#########################################################
# Bootstrap config
#########################################################
bootstrap:
build: ./bootstrap
environment:
ZBX_API_URL: http://zabbix-web:8080
ZBX_API_USER: Admin
ZBX_API_PASSWORD: zabbix
depends_on:
- database
- zabbix-server
- zabbix-web
#########################################################
# Fake agents
#########################################################
# backend
redis_backend:
image: redis:alpine@sha256:6cbef353e480a8a6e7f10ec545f13d7d3fa85a212cdcc5ffaf5a1c818b9d3798
zas_backend_01:
build: ../zas-agent
volumes:
- ../zas-agent/conf/zas_scenario_backend.cfg:/etc/zas_scenario.cfg
environment:
REDIS_HOST: redis_backend
# restart: always
zas_backend_02:
build: ../zas-agent
volumes:
- ../zas-agent/conf/zas_scenario_backend.cfg:/etc/zas_scenario.cfg
environment:
REDIS_HOST: redis_backend
# frontend
redis_frontend:
image: redis:alpine@sha256:6cbef353e480a8a6e7f10ec545f13d7d3fa85a212cdcc5ffaf5a1c818b9d3798
zas_frontend_01:
build: ../zas-agent
volumes:
- ../zas-agent/conf/zas_scenario_frontend.cfg:/etc/zas_scenario.cfg
environment:
REDIS_HOST: redis_frontend
zas_frontend_02:
build: ../zas-agent
volumes:
- ../zas-agent/conf/zas_scenario_frontend.cfg:/etc/zas_scenario.cfg
environment:
REDIS_HOST: redis_frontend