咱们先来看一下咱们要修改得 zabbix.yaml github https://github.com/bboysoulcn/awesome-dockercomposemysql
version: "3" services: zabbix-server: image: "zabbix/zabbix-server-mysql:centos-4.0.4" container_name: "zabbix-server" restart: "always" environment: - "DB_SERVER_HOST=zabbix-db" - "MYSQL_USER=root" - "MYSQL_PASSWORD=" #- "DB_SERVER_PORT=" #- "MYSQL_DATABASE=" volumes: - "zabbix-server-data:/var/lib/zabbix/" - "zabbix-server-scripts:/usr/lib/zabbix/" depends_on: - "zabbix-db" ports: - "10051:10051" extra_hosts: - "mysql.bboysoul.com:10.10.10.200" zabbix-web: image: "zabbix/zabbix-web-nginx-mysql:centos-4.0.4" container_name: "zabbix-web" restart: "always" environment: - "DB_SERVER_HOST=zabbix-db" - "MYSQL_USER=root" - "MYSQL_PASSWORD=" - "ZBX_SERVER_HOST=zabbix-server" - "PHP_TZ=Asia/Shanghai " #- "ZBX_SERVER_PORT=" #- "DB_SERVER_PORT=" #- "MYSQL_DATABASE=" #- "ZBX_SERVER_NAME=" depends_on: - "zabbix-server" - "zabbix-db" ports: - "8082:80" #extra_hosts: # - "mysql.bboysoul.com:10.10.10.200" zabbix-db: image: "mariadb:10.2.22" container_name: "zabbix-db" restart: "always" environment: - "MYSQL_ROOT_PASSWORD=" - "MYSQL_DATABASE=zabbix" #- "MYSQL_USER=" #- "MYSQL_PASSWORD=" #- "MYSQL_ALLOW_EMPTY_PASSWORD=" #- "MYSQL_RANDOM_ROOT_PASSWORD=" #ports: # - "3306:3306" volumes: - "zabbix-db-data:/var/lib/mysql/" volumes: zabbix-server-data: zabbix-db-data: zabbix-server-scripts:
这不是咱们想要得zabbix.ayml 和 images 咱们要对它进行改造 还有一个坑 哪就是DB 没有支持UTF-8 zabbix 没法存储中文 (主要是在容器初始化时未对容器进行设置)nginx
因此列出改造列表:git
1. DB ImagesName mariadb:10.2.22 不要了改成外部存储 host-ip 172.16.1.55 我在本地有个hma 就拿来用吧github
2. zabbix-web ImagesName zabbix/zabbix-web-nginx-mysql:centos-4.0.4 修改容器内中文乱码 同步容器和主机时间web
3 zabbix-service ImagesName zabbix/zabbix-server-mysql:centos-4.0.4 同步容器和主机时间 添加微信报警插件 同步容器和主机时间 sql
4 持久化存储 数据 zabbix-web . zabbix-server # /data/ zabbix-server-data zabbix-server-scriptsdocker
start编写 dockerfile 改造 zabbix-web 容器镜像 zabbix-web-nginx-mysql:centos-4.0.4json
FROM zabbix/zabbix-web-nginx-mysql:centos-4.0.4 RUN rm -rf /usr/share/zabbix/fonts/graphfont.ttf #删除容器内原有中文支持软琏接 COPY ./simkai.ttf /usr/share/fonts/dejavu/ RUN ln -s /usr/share/fonts/dejavu/simkai.ttf /usr/share/zabbix/fonts/graphfont.ttf
simkai.ttf #该文件为windown 中文支持字体文件 位置 控制面板-->字体-->选择一种中文字库例如“楷体”(simkai.ttf)
开始从新构建镜像: docker build -t zabbix/zabbix-web-nginx-mysql:centos-5.0.4 .centos
好开始从新改造第二个容器: dockerfilebash
FROM zabbix/zabbix-server-mysql:centos-4.0.4 COPY ./weixincfg.json /etc/ COPY ./weixin /usr/lib/zabbix/alertscripts/
#对以上dockerfile 解释
weixincfg.json #文件为我的微信注册信息 讲解文章地址: https://blog.csdn.net/weixin_39845407/article/details/81135946
weixin #微信应用程序包含(weixincfg.json空白文件) 下载地址 https://mirrors.yangxingzhen.com/zabbix/wechat_zabbix.tar.gz
start 从新构建镜像 docker build -t zabbix/zabbix-server-mysql:centos-5.0.4 .
查看构建镜像结果
好了最重要一步 修改 zabbix.yaml
version: "3" services: zabbix-server: image: "zabbix/zabbix-server-mysql:centos-5.0.4" container_name: "zabbix-server" restart: "always" environment: - "DB_SERVER_HOST=mysql.bboysoul.com" - "MYSQL_USER=mychen" - "MYSQL_PASSWORD=237356573" volumes: - "/zabbix-data/zabbix-server-data:/var/lib/zabbix/" - "/zabbix-data/zabbix-server-scripts:/usr/lib/zabbix/" - "/etc/localtime:/etc/localtime" ports: - "10051:10051" extra_hosts: - "mysql.bboysoul.com:172.16.1.55" zabbix-web: image: "zabbix/zabbix-web-nginx-mysql:centos-5.0.4" container_name: "zabbix-web" restart: "always" environment: - "DB_SERVER_HOST=mysql.bboysoul.com" - "MYSQL_USER=mychen" - "MYSQL_PASSWORD=237356573" - "ZBX_SERVER_HOST=zabbix-server" - "PHP_TZ=Asia/Shanghai " volumes: - "/etc/localtime:/etc/localtime" depends_on: - "zabbix-server" ports: - "80:80" extra_hosts: - "mysql.bboysoul.com:172.16.1.55"
grafana-web:
关已外接DB 咱们只须要在咱们本地DB hma cluster 建立 user:mychen password: 237356573 在 creater database zabbix; 就能够了 等一下 咱们run zabbix.yaml 容器会自动导入表数据
启动: docker-compose -f ./zabbix.yaml up -d
测试 user: Admin password: zabbix
微信报警测试: 关已报警设置 上面这篇文章也有详细说明: https://blog.csdn.net/weixin_39845407/article/details/81135946