Datenbank Container
Zunächst ein Datenbank root Passwort erzeugen.
pwgen
PWD11111 PWD22222
Den Datenbank Container starten. Der Parameter -v kann ggf. entfallen, dann werden die Daten allerdings im docker container gespeichert und gehen mit dem löschen des Containers verloren. Falls man den -v Parameter angibt, muss das Verzeichnis auf dem Host existieren.
docker run --name zabbix-mariadb -e MYSQL_ROOT_PASSWORD=PWD11111 -v /opt/docker-mariadb/zabbix:/var/lib/mysql -d mariadb:10.3 --character-set-server=utf8 --collation-server=utf8_bin
Die Datenbank kurz testen.
docker exec zabbix-mariadb sh -c 'exec mysql -uroot -p"PWD11111" -e"show databases"'
Ein zabbix Datenbank und einen Datenbankbenutzer für zabbix anlegen.
docker exec zabbix-mariadb sh -c 'exec mysql -uroot -p"PWD11111" -e"CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_general_ci;"'
docker exec zabbix-mariadb sh -c 'exec mysql -uroot -p"PWD11111" -e"GRANT ALL ON zabbix.* TO zabbix IDENTIFIED BY \"PWD22222\";"'
Den neuen Benutzer kurz testen.
docker exec zabbix-mariadb sh -c 'exec mysql -u"zabbix" -p"PWD22222" -e"show tables" zabbix'
Java Gateway
EGOCMS bindet Lucene als Volltextsuchmaschine ein. Diese ist eine Java EE Applikation, die mit Tomcat läuft. Um diese zu Überwachung wird das Java Gateway benötigt.
docker run --name zabbix-java-gateway -d zabbix/zabbix-java-gateway:alpine-3.4-latest
Zabbix Server Container
docker run --name zabbix-server -p 10051:10051 -e DB_SERVER_HOST="zabbix-mariadb" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="PWD22222" -e ZBX_JAVAGATEWAY_ENABLE=true -d zabbix/zabbix-server-mysql:alpine-3.4-latest
Ggf. kann der Parameter "-e ZBX_JAVAGATEWAY_ENABLE=true" für die zusätzliche Überwachung von Java Applikationen gesetzt werden.
Den Datenbank Container mit dem Zabbix Server verbinden.
docker network create zabbix
docker network connect zabbix zabbix-mariadb
docker network connect zabbix zabbix-java-gateway
docker network connect zabbix zabbix-server
Start des Zabbix Servers kontrollieren.
docker logs zabbix-server
** Deploying Zabbix server with mysql database
** Preparing the system
** Preparing Zabbix server
********************
* DB_SERVER_HOST: zabbix-mariadb
* DB_SERVER_PORT: 3306
* DB_SERVER_DBNAME: zabbix
* DB_SERVER_ZBX_USER: root
* DB_SERVER_ZBX_PASS: wxyz1234
********************
**** MySQL server is not available. Waiting 5 seconds...
**** MySQL server is not available. Waiting 5 seconds...
** Creating 'root' user in MySQL database
** Database 'zabbix' does not exist. Creating...
** Creating 'zabbix' schema in MySQL
Zabbix WebUI
Den Zabbix WebUI Container starten und mit zabbix Netzwerk verbinden.
docker run --name zabbix-webui -p 80:80 -e DB_SERVER_HOST="zabbix-mariadb" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="PWD22222" -e ZBX_SERVER_HOST="zabbix-server" -e PHP_TZ="Europe/Berlin" -d zabbix/zabbix-web-nginx-mysql:alpine-3.4-latest
docker network connect zabbix zabbix-webui
Start der Zabbix WebUI kontrollieren.
docker logs zabbix-webui
** Deploying Zabbix frontend (nginx) with mysql database ** Preparing the system
** Preparing Zabbix web-interface
********************
* DB_SERVER_HOST: zabbix-mariadb
* DB_SERVER_PORT: 3306
* DB_SERVER_DBNAME: zabbix
* DB_SERVER_ZBX_USER: root
* DB_SERVER_ZBX_PASS: wxyz1234
********************
**** MySQL server is not available. Waiting 5 seconds...
**** MySQL server is not available. Waiting 5 seconds...
** Disable default vhosts
** Adding Zabbix virtual host (HTTP)
**** Impossible to enable SSL support for Nginx. Certificates are missed.
** Preparing Zabbix frontend configuration file
** Updating '/etc/php5/conf.d/99-zabbix.ini' parameter "max_execution_time": '600'... updated
** Updating '/etc/php5/conf.d/99-zabbix.ini' parameter "memory_limit": '128M'... updated
** Updating '/etc/php5/conf.d/99-zabbix.ini' parameter "post_max_size": '16M'... updated
** Updating '/etc/php5/conf.d/99-zabbix.ini' parameter "upload_max_filesize": '2M'... updated
** Updating '/etc/php5/conf.d/99-zabbix.ini' parameter "max_input_time": '300'... updated
** Updating '/etc/php5/conf.d/99-zabbix.ini' parameter "date.timezone": 'Europe/Berlin'... added
** Cleaning the system
########################################################
** Executing supervisord
2018-01-16 15:17:02,267 CRIT Set uid to user 0
2018-01-16 15:17:02,267 CRIT Set uid to user 0
2018-01-16 15:17:02,267 WARN Included extra file "/etc/supervisor/conf.d/supervisord_zabbix.conf" during parsing
2018-01-16 15:17:02,267 WARN Included extra file "/etc/supervisor/conf.d/supervisord_zabbix.conf" during parsing
2018-01-16 15:17:02,272 INFO RPC interface 'supervisor' initialized
2018-01-16 15:17:02,272 INFO RPC interface 'supervisor' initialized
2018-01-16 15:17:02,273 INFO supervisord started with pid 1
2018-01-16 15:17:02,273 INFO supervisord started with pid 1
2018-01-16 15:17:03,274 INFO spawned: 'nginx' with pid 33
2018-01-16 15:17:03,274 INFO spawned: 'nginx' with pid 33
2018-01-16 15:17:03,275 INFO spawned: 'php-fpm' with pid 34
2018-01-16 15:17:03,275 INFO spawned: 'php-fpm' with pid 34
[16-Jan-2018 15:17:03] WARNING: Nothing matches the include pattern '/etc/php5/fpm.d/*.conf' from /etc/php5/php-fpm.conf at line 15.
2018-01-16 15:17:04,396 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2018-01-16 15:17:04,396 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2018-01-16 15:17:04,396 INFO success: php-fpm entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2018-01-16 15:17:04,396 INFO success: php-fpm entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
Erstes Login mit Benutzer Admin und Passwort zabbix auf http://localhost:11080.
Es erscheint ein komplett leeres Dashboard.
Ändern Sie gleich das Passwort für den Admin und richten Sie weitere Benutzer ein.