Docker image of MariaDB optimized for Zabbix
5M+
Zabbix XXL is a standard Zabbix prepared for Docker world. You must install Zabbix package (rpm, deb, ...) in the old world. Similarly, you need to pull Zabbix Docker image in the Docker world. This Docker image contains standard Zabbix + additional XXL (community) extensions. Routine tasks such as import of Zabbix DB are automated, so it's prepared for easy deployment.
If you like or use this project, please provide feedback to author - Star it ★.
Overview of Monitoring Artist (dockerized) monitoring ecosystem:
This is a MariaDB 10.0 Docker zabbix/zabbix-db-mariadb image. Built on top of official centos:centos7 image. Inspired by Tutum's tutum/mariadb image.
Note: be aware that, by default MariaDB in this container is configured to use 1GB memory (innodb_buffer_pool_size in tuning.cnf). If you try to run it on node with less memory, it will fail.
Run the image as daemon and bind it to port 3306:
docker run \
-d \
--name zabbix-db \
-p 3306:3306 \
--env="MARIADB_USER=username" \
--env="MARIADB_PASS=my_password" \
--env="DB_innodb_buffer_pool_size=768M" \
monitoringartist/zabbix-db-mariadb:latest
You can use environmental variables to config MariaDB. Available variables:
| Variable | Default value |
|---|---|
| DB_max_allowed_packet | 64M |
| DB_open_files_limit | 4096 |
| DB_max_connections | 300 |
| DB_query_cache_size | 0 |
| DB_query_cache_type | 0 |
| DB_sync_binlog | 0 |
| DB_innodb_buffer_pool_size | 768M |
| DB_innodb_log_file_size | 128M |
| DB_innodb_flush_method | O_DIRECT |
| DB_innodb_old_blocks_time | 1000 |
| DB_innodb_flush_log_at_trx_commit | 0 |
Full config files can be also used. Environment configs will be overriden by values from config files in this case. You need only to add /etc/custom-config/ volume:
-v /host/custom-config/:/etc/custom-config/
Available files:
| File | Description |
|---|---|
| mariadb-tuning.cnf | MariaDB configuration file |
The first time that you run your container, a new user admin with all privileges
will be created in MariaDB with a random password. To get the password, check
the logs of the container by running:
docker logs <CONTAINER_ID>
You will see an output like the following:
========================================================================
You can now connect to this MariaDB Server using:
mysql -uadmin -pCoFlnc3ZBS58 -h<host>
Please remember to change the above password as soon as possible!
MariaDB user 'root' has no password but only allows local connections
========================================================================
In this case, CoFlnc3ZBS58 is the password generated for the admin user.
If you want to use a preset password instead of a random generated one, you can set the environment variable MARIADB_PASS to your specific password when running the container:
docker run -d -p 3306:3306 -e MARIADB_PASS="mypass" monitoringartist/zabbix-db-mariadb
One way to persist the database data is to store database files in another container. To do so, first create a container that holds database files:
docker run -d -v /var/lib/mysql --name db-data busybox:latest
This will create a new container and use its folder /var/lib/mysql to store
MariaDB database files. You can specify any name of the container by using
--name option, which will be used in next step.
After this you can start your MariaDB image using volumes in the container
created above (put the name of container in --volumes-from).
docker run -d --volumes-from db-data -p 3306:3306 monitoringartist/zabbix-db-mariadb
Content type
Image
Digest
Size
192.2 MB
Last updated
over 8 years ago
docker pull monitoringartist/zabbix-db-mariadb