5 התקנה מקונטיינרים

Overview

This page describes how to deploy Zabbix using Docker or Docker Compose.

Docker Compose is the quickest way to deploy Zabbix. It reads a configuration file and automatically starts all the containers that make up a complete Zabbix setup, in the correct order.

Docker (manual deployment) achieves the same result by deploying each component step by step, which may suit users already managing an existing Docker environment.

Since Zabbix 6.0, deterministic triggers need to be created during the installation. If binary logging is enabled for MySQL/MariaDB, this requires superuser privileges or setting the variable/configuration parameter log_bin_trust_function_creators = 1. See Database creation scripts for instructions how to set the variable.

Note that if executing from a console, the variable will only be set temporarily and will be dropped when a Docker is restarted. In this case, keep your SQL service running, only stop zabbix-server service by running docker compose down zabbix-server and then docker compose up -d zabbix-server.

Alternatively, you can set this variable in the configuration file.

Prerequisites

Before you begin, make sure Docker is installed on your system. If it is not, follow the Docker installation guide.

Some Zabbix components require specific ports to be open on the host running Docker (e.g., 10051/TCP for Zabbix server, 162/UDP for SNMP traps). See Requirements for a full list of ports used by Zabbix components. For Zabbix server and agent, the default port can be changed by setting the ZBX_LISTENPORT environment variable on the respective container.

מבנה

כל רכיבי Zabbix זמינים ב-Docker הבא מאגרים:

בנוסף יש תמיכה במלכודות SNMP. זה מסופק כתוספת מאגר (zabbix/zabbix-snmptraps) מבוסס על Ubuntu Trusty בלבד. זה יכול להיות מקושר לשרת Zabbix ו פרוקסי של Zabbix.

גרסאות

כל מאגר של רכיבי Zabbix מכיל את התגים הבאים:

  • האחרון - הגרסה היציבה האחרונה של רכיב Zabbix המבוסס על תמונת לינוקס אלפינית
  • alpine-latest - הגרסה היציבה האחרונה של רכיב Zabbix מבוסס על תמונת Alpine Linux
  • ubuntu-latest - הגרסה היציבה האחרונה של רכיב מבוסס Zabbix על תמונת אובונטו
  • alpine-6.0-latest - הגרסה המשנית האחרונה של רכיב Zabbix 6.0 מבוסס על תמונת Alpine Linux
  • ubuntu-6.0-latest - הגרסה המשנית האחרונה של רכיב Zabbix 6.0 מבוסס על תמונת אובונטו
  • alpine-6.0.* - גרסאות משניות שונות של רכיב Zabbix 6.0 מבוסס על תמונת Alpine Linux, כאשר * היא הגרסה המשנית של רכיב Zabbix
  • ubuntu-6.0.* - גרסאות משניות שונות של רכיב Zabbix 6.0 מבוסס על תמונת אובונטו, כאשר * היא הגרסה המשנית של Zabbix רְכִיב

Docker Compose

Zabbix מספקת קובצי חיבור גם להגדרה והרצה רכיבי Zabbix מרובי מכולות ב-Docker. קבצי חיבור אלה הם זמין במאגר הרשמי של Zabbix docker באתר github.com: https://github.com/zabbix/zabbix-docker. קבצי חיבור אלה מתווספים כדוגמאות, הם עמוסים יתר על המידה. לדוגמה, הם מכילים פרוקסי עם תמיכה ב-MySQL ו- SQLite3.

ישנן כמה גרסאות שונות של קובצי חיבור:

שם הקובץ תיאור
docker-compose_v3_alpine_mysql_latest.yaml קובץ החיבור מריץ את הגרסה העדכנית ביותר של רכיבי Zabbix 6.0 ב-Alpine Linux עם תמיכה במסד נתונים של MySQL.
docker-compose_v3_alpine_mysql_local.yaml קובץ החיבור בונה באופן מקומי את הגרסה העדכנית ביותר של Zabbix 6.0 ומריץ רכיבי Zabbix ב-Alpine Linux עם תמיכה במסד נתונים של MySQL.
docker-compose_v3_alpine_pgsql_latest.yaml קובץ החיבור מריץ את הגרסה העדכנית ביותר של רכיבי Zabbix 6.0 ב-Alpine Linux עם תמיכה במסד נתונים PostgreSQL.
docker-compose_v3_alpine_pgsql_local.yaml קובץ החיבור בונה באופן מקומי את הגרסה האחרונה של Zabbix 6.0 ומריץ רכיבי Zabbix על Alpine Linux עם תמיכה במסד נתונים PostgreSQL.
docker-compose_v3_centos_mysql_latest.yaml קובץ החיבור מריץ את הגרסה העדכנית ביותר של רכיבי Zabbix 6.0 ב-CentOS 8 עם תמיכה במסד נתונים של MySQL.
docker-compose_v3_centos_mysql_local.yaml קובץ החיבור בונה באופן מקומי את הגרסה העדכנית ביותר של Zabbix 6.0 ומריץ רכיבי Zabbix על CentOS 8 עם תמיכה במסד הנתונים של MySQL.
docker-compose_v3_centos_pgsql_latest.yaml קובץ החיבור מריץ את הגרסה העדכנית ביותר של רכיבי Zabbix 6.0 על CentOS 8 עם תמיכה במסד נתונים PostgreSQL.
docker-compose_v3_centos_pgsql_local.yaml קובץ החיבור בונה באופן מקומי את הגרסה העדכנית ביותר של Zabbix 6.0 ומריץ רכיבי Zabbix על CentOS 8 עם תמיכה במסד נתונים PostgreSQL.
docker-compose_v3_ubuntu_mysql_latest.yaml קובץ החיבור מריץ את הגרסה העדכנית ביותר של רכיבי Zabbix 6.0 ב-Ubuntu 20.04 עם תמיכה במסד נתונים של MySQL.
docker-compose_v3_ubuntu_mysql_local.yaml קובץ החיבור בונה באופן מקומי את הגרסה העדכנית ביותר של Zabbix 6.0 ומריץ רכיבי Zabbix על אובונטו 20.04 עם תמיכה במסד נתונים של MySQL.
docker-compose_v3_ubuntu_pgsql_latest.yaml קובץ החיבור מריץ את הגרסה העדכנית ביותר של רכיבי Zabbix 6.0 על אובונטו 20.04 עם תמיכה במסד נתונים PostgreSQL.
docker-compose_v3_ubuntu_pgsql_local.yaml קובץ החיבור בונה באופן מקומי את הגרסה האחרונה של Zabbix 6.0 ומריץ רכיבי Zabbix על אובונטו 20.04 עם תמיכה במסד נתונים PostgreSQL.

::: שימו לב חשוב קבצי חיבור Docker זמינים תומכים בגרסה 3 של Docker Compose. :::

משתני סביבה

כל התמונות של רכיבי Zabbix מספקות משתני סביבה לשליטה תְצוּרָה. משתני סביבה אלו מפורטים בכל רכיב מאגר. משתני סביבה אלו הם אופציות של Zabbix קבצי תצורה, אך עם שיטת שמות שונה. לדוגמה, ZBX_LOGSLOWQUERIES שווה ל-LogSlowQueries משרת Zabbix ו- קבצי תצורת פרוקסי של Zabbix.

::: שימו לב חשוב חלק מאפשרויות התצורה אינן מורשות לעשות זאת שינוי. לדוגמה, PIDFile ו-LogType. :::

לחלק מהרכיבים יש משתני סביבה ספציפיים, שאין להם קיימים בקובצי התצורה הרשמיים של Zabbix:

משתנה רכיבים תיאור
DB_SERVER_HOST שרת
פרוקסי
ממשק אינטרנט
משתנה זה הוא שם IP או DNS של שרת MySQL או PostgreSQL.
כברירת מחדל, הערך הוא mysql-server או postgres-server עבור MySQL או PostgreSQL בהתאמה
DB_SERVER_PORT שרת
פרוקסי
ממשק אינטרנט
משתנה זה הוא יציאה של שרת MySQL או PostgreSQL.
כברירת מחדל, הערך הוא '3306' או '5432' בהתאמה.
MYSQL_USER שרת
פרוקסי
ממשק אינטרנט
משתמש במסד נתונים MySQL.
כברירת מחדל, הערך הוא 'zabbix'.
MYSQL_PASSWORD שרת
פרוקסי
ממשק אינטרנט
סיסמת מסד נתונים של MySQL.
כברירת מחדל, הערך הוא 'zabbix'.
MYSQL_DATABASE שרת
פרוקסי
ממשק אינטרנט
שם מסד נתונים של Zabbix.
כברירת מחדל, הערך הוא 'zabbix' עבור שרת Zabbix ו-'zabbix_proxy' עבור Zabbix proxy.
POSTGRES_USER שרת
ממשק אינטרנט
משתמש במסד נתונים PostgreSQL.
כברירת מחדל, הערך הוא 'zabbix'.
POSTGRES_PASSWORD שרת
ממשק אינטרנט
סיסמת מסד נתונים PostgreSQL.
כברירת מחדל, הערך הוא 'zabbix'.
POSTGRES_DB שרת
ממשק אינטרנט
שם מסד נתונים של Zabbix.
כברירת מחדל, הערך הוא 'zabbix' עבור שרת Zabbix ו-'zabbix_proxy' עבור Zabbix proxy.
PHP_TZ ממשק אינטרנט אזור זמן בפורמט PHP. רשימה מלאה של אזורי זמן נתמכים זמינה ב-php.net.
כברירת מחדל, הערך הוא 'אירופה/ריגה'.
ZBX_SERVER_NAME ממשק אינטרנט שם התקנת Zabbix גלוי בפינה הימנית העליונה של ממשק האינטרנט.
כברירת מחדל, הערך הוא 'Zabbix Docker'
ZBX_JAVAGATEWAY_ENABLE שרת
פרוקסי
מאפשר תקשורת עם Zabbix Java gateway כדי לאסוף בדיקות הקשורות ל-Java.
כברירת מחדל, הערך הוא "false"
ZBX_ENABLE_SNMP_TRAPS שרת
פרוקסי
מאפשר תכונת SNMP trap. זה דורש מופע zabbix-snmptraps ונפח משותף /var/lib/zabbix/snmptraps לשרת Zabbix או ל-Proxy Zabbix.
משתני סביבה

כל התמונות של רכיבי Zabbix מספקות משתני סביבה לשליטה תְצוּרָה. משתני סביבה אלו מפורטים בכל רכיב מאגר. משתני סביבה אלו הם אופציות של Zabbix קבצי תצורה, אך עם שיטת שמות שונה. לדוגמה, ZBX_LOGSLOWQUERIES שווה ל-LogSlowQueries משרת Zabbix ו- קבצי תצורת פרוקסי של Zabbix.

::: שימו לב חשוב חלק מאפשרויות התצורה אינן מורשות לעשות זאת שינוי. לדוגמה, PIDFile ו-LogType. :::

לחלק מהרכיבים יש משתני סביבה ספציפיים, שאין להם קיימים בקובצי התצורה הרשמיים של Zabbix:

משתנה רכיבים תיאור
DB_SERVER_HOST שרת
פרוקסי
ממשק אינטרנט
משתנה זה הוא שם IP או DNS של שרת MySQL או PostgreSQL.
כברירת מחדל, הערך הוא mysql-server או postgres-server עבור MySQL או PostgreSQL בהתאמה
DB_SERVER_PORT שרת
פרוקסי
ממשק אינטרנט
משתנה זה הוא יציאה של שרת MySQL או PostgreSQL.
כברירת מחדל, הערך הוא '3306' או '5432' בהתאמה.
MYSQL_USER שרת
פרוקסי
ממשק אינטרנט
משתמש במסד נתונים MySQL.
כברירת מחדל, הערך הוא 'zabbix'.
MYSQL_PASSWORD שרת
פרוקסי
ממשק אינטרנט
סיסמת מסד נתונים של MySQL.
כברירת מחדל, הערך הוא 'zabbix'.
MYSQL_DATABASE שרת
פרוקסי
ממשק אינטרנט
שם מסד נתונים של Zabbix.
כברירת מחדל, הערך הוא 'zabbix' עבור שרת Zabbix ו-'zabbix_proxy' עבור Zabbix proxy.
POSTGRES_USER שרת
ממשק אינטרנט
משתמש במסד נתונים PostgreSQL.
כברירת מחדל, הערך הוא 'zabbix'.
POSTGRES_PASSWORD שרת
ממשק אינטרנט
סיסמת מסד נתונים PostgreSQL.
כברירת מחדל, הערך הוא 'zabbix'.
POSTGRES_DB שרת
ממשק אינטרנט
שם מסד נתונים של Zabbix.
כברירת מחדל, הערך הוא 'zabbix' עבור שרת Zabbix ו-'zabbix_proxy' עבור Zabbix proxy.
PHP_TZ ממשק אינטרנט אזור זמן בפורמט PHP. רשימה מלאה של אזורי זמן נתמכים זמינה ב-php.net.
כברירת מחדל, הערך הוא 'אירופה/ריגה'.
ZBX_SERVER_NAME ממשק אינטרנט שם התקנת Zabbix גלוי בפינה הימנית העליונה של ממשק האינטרנט.
כברירת מחדל, הערך הוא 'Zabbix Docker'
ZBX_JAVAGATEWAY_ENABLE שרת
פרוקסי
מאפשר תקשורת עם Zabbix Java gateway כדי לאסוף בדיקות הקשורות ל-Java.
כברירת מחדל, הערך הוא "false"
ZBX_ENABLE_SNMP_TRAPS שרת
פרוקסי
מאפשר תכונת SNMP trap. זה דורש מופע zabbix-snmptraps ונפח משותף /var/lib/zabbix/snmptraps לשרת Zabbix או ל-Proxy Zabbix.

Makefile

The Zabbix Dockerfiles repository also provides a Makefile as a shortcut for common Docker Compose tasks. Instead of using the full docker compose command, you can use shorter make commands (run make help to see the available options):

# Default deployment (Zabbix server, web interface, MySQL, all on Alpine Linux)
make up

# Custom deployment (Zabbix server, web interface with custom Nginx ports, PostgreSQL, all on Ubuntu)
make up \
  OS=ubuntu \
  DB=pgsql \
  ZABBIX_WEB_NGINX_HTTP_PORT=8282 \
  ZABBIX_WEB_NGINX_HTTPS_PORT=8443

When stopping or removing containers, always specify the same database type that was deployed (e.g., make down DB=pgsql).

By default, make up starts only a minimal set of services (Zabbix server, web interface, and database). This keeps the setup lightweight and avoids starting components that may not be needed. To include additional components, you can use the following Compose profiles:

# Default deployment + Zabbix agent, Java gateway, web service, and SNMP traps:
make up COMPOSE_PROFILES=full

# COMPOSE_PROFILES=full + Zabbix proxy (MySQL and SQLite3):
make up COMPOSE_PROFILES=all

Initial configuration

After downloading the images, start the containers by executing docker run command followed by additional arguments to specify required environment variables and/or mount points. Some configuration examples are provided below.

Zabbix must not be run as PID1/as an init process in containers.

משתני סביבה

כל התמונות של רכיבי Zabbix מספקות משתני סביבה לשליטה תְצוּרָה. משתני סביבה אלו מפורטים בכל רכיב מאגר. משתני סביבה אלו הם אופציות של Zabbix קבצי תצורה, אך עם שיטת שמות שונה. לדוגמה, ZBX_LOGSLOWQUERIES שווה ל-LogSlowQueries משרת Zabbix ו- קבצי תצורת פרוקסי של Zabbix.

::: שימו לב חשוב חלק מאפשרויות התצורה אינן מורשות לעשות זאת שינוי. לדוגמה, PIDFile ו-LogType. :::

לחלק מהרכיבים יש משתני סביבה ספציפיים, שאין להם קיימים בקובצי התצורה הרשמיים של Zabbix:

משתנה רכיבים תיאור
DB_SERVER_HOST שרת
פרוקסי
ממשק אינטרנט
משתנה זה הוא שם IP או DNS של שרת MySQL או PostgreSQL.
כברירת מחדל, הערך הוא mysql-server או postgres-server עבור MySQL או PostgreSQL בהתאמה
DB_SERVER_PORT שרת
פרוקסי
ממשק אינטרנט
משתנה זה הוא יציאה של שרת MySQL או PostgreSQL.
כברירת מחדל, הערך הוא '3306' או '5432' בהתאמה.
MYSQL_USER שרת
פרוקסי
ממשק אינטרנט
משתמש במסד נתונים MySQL.
כברירת מחדל, הערך הוא 'zabbix'.
MYSQL_PASSWORD שרת
פרוקסי
ממשק אינטרנט
סיסמת מסד נתונים של MySQL.
כברירת מחדל, הערך הוא 'zabbix'.
MYSQL_DATABASE שרת
פרוקסי
ממשק אינטרנט
שם מסד נתונים של Zabbix.
כברירת מחדל, הערך הוא 'zabbix' עבור שרת Zabbix ו-'zabbix_proxy' עבור Zabbix proxy.
POSTGRES_USER שרת
ממשק אינטרנט
משתמש במסד נתונים PostgreSQL.
כברירת מחדל, הערך הוא 'zabbix'.
POSTGRES_PASSWORD שרת
ממשק אינטרנט
סיסמת מסד נתונים PostgreSQL.
כברירת מחדל, הערך הוא 'zabbix'.
POSTGRES_DB שרת
ממשק אינטרנט
שם מסד נתונים של Zabbix.
כברירת מחדל, הערך הוא 'zabbix' עבור שרת Zabbix ו-'zabbix_proxy' עבור Zabbix proxy.
PHP_TZ ממשק אינטרנט אזור זמן בפורמט PHP. רשימה מלאה של אזורי זמן נתמכים זמינה ב-php.net.
כברירת מחדל, הערך הוא 'אירופה/ריגה'.
ZBX_SERVER_NAME ממשק אינטרנט שם התקנת Zabbix גלוי בפינה הימנית העליונה של ממשק האינטרנט.
כברירת מחדל, הערך הוא 'Zabbix Docker'
ZBX_JAVAGATEWAY_ENABLE שרת
פרוקסי
מאפשר תקשורת עם Zabbix Java gateway כדי לאסוף בדיקות הקשורות ל-Java.
כברירת מחדל, הערך הוא "false"
ZBX_ENABLE_SNMP_TRAPS שרת
פרוקסי
מאפשר תכונת SNMP trap. זה דורש מופע zabbix-snmptraps ונפח משותף /var/lib/zabbix/snmptraps לשרת Zabbix או ל-Proxy Zabbix.