2022-09-12 16:12:22 +05:00
2022-09-12 15:50:58 +05:00
2022-09-30 20:01:30 +05:00
2022-09-13 13:53:15 +05:00
2022-09-30 20:01:30 +05:00

zabbix-Dockerfile

Custom Zabbix container image.
This has 2 images, 1 for zabbix_server, nginx and php-pfm based on debian:11-slim
Another image that is being pulled from docker hub for mysql.
Mysql files are mounted at datadir.
startservices.sh contain script to start zabbix_server, nginx and php-fpm

Getting started

  • git clone and cd into git dir
  • Build zabbix image
  • cd into configdir and configure according to your set up.
git clone https://gitlab.com/alliedmaldives/ops/zabbix-dockerfile zabbix-docker
cd zabbix-docker
docker-compose up -d
xdg-open http://localhost:8000

Running production

This includes database config
copy paste this in docker-compose.yml
run docker compose up -d

version: '3.5'
services:
#########################
   zabbix:
      build: .
      image: zabbix
      volumes:
         - $PWD/configdir/etc/zabbix/zabbix_server.conf:/etc/zabbix/zabbix_server.conf
         - $PWD/configdir/etc/zabbix/nginx.conf:/etc/zabbix/nginx.conf
         - $PWD/configdir/etc/zabbix/web/zabbix.conf.php:/etc/zabbix/web/zabbix.conf.php
         - $PWD/configdir/etc/php/7.4/fpm/php-fpm.conf:/etc/php/7.4/fpm/php-fpm.conf
         - $PWD/datadir/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts
         - $PWD/datadir/usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts
      ports:
         - 8000:80
         - 10051:10051
      restart: always
#########################
   db:
      image: mysql:8
      environment:
        MYSQL_DATABASE: zabbix
        MYSQL_USER: zabbix
        MYSQL_PASSWORD: zabbix
        MYSQL_ALLOW_EMPTY_PASSWORD: true
      command:
           - mysqld
           - --character-set-server=utf8mb4
           - --collation-server=utf8mb4_bin
           - --skip-character-set-client-handshake
           - --default-authentication-plugin=mysql_native_password
      volumes:
          - $PWD/configdir/init/init.db:/docker-entrypoint-initdb.d
          - $PWD/datadir/mysql:/var/lib/mysql
      restart: always
      depends_on:
          - zabbix

To-do

  • mount all needed config dirs outside container. (currently only basic configs are there)
  • mount scirpt dirs outside container add alert and other custom scripts.
  • setup proper logging.
  • mount log files from nginx,php-fpm and zabbix into datadir.
  • monitor zabbix process,kill container if zabbix dies
Description
nginx, php-fpm, zabbix-server itself
Readme 3.5 MiB
Languages
Dockerfile 47.7%
PHP 42%
Shell 10.3%