FIXME This page is not fully translated, yet. Please help completing the translation.
(remove this paragraph once the translation is finished)
Zabbix, dağıtım ve güncelleme prosedürünü hızlandırmak için her bir Zabbix bileşeninin taşınabilir ve kendine yeterli konteynırını Docker imajları olarak sağlar.
Zabbix bileşenleri MySQL ve PostgreSQL veritabanı desteği, Apache2 ve Nginx web sunucusu desteği ile birlikte gelir. Bu imajlar farklı imajlara ayrılmıştır.
Zabbix bileşenleri Ubuntu ve Alpine Linux temel imajlarında sağlanmaktadır:
Tüm imajlar, temel imajlar güncellenirse en yeni imajları yeniden inşa edecek şekilde yapılandırılmıştır.
Herkes, github.com üzerindeki Zabbix resmi deposunu kullanarak Docker dosya değişikliklerini izleyebilir. Projeyi çatallayabilir veya resmi Docker dosyalarına dayalı olarak kendi imajlarınızı oluşturabilirsiniz.
Tüm Zabbix bileşenleri aşağıdaki Docker depoları içinde bulunur:
Ayrıca SNMP trap desteği de vardır. Yalnızca Ubuntu Trusty'e dayalı ek depo (zabbix/zabbix-snmptraps) olarak sağlanmaktadır. Zabbix sunucusu ve Zabbix vekil sunucusu ile bağlantılı olabilir.
Her Zabbix bileşenleri deposu aşağıdaki etiketleri içerir:
latest
- Alpine Linux imajı temelli bir Zabbix bileşeninin en son kararlı sürümüalpine-latest
- Alpine Linux imajı temelli bir Zabbix bileşeninin en son kararlı sürümüubuntu-latest
- Ubuntu imajı temelli bir Zabbix bileşeninin en son kararlı sürümüalpine-3.2-latest
- Alpine Linux imajı temelli bir Zabbix 3.2 bileşeninin en son alt sürümüubuntu-3.2-latest
- Ubuntu imajı temelli bir Zabbix 3.2 bileşeninin en son alt sürümüalpine-3.2.*
- Alpine Linux imajı temelli bir Zabbix 3.2 bileşeninin farklı alt sürümleri, burada *
Zabbix bileşeninin alt sürümüdürubuntu-3.2.*
- Ubuntu imajı temelli bir Zabbix 3.2 bileşeninin farklı alt sürümleri, burada *
Zabbix bileşeninin alt sürümüdürTüm Zabbix bileşen imajları yapılandırmayı kontrol etmek için ortam değişkenleri sağlar. Bu ortam değişkenleri, her bir bileşen deposunda listelenir. Bu ortam değişkenleri, Zabbix yapılandırma dosyalarından gelen seçeneklerdir ancak adlandırma yöntemi farklıdır. Örneğin, ZBX_LOGSLOWQUERIES
değişkeni Zabbix sunucusu ve Zabbix vekil sunucusu yapılandırma dosyalarındaki LogSlowQueries
değişkenine eşittir.
Bazı yapılandırma seçeneklerinin değiştirilmesine izin verilmez. Örneğin, PIDFile
ve LogType
.
Bazı bileşenler, resmi Zabbix yapılandırma dosyalarında bulunmayan özel ortam değişkenlerine sahiptir:
Değişken | Bileşenler | Açıklama |
DB_SERVER_HOST |
Sunucu Vekil sunucu Web arayüzü |
Bu değişken, MySQL veya PostgreSQL sunucusunun IP veya DNS adıdır. Öntanımlı değer, MySQL ve PostgreSQL için sırasıyla mysql-server ve postgres-server adlarıdır |
DB_SERVER_PORT |
Sunucu Vekil sunucu Web arayüzü |
Bu değişken, MySQL veya PostgreSQL sunucusunun portudur. Öntanımlı olarak, değer sırasıyla '3306' veya '5432' şeklindedir. |
MYSQL_USER |
Sunucu Vekil sunucu Web arayüzü |
MySQL veritabanı kullanıcısı. Öntanımlı olarak değer 'zabbix' şeklindedir. |
MYSQL_PASSWORD |
Sunucu Vekil sunucu Web arayüzü |
MySQL veritabanı parolası. Öntanımlı olarak değer 'zabbix' şeklindedir. |
MYSQL_DATABASE |
Sunucu Vekil sunucu Web arayüzü |
Zabbix veritabanı adı. Öntanımlı olarak değer, Zabbix sunucusu için 'zabbix' ve Zabbix vekil sunucusu için 'zabbix_proxy' şeklindedir. |
POSTGRES_USER |
Sunucu Web arayüzü |
PostgreSQL veritabanı kullanıcısı. Öntanımlı olarak değer 'zabbix' şeklindedir. |
POSTGRES_PASSWORD |
Sunucu Web arayüzü |
PostgreSQL veritabanı parolası. Öntanımlı olarak değer 'zabbix' şeklindedir. |
POSTGRES_DB |
Sunucu Web arayüzü |
Zabbix veritabanı adı. Öntanımlı olarak değer, Zabbix sunucusu için 'zabbix' ve Zabbix vekil sunucusu için 'zabbix_proxy' şeklindedir. |
TZ |
Web arayüzü | PHP biçiminde saat dilimi. Desteklenen saat dilimlerinin tam listesi php.net üzerinden edinilebilir. Öntanımlı olarak, değer 'Europe/Riga' şeklindedir. |
ZBX_SERVER_NAME |
Web arayüzü | Web arayüzünün sağ üst köşesindeki görünür Zabbix kurulum adı. Öntanımlı olarak, değer 'Zabbix Docker' şeklindedir |
ZBX_JAVAGATEWAY_ENABLE |
Sunucu Vekil sunucu |
Java ile ilgili kontrolleri toplamak için Zabbix Java ağ geçidiyle iletişim kurmayı sağlar. Öntanımlı olarak, değer "false" şeklindedir |
ZBX_ENABLE_SNMP_TRAPS |
Sunucu Vekil sunucu |
SNMP trap özelliğini etkinleştirir. It requires Zabbix sunucusu veya Zabbix vekil sunucusu için zabbix-snmptraps örneği ve /var/lib/zabbix/snmptraps paylaşımlı disk birimi gerektirir. |
İmajlar bazı bağlantı noktalarını kullanmaya izin verir. Bu bağlantı noktaları farklıdır ve Zabbix bileşen türüne göre değişir:
Disk birimi | Açıklama |
Zabbix aracısı | |
/etc/zabbix/zabbix_agentd.d | Bu disk birimi, *.conf dosyalarını içermesine ve UserParameter özelliğini kullanarak Zabbix aracısının genişletilmesine izin verir |
/var/lib/zabbix/modules | Bu disk birimi, ek modülleri yüklemeye ve LoadModule özelliğini kullanarak Zabbix aracısının genişletilmesine izin verir |
/var/lib/zabbix/enc | Bu disk birimi, TLS ile ilgili dosyaları depolamak için kullanılır. Bu dosya isimleri, ZBX_TLSCAFILE , ZBX_TLSCRLFILE , ZBX_TLSKEY_FILE ve ZBX_TLSPSKFILE ortam değişkenleri kullanılarak belirtilir |
Zabbix server | |
/usr/lib/zabbix/alertscripts | The volume is used for custom alert scripts. It is the AlertScriptsPath parameter in zabbix_server.conf |
/usr/lib/zabbix/externalscripts | The volume is used by external checks. It is the ExternalScripts parameter in zabbix_server.conf |
/var/lib/zabbix/modules | The volume allows to load additional modules and extend Zabbix server using the LoadModule feature |
/var/lib/zabbix/enc | The volume is used to store TLS related files. These file names are specified using ZBX_TLSCAFILE , ZBX_TLSCRLFILE , ZBX_TLSKEY_FILE and ZBX_TLSPSKFILE environment variables |
/var/lib/zabbix/ssl/certs | The volume is used as location of SSL client certificate files for client authentication. It is the SSLCertLocation parameter in zabbix_server.conf |
/var/lib/zabbix/ssl/keys | The volume is used as location of SSL private key files for client authentication. It is the SSLKeyLocation parameter in zabbix_server.conf |
/var/lib/zabbix/ssl/ssl_ca | The volume is used as location of certificate authority (CA) files for SSL server certificate verification. It is the SSLCALocation parameter in zabbix_server.conf |
/var/lib/zabbix/snmptraps | The volume is used as location of snmptraps.log file. It could be shared by zabbix-snmptraps container and inherited using the volumes_from Docker option while creating a new instance of Zabbix server. SNMP trap processing feature could be enabled by using shared volume and switching the ZBX_ENABLE_SNMP_TRAPS environment variable to 'true' |
/var/lib/zabbix/mibs | The volume allows to add new MIB files. It does not support subdirectories, all MIBs must be placed in /var/lib/zabbix/mibs |
Zabbix proxy | |
/usr/lib/zabbix/externalscripts | The volume is used by external checks. It is the ExternalScripts parameter in zabbix_proxy.conf |
/var/lib/zabbix/modules | The volume allows to load additional modules and extend Zabbix server using the LoadModule feature |
/var/lib/zabbix/enc | The volume is used to store TLS related files. These file names are specified using ZBX_TLSCAFILE , ZBX_TLSCRLFILE , ZBX_TLSKEY_FILE and ZBX_TLSPSKFILE environment variables |
/var/lib/zabbix/ssl/certs | The volume is used as location of SSL client certificate files for client authentication. It is the SSLCertLocation parameter in zabbix_proxy.conf |
/var/lib/zabbix/ssl/keys | The volume is used as location of SSL private key files for client authentication. It is the SSLKeyLocation parameter in zabbix_proxy.conf |
/var/lib/zabbix/ssl/ssl_ca | The volume is used as location of certificate authority (CA) files for SSL server certificate verification. It is the SSLCALocation parameter in zabbix_proxy.conf |
/var/lib/zabbix/snmptraps | The volume is used as location of snmptraps.log file. It could be shared by the zabbix-snmptraps container and inherited using the volumes_from Docker option while creating a new instance of Zabbix server. SNMP trap processing feature could be enabled by using shared volume and switching the ZBX_ENABLE_SNMP_TRAPS environment variable to 'true' |
/var/lib/zabbix/mibs | The volume allows to add new MIB files. It does not support subdirectories, all MIBs must be placed in /var/lib/zabbix/mibs |
Zabbix web interface based on Apache2 web server | |
/etc/ssl/apache2 | The volume allows to enable HTTPS for Zabbix web interface. The volume must contain the two ssl.crt and ssl.key files prepared for Apache2 SSL connections |
Zabbix web interface based on Nginx web server | |
/etc/ssl/nginx | The volume allows to enable HTTPS for Zabbix web interface. The volume must contain the two ssl.crt , ssl.key files and dhparam.pem prepared for Nginx SSL connections |
Zabbix snmptraps | |
/var/lib/zabbix/snmptraps | The volume contains the snmptraps.log log file named with received SNMP traps |
/var/lib/zabbix/mibs | The volume allows to add new MIB files. It does not support subdirectories, all MIBs must be placed in /var/lib/zabbix/mibs |
For additional information use Zabbix official repositories in Docker Hub.
** Örnek 1 **
Bu örnek, MySQL veritabanı desteği olan Zabbix sunucusunu, Nginx web sunucusuna dayanan Zabbix web arayüzü ve Zabbix Java ağ geçidinin nasıl çalıştırılacağını göstermektedir.
1. Boş MySQL sunucu örneği çalıştırın
# docker run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-d mysql:5.7
--character-set-server=utf8 --collation-server=utf8_bin
2. Zabbix Java ağ geçidi örneği çalıştırın
3. Zabbix sunucu örneği çalıştırın ve bu örneği oluşturulan MySQL sunucu örneğiyle bağlayın
# docker run --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
--link mysql-server:mysql \
--link zabbix-java-gateway:zabbix-java-gateway \
-p 10051:10051 \
-d zabbix/zabbix-server-mysql:latest
Zabbix server instance exposes 10051/TCP port (Zabbix trapper) to host machine.
4. Start Zabbix web interface and link the instance with created MySQL server and Zabbix server instances
# docker run --name zabbix-web-nginx-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
--link mysql-server:mysql \
--link zabbix-server-mysql:zabbix-server \
-p 80:80 \
-d zabbix/zabbix-web-nginx-mysql:latest
Zabbix web interface instance exposes 80/TCP port (HTTP) to host machine.
** Example 2 **
The example demonstrates how to run Zabbix server with PostgreSQL database support, Zabbix web interface based on the Nginx web server and SNMP trap feature.
1. Start empty PostgreSQL server instance
# docker run --name postgres-server -t \
-e POSTGRES_USER="zabbix" \
-e POSTGRES_PASSWORD="zabbix" \
-e POSTGRES_DB="zabbix_pwd" \
-d postgres:latest
2. Start Zabbix snmptraps instance
# docker run --name zabbix-snmptraps -t \
-v /zbx_instance/snmptraps:/var/lib/zabbix/snmptraps:rw \
-v /var/lib/zabbix/mibs:/usr/share/snmp/mibs:ro \
-p 162:162/udp \
-d zabbix/zabbix-snmptraps:latest
Zabbix snmptrap instance exposes the 162/UDP port (SNMP traps) to host machine.
3. Start Zabbix server instance and link the instance with created PostgreSQL server instance
# docker run --name zabbix-server-pgsql -t \
-e DB_SERVER_HOST="postgres-server" \
-e POSTGRES_USER="zabbix" \
-e POSTGRES_PASSWORD="zabbix" \
-e POSTGRES_DB="zabbix_pwd" \
-e ZBX_ENABLE_SNMP_TRAPS="true" \
--link postgres-server:postgres \
-p 10051:10051 \
--volumes-from zabbix-snmptraps \
-d zabbix/zabbix-server-pgsql:latest
Zabbix server instance exposes the 10051/TCP port (Zabbix trapper) to host machine.
4. Start Zabbix web interface and link the instance with created PostgreSQL server and Zabbix server instances
# docker run --name zabbix-web-nginx-pgsql -t \
-e DB_SERVER_HOST="postgres-server" \
-e POSTGRES_USER="zabbix" \
-e POSTGRES_PASSWORD="zabbix" \
-e POSTGRES_DB="zabbix_pwd" \
--link postgres-server:postgres \
--link zabbix-server-pgsql:zabbix-server \
-p 443:443 \
-v /etc/ssl/nginx:/etc/ssl/nginx:ro \
-d zabbix/zabbix-web-nginx-pgsql:latest
Zabbix web interface instance exposes the 443/TCP port (HTTPS) to host machine.
Directory /etc/ssl/nginx must contain certificate with required name.
Zabbix provides compose files also for defining and running multi-container Zabbix components in Docker. These compose files are available in Zabbix docker official repository on github.com: https://github.com/zabbix/zabbix-docker. These compose files are added as examples, they are overloaded. For example, they contain proxies with MySQL and SQLite3 support.
There are a few different versions of compose files:
File name | Description |
docker-compose_v2_alpine_mysql_latest.yaml |
The compose file runs the latest version of Zabbix 3.2 components on Alpine Linux with MySQL database support. |
docker-compose_v2_alpine_mysql_local.yaml |
The compose file locally builds the latest version of Zabbix 3.2 and runs Zabbix components on Alpine Linux with MySQL database support. |
docker-compose_v2_alpine_pgsql_latest.yaml |
The compose file runs the latest version of Zabbix 3.2 components on Alpine Linux with PostgreSQL database support. |
docker-compose_v2_alpine_pgsql_local.yaml |
The compose file locally builds the latest version of Zabbix 3.2 and runs Zabbix components on Alpine Linux with PostgreSQL database support. |
docker-compose_v2_ubuntu_mysql_latest.yaml |
The compose file runs the latest version of Zabbix 3.2 components on Ubuntu 14.04 with MySQL database support. |
docker-compose_v2_ubuntu_mysql_local.yaml |
The compose file locally builds the latest version of Zabbix 3.2 and runs Zabbix components on Ubuntu 14.04 with MySQL database support. |
docker-compose_v2_ubuntu_pgsql_latest.yaml |
The compose file runs the latest version of Zabbix 3.2 components on Ubuntu 14.04 with PostgreSQL database support. |
docker-compose_v2_ubuntu_pgsql_local.yaml |
The compose file locally builds the latest version of Zabbix 3.2 and runs Zabbix components on Ubuntu 14.04 with PostgreSQL database support. |
Available Docker compose files support only version 2 of Docker Compose.
Compose files are configured to support local storage on a host machine. Docker Compose will create a zbx_env
directory in the folder with the compose file when you run Zabbix components using the compose file. The directory will contain the same structure as described above in the Volumes section and directory for database storage.
There are also volumes in read-only mode for /etc/localtime
and /etc/timezone
files.
In the same directory with compose files on github.com you can find files with default environment variables for each component in compose file. These environment files are named like .env_<type of component>
.
** Örnek 1 **
Komut, her Zabbix bileşeni için en son Zabbix 3.2 imajlarını indirecek ve bunları detach kipinde çalıştıracaktır.
github.com'daki resmi Zabbix deposundan .env_<bileşen türü>
dosyalarını indirmeyi unutmayın.
** Örnek 2 **
Komut, Ubuntu 14.04 temel imajını indirecek, sonra Zabbix 3.2 bileşenlerini yerel olarak inşa edecek ve bunları detach kipinde çalıştıracaktır.