152 lines
4.6 KiB
YAML
152 lines
4.6 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-5.0-latest@sha256:b88c636ec3298529358914aa7fd04d3f7ae3da0eab261b405cb2a9fcb4fa5eae
|
|
ports:
|
|
- '10051:10051'
|
|
depends_on:
|
|
- database
|
|
environment:
|
|
DB_SERVER_HOST: database
|
|
DB_SERVER_PORT: 5432
|
|
POSTGRES_USER: zabbix
|
|
POSTGRES_PASSWORD: zabbix
|
|
POSTGRES_DB: zabbix
|
|
|
|
zabbix-web:
|
|
image: zabbix/zabbix-web-nginx-pgsql:alpine-5.0-latest@sha256:90d9d85d42d46a4978091bd6deb405e6c8486fd53af5720a6f7a6135e6baaa4b
|
|
ports:
|
|
- '443:443'
|
|
- '8188:8080'
|
|
depends_on:
|
|
ssl-cert:
|
|
condition: service_completed_successfully
|
|
database:
|
|
condition: service_started
|
|
zabbix-server:
|
|
condition: service_started
|
|
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
|
|
ZBX_SESSION_NAME: zbx_sessionid_new
|
|
volumes:
|
|
- ../nginx:/etc/nginx/ssl:ro
|
|
- ../nginx/default.conf:/etc/nginx/http.d/default.conf:ro
|
|
- ../nginx/.htpasswd:/etc/nginx/.htpasswd:ro
|
|
|
|
database:
|
|
image: postgres:18@sha256:5773fe724c49c42a7a9ca70202e11e1dff21fb7235b335a73f39297d200b73a2
|
|
ports:
|
|
- '15432:5432'
|
|
environment:
|
|
POSTGRES_USER: zabbix
|
|
POSTGRES_PASSWORD: zabbix
|
|
|
|
zabbix-agent:
|
|
image: zabbix/zabbix-agent:alpine-5.0-latest@sha256:c34ca68c3120b1918bceb394f2275f6aa67ddecce641a0033fdea5c84b89731d
|
|
environment:
|
|
ZBX_SERVER_HOST: zabbix-server
|
|
ZBX_SERVER_PORT: 10051
|
|
|
|
zabbix-proxy:
|
|
image: zabbix/zabbix-proxy-sqlite3:alpine-5.0-latest@sha256:a963b30b2e4352be890c93f599749d42a8e6a8e549629ccc6b30de437ecd4a5f
|
|
environment:
|
|
ZBX_PROXYMODE: 0
|
|
ZBX_HOSTNAME: zabbix-proxy
|
|
ZBX_SERVER_HOST: zabbix-server
|
|
ZBX_SERVER_PORT: 10051
|
|
|
|
zabbix-agent-proxy:
|
|
image: zabbix/zabbix-agent:alpine-5.0-latest@sha256:c34ca68c3120b1918bceb394f2275f6aa67ddecce641a0033fdea5c84b89731d
|
|
environment:
|
|
ZBX_SERVER_HOST: zabbix-proxy
|
|
ZBX_SERVER_PORT: 10051
|
|
|
|
#########################################################
|
|
# Bootstrap config
|
|
#########################################################
|
|
|
|
bootstrap:
|
|
build:
|
|
context: ./bootstrap
|
|
dockerfile: Dockerfile
|
|
args:
|
|
ZBX_HOSTS_NUMBER: 10
|
|
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
|
|
|
|
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
|