安装zabbix6.x版本需要mysql8.x以上的版本
mkdir -p /opt/mysql/{conf,data,log} && cd /opt/mysql/conf
vi my.conf
- mysql配置文件内容
[mysql]
#客户端使用的字符集默认为utf8mb4
default-character-set=utf8mb4
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
host_cache_size=0
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files
character-set-server=utf8mb4
#忽略表名不区分大小写
lower_case_table_names=1
#支持不在分组里的字段也能查询
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
#log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
authentication_policy= mysql_native_password
default-time_zone='+8:00'
[client]
socket=/var/run/mysqld/mysqld.sock
- 启动mysql
docker run -d \
--privileged=true \
--name mysql \
--restart=always \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=1234 \
-v /opt/mysql/data:/var/lib/mysql \
-v /opt/mysql/conf/my.cnf:/etc/mysql/conf.d/my.cnf \
-v /opt/mysql/logs:/var/log/mysql \
mysql:8.0.30
- 添加数据库用户zabbix
docker exec -it mysql bash
mysql -u root -p1234
CREATE USER 'zabbix'@'%' IDENTIFIED WITH 'mysql_native_password' BY 'zabbix';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'%';
FLUSH PRIVILEGES;
docker run --name zabbix-server -t \
-e DB_SERVER_HOST="mysql" \
-e MYSQL_ROOT_PASSWORD="1234" \
--restart=unless-stopped \
--link mysql \
-p 10051:10051 \
-d zabbix/zabbix-server-mysql
- 加载zabbix数据到mysql的zabbix库中
docker cp zabbix-server:/usr/share/doc/zabbix-server-mysql/create.sql.gz /opt/mysql
zcat /opt/mysql/create.sql.gz | docker exec -i mysql mysql -u root -p1234 zabbix
- 启动zabbix前端
docker run --name zabbix-web -t \
-e ZBX_SERVER_HOST="zabbix-server" \
-e DB_SERVER_HOST="mysql" \
-e MYSQL_ROOT_PASSWORD="1234" \
-p 80:8080 \
--link zabbix-server \
--link mysql \
--restart unless-stopped \
-d zabbix/zabbix-web-nginx-mysql