设置相关配置

以下配置适用于内存25G的服务器

设置 mysql 配置

  1. __set_config_mysql() {
  2. mkdir -p /data/docker-data/mysql/conf
  3. cat >/data/docker-data/mysql/conf/my8.cnf <<-'AEOF'
  4. [mysqld]
  5. pid-file = /var/run/mysqld/mysqld.pid
  6. socket = /var/run/mysqld/mysqld.sock
  7. datadir = /var/lib/mysql
  8. secure-file-priv= NULL
  9. # Custom config should go here
  10. !includedir /etc/mysql/conf.d/
  11. max_connections=5000
  12. max_heap_table_size=1G
  13. tmp_table_size=1G
  14. join_buffer_size=2G
  15. innodb_buffer_pool_size=12G
  16. innodb_buffer_pool_instances=64
  17. innodb_flush_log_at_timeout=3
  18. innodb_read_io_threads=32
  19. innodb_write_io_threads=16
  20. innodb_io_capacity=5000
  21. innodb_io_capacity_max=10000
  22. AEOF
  23. }
  24. __set_config_mysql

设置 zabbix 配置

  1. __set_zabbix_server() {
  2. mkdir -p /data/docker-data/zabbix/conf
  3. cat >/data/docker-data/zabbix/conf/zabbix_server.conf <<-'AEOF'
  4. LogType=console
  5. DBHost=mysql8
  6. DBName=zabbix
  7. DBUser=zabbix
  8. DBPassword=passwd
  9. DBPort=3306
  10. StartPollers=50
  11. StartPreprocessors=50
  12. StartPollersUnreachable=10
  13. StartTrappers=50
  14. StartDiscoverers=5
  15. StartTimers=10
  16. StartEscalators=10
  17. CacheSize=8G
  18. HistoryCacheSize=2G
  19. HistoryIndexCacheSize=2G
  20. TrendCacheSize=2G
  21. ValueCacheSize=2G
  22. AlertScriptsPath=/usr/lib/zabbix/alertscripts
  23. ExternalScripts=/usr/lib/zabbix/externalscripts
  24. FpingLocation=/usr/sbin/fping
  25. SSHKeyLocation=/var/lib/zabbix/ssh_keys
  26. User=zabbix
  27. SSLCertLocation=/var/lib/zabbix/ssl/certs/
  28. SSLKeyLocation=/var/lib/zabbix/ssl/keys/
  29. SSLCALocation=/var/lib/zabbix/ssl/ssl_ca/
  30. LoadModulePath=/var/lib/zabbix/modules/
  31. AEOF
  32. }
  33. __set_zabbix_server

启动相关容器

需要按顺序启动, 建议间隔10秒以上

启动 mysql

  1. __run_mysql() {
  2. docker rm -f mysql8
  3. docker run --name mysql8 -t \
  4. --restart=always \
  5. -p 3306:3306 \
  6. -e MYSQL_USER="zabbix" \
  7. -e MYSQL_PASSWORD="passwd" \
  8. -e MYSQL_ROOT_PASSWORD="passwd" \
  9. -v /data/docker-data/mysql/data:/var/lib/mysql \
  10. -v /data/docker-data/mysql/log:/var/log/mysql \
  11. -v /data/docker-data/mysql/conf/my8.cnf:/etc/mysql/my.cnf \
  12. -v /data/docker-data/mysql/mysql-files:/var/lib/mysql-files/ \
  13. -d mysql:8.0.25 \
  14. --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci \
  15. --default-authentication-plugin=mysql_native_password
  16. }
  17. __run_mysql

启动 zabbix-server-mysql

  1. __run_zabbix_server_mysql() {
  2. docker rm -f zabbix-server-mysql
  3. docker run --name zabbix-server-mysql -itd \
  4. -e DB_SERVER_HOST="mysql8" \
  5. -e MYSQL_DATABASE="zabbix" \
  6. -e MYSQL_USER="zabbix" \
  7. -e MYSQL_PASSWORD="passwd" \
  8. -e MYSQL_ROOT_PASSWORD="passwd" \
  9. -v /data/docker-data/zabbix/conf/zabbix_server.conf:/etc/zabbix/zabbix_server.conf \
  10. --restart=always \
  11. --link mysql8:db \
  12. -p 10051:10051 \
  13. zabbix/zabbix-server-mysql:ubuntu-5.4.2
  14. }
  15. __run_zabbix_server_mysql

启动 zabbix web

  1. __run_zabbix_web_nginx_mysql() {
  2. docker rm -f zabbix-web-nginx-mysql
  3. docker run --name zabbix-web-nginx-mysql -itd \
  4. -e DB_SERVER_HOST="mysql8" \
  5. -e MYSQL_DATABASE="zabbix" \
  6. -e MYSQL_USER="zabbix" \
  7. -e MYSQL_PASSWORD="passwd" \
  8. -e MYSQL_ROOT_PASSWORD="passwd" \
  9. -e PHP_TZ="Asia/Shanghai" \
  10. --link mysql8:db \
  11. --link zabbix-server-mysql:zabbix-server \
  12. -p 80:8080 \
  13. -v /data/docker-data/zabbix/script/:/usr/share/zabbix/kuaicdn \
  14. zabbix/zabbix-web-nginx-mysql:ubuntu-5.4.2
  15. }
  16. __run_zabbix_web_nginx_mysql

Zabbix 默认账号密码

Admin
zabbxi

解决图形展示界面中文乱码的问题

  1. docker exec -it -u root zabbix-web-nginx-mysql bash -c 'curl -o /usr/share/zabbix/assets/fonts/DejaVuSans.ttf https://kuaicdn.oss-cn-hangzhou.aliyuncs.com/zabbix/install/font/msyh.ttf'

Docker 快速搭建 Zabbix 服务端 - 图1
如链接失效, 那么手动下载,上传到容器进行替换

字体微软雅黑TTF.rar