Zabbix 部署 - docker

考虑方便移植,多环境部署,整体采用 docker-compose 方式部署

docker-compose

总共4个服务,数据库 + 后台服务 + 前端服务 + Agent

version: '3.7'
services:
  zabbix-mysql:
    container_name: zabbix-mysql
    image: mysql:5.7.40
    restart: always
    environment:
      MYSQL_DATABASE: zabbix
      MYSQL_ROOT_PASSWORD: 1qaz@WSXluoan.com.cn
    ports:
      - "13306:3306"
    volumes:
      - ./data/mysql:/var/lib/mysql

  zabbix-server:
    container_name: zabbix-server
    image: zabbix/zabbix-server-mysql:latest
    restart: always
    depends_on:
      - zabbix-mysql
    environment:
      MYSQL_DATABASE: zabbix
      MYSQL_PASSWORD: 1qaz@WSXluoan.com.cn
      MYSQL_USER: root
      DB_SERVER_HOST: zabbix-mysql
      DB_SERVER_PORT: ${DB_SERVER_PORT}
    ports:
      - "10051:10051"
    volumes:
      - ./data/zabbix/alertscripts:/usr/lib/zabbix/alertscripts
      - ./data/zabbix/externalscripts:/usr/lib/zabbix/externalscripts

  zabbix-web:
    container_name: zabbix-web
    image: zabbix/zabbix-web-nginx-mysql:latest
    restart: always
    depends_on:
      - zabbix-mysql
      - zabbix-server
    environment:
      MYSQL_DATABASE: zabbix
      MYSQL_PASSWORD: 1qaz@WSXluoan.com.cn
      MYSQL_USER: root
      DB_SERVER_HOST: zabbix-mysql
      DB_SERVER_PORT: ${DB_SERVER_PORT}
      ZBX_SERVER_HOST: ${ZBX_SERVER_HOST}
      ZBX_SERVER_PORT: ${ZBX_SERVER_PORT}
    ports:
      - "18080:8080"

  zabbix-agent:
    container_name: zabbix-agent
    image: zabbix/zabbix-agent:latest
    restart: always
    depends_on:
      - zabbix-mysql
      - zabbix-server
    environment:
      ZBX_HOSTNAME: ${ZBX_SERVER_HOST}
      ZBX_SERVER_HOST: ${ZBX_SERVER_HOST}
      ZBX_SERVER_PORT: ${ZBX_SERVER_PORT}
    ports:
      - "10050:10050"

若权限不够则执行

不安全,但方便…需要寻求一种新的折中方式
chmod -R 777 /home/devops/zabbix

问题

服务器 磁盘 docker 目录不对,目前在系统盘,需要重新挂到数据盘
参考:https://blog.csdn.net/z1353095373/article/details/131646058

程序无法连接MySQL

docker exec -it zabbix-web /bin/bash
mysql -hzabbix-mysql -uroot -p1qaz@WSXluoan.com.cn
是通的,但程序报日志
docker logs zabbix-web

zabbix-server    | **** MySQL server is not available. Waiting 5 seconds...
zabbix-web       | **** MySQL server is not available. Waiting 5 seconds...

解决:
使用 IP 代替服务名配置,如 zabbix-mysql

程序连接后报错退出

异常信息

Starting Zabbix Server. Zabbix 5.4.9 (revision d81e506).
Press Ctrl+C to exit.

     6:20230724:165956.919 Starting Zabbix Server. Zabbix 5.4.9 (revision d81e506).
     6:20230724:165956.919 ****** Enabled features ******
     6:20230724:165956.919 SNMP monitoring:           YES
     6:20230724:165956.919 IPMI monitoring:           YES
     6:20230724:165956.919 Web monitoring:            YES
     6:20230724:165956.919 VMware monitoring:         YES
     6:20230724:165956.919 SMTP authentication:       YES
     6:20230724:165956.919 ODBC:                      YES
     6:20230724:165956.919 SSH support:               YES
     6:20230724:165956.919 IPv6 support:              YES
     6:20230724:165956.919 TLS support:               YES
     6:20230724:165956.919 ******************************
     6:20230724:165956.919 using configuration file: /etc/zabbix/zabbix_server.conf
     6:20230724:165956.932 cannot use database "zabbix": its "users" table is empty (is this the Zabbix proxy database?)

原因:表是空的,系统自动创建表成功,但数据插入失败?可能是官方故意为之?
解决:

## 关闭 zabbix-server 服务,删除数据库,并重新创建数据库,手动导入数据
切换至 SSH
docker stop zabbix-server

切换至 Navicat
DROP DATABASE IF EXISTS zabbix;

CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_general_ci;

使用Navicat多线程导入,create.sql

切换至 SSH
docker start zabbix-server

中文乱码问题

参考:https://www.cnblogs.com/operationhome/p/11016809.html

## 备份原字体
docker exec -it zabbix-web /bin/bash
cd /usr/share/zabbix/assets/fonts/
mv DejaVuSans.ttf DejaVuSans.ttf.bak
exit
## 复制字体至容器内部
docker cp /home/devops/zabbix/data/tmp/DejaVuSans.ttf zabbix-web:/usr/share/zabbix/assets/fonts/
## 验证
docker exec -it zabbix-web /bin/bash
ls /usr/share/zabbix/assets/fonts/
exit

WEB 访问地址

http://ip:18080
Admin
zabbix

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值