diff --git a/Monitoring/librenms-officiel/.env b/Monitoring/librenms-officiel/.env new file mode 100644 index 00000000..d2ae2fb5 --- /dev/null +++ b/Monitoring/librenms-officiel/.env @@ -0,0 +1,34 @@ +TZ=Europe/Paris +PUID=1000 +PGID=1000 + +MYSQL_DATABASE=librenms +MYSQL_USER=librenms +MYSQL_PASSWORD=asupersecretpassword + +MEMORY_LIMIT=256M +MAX_INPUT_VARS=1000 +UPLOAD_MAX_SIZE=16M +OPCACHE_MEM_SIZE=128 +REAL_IP_FROM=0.0.0.0/32 +REAL_IP_HEADER=X-Forwarded-For +LOG_IP_VAR=http_x_forwarded_for + +CACHE_DRIVER=redis +SESSION_DRIVER=redis +REDIS_HOST=redis + +LIBRENMS_SNMP_COMMUNITY=librenmsdocker + +LIBRENMS_WEATHERMAP=false +LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * * + +SMTP_HOST=smtp.gmail.com +SMTP_PORT=587 +SMTP_TLS=on +SMTP_STARTTLS=on +SMTP_TLS_CHECKCERT=on +SMTP_AUTH=on +SMTP_USER=foo +SMTP_PASSWORD=bar +SMTP_FROM=foo@gmail.com diff --git a/Monitoring/librenms-officiel/docker-compose.yml b/Monitoring/librenms-officiel/docker-compose.yml new file mode 100644 index 00000000..11225305 --- /dev/null +++ b/Monitoring/librenms-officiel/docker-compose.yml @@ -0,0 +1,268 @@ +name: librenms + +#### NETWORKS +networks: + docker-traefik_front_network: + external: true + back_network: + driver: bridge + attachable: true + +#### SERVICES + +services: +# traefik: +# image: traefik:2.5 +# container_name: traefik +# command: +# - "--global.checknewversion=false" +# - "--global.sendanonymoususage=false" +# - "--log=true" +# - "--log.level=INFO" +# - "--entrypoints.http=true" +# - "--entrypoints.http.address=:80" +# - "--entrypoints.http.http.redirections.entrypoint.to=https" +# - "--entrypoints.http.http.redirections.entrypoint.scheme=https" +# - "--entrypoints.https=true" +# - "--entrypoints.https.address=:443" +# - "--certificatesresolvers.letsencrypt" +# - "--certificatesresolvers.letsencrypt.acme.storage=acme.json" +# - "--certificatesresolvers.letsencrypt.acme.email=webmaster@example.com" +# - "--certificatesresolvers.letsencrypt.acme.httpchallenge" +# - "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=http" +# - "--providers.docker" +# - "--providers.docker.watch=true" +# - "--providers.docker.exposedbydefault=false" +# ports: +# - target: 80 +# published: 80 +# protocol: tcp +# - target: 443 +# published: 443 +# protocol: tcp +# volumes: +# - "./acme.json:/acme.json" +# - "/var/run/docker.sock:/var/run/docker.sock" +# restart: always + +## mariadb + mariadb: + container_name: librenms-mariadb + hostname: librenms-mariadb + image: mariadb:10 + command: + - "mysqld" + - "--innodb-file-per-table=1" + - "--lower-case-table-names=0" + - "--character-set-server=utf8mb4" + - "--collation-server=utf8mb4_unicode_ci" + volumes: + - "./mariadb:/var/lib/mysql" + networks: + - back_network + environment: + - "TZ=${TZ}" + - "MARIADB_RANDOM_ROOT_PASSWORD=yes" + - "MYSQL_DATABASE=${MYSQL_DATABASE}" + - "MYSQL_USER=${MYSQL_USER}" + - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" + restart: always + healthcheck: + test: [ "CMD", "healthcheck.sh", "--su-mysql", "--connect", "--innodb_initialized" ] + start_period: 1m + start_interval: 10s + interval: 1m + timeout: 5s + retries: 3 + +## redis + redis: + container_name: librenms-redis + hostname: librenms-redis + image: redis:7.2-alpine + networks: + - back_network + environment: + - "TZ=${TZ}" + restart: always + healthcheck: + test: ["CMD", "redis-cli","ping"] + interval: 10s + timeout: 5s + retries: 3 + +## msmtpd + msmtpd: + container_name: librenms-msmtpd + hostname: librenms-msmtpd + image: crazymax/msmtpd:latest + networks: + - back_network + environment: + - "TZ=Europe/Paris" + - "PUID=1500" + - "PGID=1500" + - "SMTP_HOST=10.0.4.52" + - "SMTP_PORT=587" + - "SMTP_TLS=on" + - "SMTP_STARTTLS=on" + - "SMTP_TLS_CHECKCERT=off" + - "SMTP_AUTH=on" + - "SMTP_USER=hostinfo@tips-of-mine.fr" + - "SMTP_PASSWORD=Whf2VtLEd2QR4er" + - "SMTP_DOMAIN=localhost" + - "SMTP_FROM=hostinfo@tips-of-mine.fr" + restart: always + healthcheck: + test: ["CMD-SHELL", "echo EHLO localhost"] + interval: 5s + timeout: 5s + retries: 5 + +## librenms + librenms: + container_name: librenms-app + hostname: librenms-app + image: librenms/librenms:latest + depends_on: + - mariadb: + condition: service_healthy + restart: true + - redis: + condition: service_healthy + restart: true + - msmtpd: + condition: service_healthy + restart: true + volumes: + - "./librenms:/data" + networks: + - docker-traefik_front_network + - back_network + labels: + - "traefik.enable=true" + - "traefik.docker.network=interne" +# HTTP + - "traefik.http.routers.librenms-http.rule=Host(`librenms.traefik.me`)" + - "traefik.http.routers.librenms-http.entrypoints=http" +# HTTPS + - "traefik.http.routers.librenms-https.rule=Host(`librenms.traefik.me`)" + - "traefik.http.routers.librenms-https.entrypoints=https" + - "traefik.http.routers.librenms-https.service=librenms-service" + - "traefik.http.routers.librenms-https.tls=true" +# - "traefik.http.routers.librenms-https.tls.certresolver=letsencrypt" +# - "traefik.http.routers.librenms-https.tls.domains[0].main=librenms.example.com" +# Middleware +# Service + - "traefik.http.services.librenms-service.loadbalancer.server.port=8000" +# env_file: +# - "./librenms.env" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=mariadb" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=60" + restart: always + +## dispatcher + dispatcher: + container_name: librenms-dispatcher + hostname: librenms-dispatcher + image: librenms/librenms:latest + depends_on: + - librenms + - redis: + condition: service_healthy + restart: true + volumes: + - "./librenms:/data" + networks: + - back_network +# env_file: +# - "./librenms.env" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=mariadb" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=60" + - "DISPATCHER_NODE_ID=dispatcher1" + - "SIDECAR_DISPATCHER=1" + restart: always + +## syslogng + syslogng: + container_name: librenms-syslog + hostname: librenms-syslogng + image: librenms/librenms:latest + depends_on: + - librenms + - redis: + condition: service_healthy + restart: true + ports: + - target: 514 + published: 514 + protocol: tcp + - target: 514 + published: 514 + protocol: udp + volumes: + - "./librenms:/data" + networks: + - back_network +# env_file: +# - "./librenms.env" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=mariadb" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=60" + - "SIDECAR_SYSLOGNG=1" + restart: always + +## snmptrapd + snmptrapd: + container_name: librenms-snmptrapd + hostname: librenms-snmptrapd + image: librenms/librenms:latest + depends_on: + - librenms + - redis: + condition: service_healthy + restart: true + ports: + - target: 162 + published: 162 + protocol: tcp + - target: 162 + published: 162 + protocol: udp + volumes: + - "./librenms:/data" + networks: + - back_network +# env_file: +# - "./librenms.env" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=mariadb" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=60" + - "SIDECAR_SNMPTRAPD=1" + restart: always diff --git a/Monitoring/librenms-officiel/librenms.env b/Monitoring/librenms-officiel/librenms.env new file mode 100644 index 00000000..d650129d --- /dev/null +++ b/Monitoring/librenms-officiel/librenms.env @@ -0,0 +1,16 @@ +MEMORY_LIMIT=256M +MAX_INPUT_VARS=1000 +UPLOAD_MAX_SIZE=16M +OPCACHE_MEM_SIZE=128 +REAL_IP_FROM=0.0.0.0/32 +REAL_IP_HEADER=X-Forwarded-For +LOG_IP_VAR=http_x_forwarded_for + +CACHE_DRIVER=redis +SESSION_DRIVER=redis +REDIS_HOST=redis + +LIBRENMS_SNMP_COMMUNITY=librenmsdocker + +LIBRENMS_WEATHERMAP=false +LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * * diff --git a/Monitoring/librenms-officiel/msmtpd.env b/Monitoring/librenms-officiel/msmtpd.env new file mode 100644 index 00000000..170bec99 --- /dev/null +++ b/Monitoring/librenms-officiel/msmtpd.env @@ -0,0 +1,10 @@ +# https://github.com/crazy-max/docker-msmtpd +SMTP_HOST=smtp.gmail.com +SMTP_PORT=587 +SMTP_TLS=on +SMTP_STARTTLS=on +SMTP_TLS_CHECKCERT=on +SMTP_AUTH=on +SMTP_USER=foo +SMTP_PASSWORD=bar +SMTP_FROM=foo@gmail.com