设置相关配置
设置 mysql 配置
__set_config_mysql() {
mkdir -p /data/docker-data/mysql/conf
cat >/data/docker-data/mysql/conf/my8.cnf <<-'AEOF'
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
# Custom config should go here
!includedir /etc/mysql/conf.d/
max_connections=5000
max_heap_table_size=1G
tmp_table_size=1G
join_buffer_size=2G
innodb_buffer_pool_size=12G
innodb_buffer_pool_instances=64
innodb_flush_log_at_timeout=3
innodb_read_io_threads=32
innodb_write_io_threads=16
innodb_io_capacity=5000
innodb_io_capacity_max=10000
AEOF
}
__set_config_mysql
设置 zabbix 配置
__set_zabbix_server() {
mkdir -p /data/docker-data/zabbix/conf
cat >/data/docker-data/zabbix/conf/zabbix_server.conf <<-'AEOF'
LogType=console
DBHost=mysql8
DBName=zabbix
DBUser=zabbix
DBPassword=passwd
DBPort=3306
StartPollers=50
StartPreprocessors=50
StartPollersUnreachable=10
StartTrappers=50
StartDiscoverers=5
StartTimers=10
StartEscalators=10
CacheSize=8G
HistoryCacheSize=2G
HistoryIndexCacheSize=2G
TrendCacheSize=2G
ValueCacheSize=2G
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
FpingLocation=/usr/sbin/fping
SSHKeyLocation=/var/lib/zabbix/ssh_keys
User=zabbix
SSLCertLocation=/var/lib/zabbix/ssl/certs/
SSLKeyLocation=/var/lib/zabbix/ssl/keys/
SSLCALocation=/var/lib/zabbix/ssl/ssl_ca/
LoadModulePath=/var/lib/zabbix/modules/
AEOF
}
__set_zabbix_server
启动相关容器
启动 mysql
__run_mysql() {
docker rm -f mysql8
docker run --name mysql8 -t \
--restart=always \
-p 3306:3306 \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="passwd" \
-e MYSQL_ROOT_PASSWORD="passwd" \
-v /data/docker-data/mysql/data:/var/lib/mysql \
-v /data/docker-data/mysql/log:/var/log/mysql \
-v /data/docker-data/mysql/conf/my8.cnf:/etc/mysql/my.cnf \
-v /data/docker-data/mysql/mysql-files:/var/lib/mysql-files/ \
-d mysql:8.0.25 \
--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci \
--default-authentication-plugin=mysql_native_password
}
__run_mysql
启动 zabbix-server-mysql
__run_zabbix_server_mysql() {
docker rm -f zabbix-server-mysql
docker run --name zabbix-server-mysql -itd \
-e DB_SERVER_HOST="mysql8" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="passwd" \
-e MYSQL_ROOT_PASSWORD="passwd" \
-v /data/docker-data/zabbix/conf/zabbix_server.conf:/etc/zabbix/zabbix_server.conf \
--restart=always \
--link mysql8:db \
-p 10051:10051 \
zabbix/zabbix-server-mysql:ubuntu-5.4.2
}
__run_zabbix_server_mysql
启动 zabbix web
__run_zabbix_web_nginx_mysql() {
docker rm -f zabbix-web-nginx-mysql
docker run --name zabbix-web-nginx-mysql -itd \
-e DB_SERVER_HOST="mysql8" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="passwd" \
-e MYSQL_ROOT_PASSWORD="passwd" \
-e PHP_TZ="Asia/Shanghai" \
--link mysql8:db \
--link zabbix-server-mysql:zabbix-server \
-p 80:8080 \
-v /data/docker-data/zabbix/script/:/usr/share/zabbix/kuaicdn \
zabbix/zabbix-web-nginx-mysql:ubuntu-5.4.2
}
__run_zabbix_web_nginx_mysql
Zabbix 默认账号密码
Admin
zabbxi
解决图形展示界面中文乱码的问题
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'
如链接失效, 那么手动下载,上传到容器进行替换