zabbix 6.0 docker-compose 部署
zabbix 6.0 docker-compose 部署
zabbix6.0 已是新LTS版本。根据zabbix-docker上的trunk版本来搭建zabbix6.0。
根据踩坑,记录docker-compose 执行后遇到的一些问题。
zabbix 6.0 LTS已发布
本文中的镜像为当时为zabbix6.0预发布版本(trunk)。目前zabbix6.0LTS版本已发布。
 请结合 官方镜像
部署
主机安装好docker、docker-compose。
文件包含:env_vars ,
密码6387
下载完成后解压到同一目录, 并执行docker-compose up -d
这时候可以看到各服务拉取镜像并启动。
docker-compose 文件内容
version: '3.5'
services:
  m-server:
    container_name: m-server
    image: zabbix/zabbix-server-mysql:alpine-trunk
    restart: always
    ports:
      - "10051:10051"
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - ./zbx_env/usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts:ro
      - ./zbx_env/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts:ro
      - ./zbx_env/var/lib/zabbix/export:/var/lib/zabbix/export:rw
      - ./zbx_env/var/lib/zabbix/modules:/var/lib/zabbix/modules:ro
      - ./zbx_env/var/lib/zabbix/enc:/var/lib/zabbix/enc:ro
      - ./zbx_env/var/lib/zabbix/ssh_keys:/var/lib/zabbix/ssh_keys:ro
      - ./zbx_env/var/lib/zabbix/mibs:/var/lib/zabbix/mibs:ro
    env_file:
      - ./env_vars/.env_db_mysql
      - ./env_vars/.env_srv
    secrets:
      - MYSQL_USER
      - MYSQL_PASSWORD
      - MYSQL_ROOT_PASSWORD
    #   - client-key.pem
    #   - client-cert.pem
    #   - root-ca.pem
    depends_on:
      - mysql-server
    networks:
      zbx_net_backend:
        aliases:
          - m-erver
          - m-server-mysql
          - m-server-alpine-mysql
          - m-server-mysql-alpine
      zbx_net_frontend: null
        #  devices:
        #   - "/dev/ttyUSB0:/dev/ttyUSB0"
    stop_grace_period: 30s
    sysctls:
      - net.ipv4.ip_local_port_range=1024 65000
      - net.ipv4.conf.all.accept_redirects=0
      - net.ipv4.conf.all.secure_redirects=0
      - net.ipv4.conf.all.send_redirects=0
    labels:
      com.zabbix.description: "Zabbix server with MySQL database support"
      com.zabbix.company: "Zabbix LLC"
      com.zabbix.component: "m-server"
      com.zabbix.dbtype: "mysql"
      com.zabbix.os: "alpine"
  m-web-nginx-mysql:
    container_name: m-web-nginx-mysql
    #  image: zabbix/zabbix-web-nginx-mysql:alpine-trunk
    image: chenwl2016/m-web-nginx-mysql:v1-alpine-trunk
    ports:
      - "8082:8080"
      - "8443:8443"
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - ./zbx_env/etc/ssl/nginx:/etc/ssl/nginx:ro
      - ./zbx_env/usr/share/zabbix/modules/:/usr/share/zabbix/modules/:ro
    env_file:
      - ./env_vars/.env_db_mysql
      - ./env_vars/.env_web
    secrets:
      - MYSQL_USER
      - MYSQL_PASSWORD
    #   - client-key.pem
    #   - client-cert.pem
    #   - root-ca.pem
    depends_on:
      - mysql-server
      - m-server
    healthcheck:
      test: [ "CMD", "curl", "-f", "http://localhost:8080/" ]
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 30s
    networks:
      zbx_net_backend:
        aliases:
          - m-web-nginx-mysql
          - m-web-nginx-alpine-mysql
          - m-web-nginx-mysql-alpine
      zbx_net_frontend: null
    stop_grace_period: 10s
    sysctls:
      - net.core.somaxconn=65535
    labels:
      com.zabbix.description: "Zabbix frontend on Nginx web-server with MySQL database support"
      com.zabbix.company: "Zabbix LLC"
      com.zabbix.component: "m-frontend"
      com.zabbix.webserver: "nginx"
      com.zabbix.dbtype: "mysql"
      com.zabbix.os: "alpine"
  m-agent:
    container_name: m-agent
    image: zabbix/zabbix-agent:alpine-trunk
    restart: always
    ports:
      - "10050:10050"
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - ./zbx_env/etc/zabbix/zabbix_agentd.d:/etc/zabbix/zabbix_agentd.d:ro
      - ./zbx_env/var/lib/zabbix/modules:/var/lib/zabbix/modules:ro
      - ./zbx_env/var/lib/zabbix/enc:/var/lib/zabbix/enc:ro
      - ./zbx_env/var/lib/zabbix/ssh_keys:/var/lib/zabbix/ssh_keys:ro
    env_file:
      - ./env_vars/.env_agent
    privileged: true
    pid: "host"
    networks:
      zbx_net_backend:
        aliases:
          - zabbix-agent
          - zabbix-agent-passive
          - zabbix-agent-alpine
    stop_grace_period: 5s
    labels:
      com.zabbix.description: "Zabbix agent"
      com.zabbix.company: "Zabbix LLC"
      com.zabbix.component: "zabbix-agentd"
      com.zabbix.os: "alpine"
  mysql-server:
    container_name: mysql-server
    image: mysql:8.0
    restart: always
    security_opt:
      - seccomp:unconfined
    ports:
      - "3316:3306"
    command:
      - mysqld
      - --character-set-client=utf8mb4
      - --character-set-connection=utf8mb4
      - --character-set-results=utf8mb4
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_bin
      - --default-authentication-plugin=mysql_native_password
    #   - --require-secure-transport
    #   - --ssl-ca=/run/secrets/root-ca.pem
    #   - --ssl-cert=/run/secrets/server-cert.pem
    #   - --ssl-key=/run/secrets/server-key.pem
    volumes:
      - ./zbx_env/var/lib/mysql:/var/lib/mysql:rw
    env_file:
      - ./env_vars/.env_db_mysql
    secrets:
      - MYSQL_USER
      - MYSQL_PASSWORD
      - MYSQL_ROOT_PASSWORD
    #   - server-key.pem
    #   - server-cert.pem
    #   - root-ca.pem
    stop_grace_period: 1m
    networks:
      zbx_net_backend:
        aliases:
          - mysql-server
          - m-database
          - mysql-database
  db_data_mysql:
    image: busybox
    volumes:
      - ./zbx_env/var/lib/mysql:/var/lib/mysql:rw
networks:
  zbx_net_frontend:
    driver: bridge
    driver_opts:
      com.docker.network.enable_ipv6: "false"
    ipam:
      driver: default
      config:
        - subnet: 172.16.238.0/24
  zbx_net_backend:
    driver: bridge
    driver_opts:
      com.docker.network.enable_ipv6: "false"
    internal: true
    ipam:
      driver: default
      config:
        - subnet: 172.16.239.0/24
secrets:
  MYSQL_USER:
    file: ./env_vars/.MYSQL_USER
  MYSQL_PASSWORD:
    file: ./env_vars/.MYSQL_PASSWORD
  MYSQL_ROOT_PASSWORD:
    file: ./env_vars/.MYSQL_ROOT_PASSWORD
#  client-key.pem:
#    file: ./env_vars/.ZBX_DB_KEY_FILE
#  client-cert.pem:
#    file: ./env_vars/.ZBX_DB_CERT_FILE
#  root-ca.pem:
#    file: ./env_vars/.ZBX_DB_CA_FILE
#  server-cert.pem:
#    file: ./env_vars/.DB_CERT_FILE
#  server-key.pem:
#    file: ./env_vars/.DB_KEY_FILE
其中有基础更改,主要是使用的镜像非zabbix镜像。数据库考虑暴露3316端口(但是这里没有成功)
 使用非官方容器的目的是遇到一些情况。
zabbix 图字体口口口
这个问题之前有写过,可以查看之前那篇《解决zabbix5字体中文口口乱码》。主要就是zabbix提供的字体DejaVuSans.ttf 不支持中文。通过无版权字体替换此字体。生成自己的镜像。
数据库字符集问题

 在测试中,我发现我有一些item显示的中文是???,开始以为字体问题,经过多方查询,发现这个问题是字符集问题。 也就是数据库这块的配置。具体大家自行科普,我这里主要就是设置了mysql8中字符集的配置,默认改成utf8mb4。
 在官方的mysql镜像中,可以配置两处字符集,但无法设置全面。导致中文出现???。
结束~
祝好。
zabbix 6.0 docker-compose 部署的更多相关文章
- Docker Compose 部署前后端分离应用
		
部署前后端分离应用 容器化 Abp 应用 关于 Abp 应用的容器化,其实和普通的 ASP.NET Core 应用差不多,大家可以参考我此前的文章. 唯一需要注意的是:因为 Abp 解决方案中有多个项 ...
 - Docker Compose 部署 Redis 及原理讲解 | 懒人屋
		
原文:Docker Compose 部署 Redis 及原理讲解 | 懒人屋 Docker Compose 部署 Redis 及原理讲解 4.4k 字 16 分钟 2019-10-1 ...
 - Docker Compose部署 EFK(Elasticsearch + Fluentd + Kibana)收集日志
		
简述 本文用于记录如何使用Docker Compose部署 EFK(Elasticsearch + Fluentd + Kibana) 收集Docker容器日志,使用EFK,可以无侵入代码,获得灵活, ...
 - 基于Docker Compose部署分布式MinIO集群
		
一.概述 Minio 是一个基于Go语言的对象存储服务.它实现了大部分亚马逊S3云存储服务接口,可以看做是是S3的开源版本,非常适合于存储大容量非结构化的数据,例如图片.视频.日志文件.备份数据和容器 ...
 - 使用Docker Compose部署基于Sentinel的高可用Redis集群
		
使用Docker Compose部署基于Sentinel的高可用Redis集群 https://yq.aliyun.com/articles/57953 Docker系列之(五):使用Docker C ...
 - Docker Compose部署项目到容器-基于Tomcat和mysql的项目yml配置文件代码
		
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
 - 在Windows Server 2019通过Docker Compose部署Asp.Net Core
		
一.安装Docker Enterprise 安装文档是: https://docs.docker.com/install/windows/docker-ee/ 安装完成后,如下图 二.首先,拉取一个W ...
 - 使用Docker Compose 部署Nexus后初次登录账号密码不正确,并且在nexus-data下没有admin,password
		
场景 Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/ ...
 - Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程)
		
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
 - Docker Compose部署Nexus3时的docker-compose,yml代码
		
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
 
随机推荐
- Golang 基础之基础语法梳理 (二)
			
大家好,今天将梳理出的 Go语言基础语法内容,分享给大家. 请多多指教,谢谢. 本次<Go语言基础语法内容>共分为三个章节,本文为第二章节 Golang 基础之基础语法梳理 (一) Gol ...
 - CentOS 7 源码安装 Zabbix 6.0
			
Zabbix 主要有以下几个组件组成: Zabbix Server:Zabbix 服务端,是 Zabbix 的核心组件.它负责接收监控数据并触发告警,还负责将监控数据持久化到数据库中. Zabbix ...
 - RabbitMQ Go客户端教程4——路由
			
本文翻译自RabbitMQ官网的Go语言客户端系列教程,本文首发于我的个人博客:liwenzhou.com,教程共分为六篇,本文是第四篇--路由. 这些教程涵盖了使用RabbitMQ创建消息传递应用程 ...
 - 通过TCP Allocate连接数告警了解promethous-NodeExporter数据采集及相关知识扩散
			
1.问题由来 近日有环境告警如下:TCP Allocate连接数过多 很多资料告诉我们使用:netstat –ant | grep ^tcp | wc –l命令查询,但查询的值与告警中获取的只相差很大 ...
 - 程序流程控制2 for循环
			
for循环是python中的一个通用的序列迭代器,可以遍历序列对象中的所有对象. 1.for循环基本格式 for循环基本格式如下. for var in object: 循环体语句块 else: 语句 ...
 - 重磅!Vertica集成Apache Hudi指南
			
1. 摘要 本文演示了使用外部表集成 Vertica 和 Apache Hudi. 在演示中我们使用 Spark 上的 Apache Hudi 将数据摄取到 S3 中,并使用 Vertica 外部表访 ...
 - javascript的比较运算符
			
JavaScript一共提供了8个比较运算符: > 大于运算符 < 小于运算符 <= 小于等于运算符 >= 大于等于运算符 == 相等运算符 === 严格相等运算符 != 不相 ...
 - fiber核心(react 16)?
			
旧: 浏览器渲染引擎单线程, 计算DOM树时锁住整个线程, 所有行为同步发生, 有效率问题, 期间react会一直占用浏览器主线程,如果组件层级比较深,相应的堆栈也会很深,长时间占用浏览器主线程, 任 ...
 - forward和redirect的区别?http状态码301,302分别代表什么?
			
一.forward和redirect的区别 从地址栏显示来说:forward是服务器内部重定向,客户端浏览器的网址不会发生变化:redirect发生一个状态码,告诉服务器去重新请求那个网址,显示的的新 ...
 - Oracle 数据库备份实战
			
最近公司的客户希望使用oracle数据库,所以我们只好将数据从mysql数据库迁移到oracle数据库,并对oracle数据库制定了一个备份策略,之前虽然对oracle很熟悉,但做备份策略还是第一次, ...