zabbix6.4 容器离线部署

部署环境信息

操作系统:Centos7.9
CPU架构:x86_64
安装用户:root

部署前准备

检查 selinux 是否关闭

如果系统处于 selinux 激活的模式下,会影响一些依赖的正常安装与使用,所以如果已经开启的话,需要先关闭selinux激活模式。

检查 selinux 状态,如果状态显示为 enforcing,即表示目前为激活状态。

getenforce

关闭 selinux 激活状态

sed -i '/^SELINUX.*/s/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

注意:修改完后要重启系统后才能生效。

检查容器工具是否安装

这里的容器工具主要使用docker和docker-compose,具体安装可参考 centos离线安装docker,docker-compose

检查docker命令

docker -v

检查docker-compose命令

docker-compose -v

检查服务运行端口是否被占用

zabbix6.4 完整服务实际包含以下几个组件,因为要把容器端口都映射出来,所以需要检查要映射的端口在宿主机是否被占用。

zabbix6.4 组件服务:

  • mysql 默认端口:3306
  • zabbix-java-gateway 默认端口:10052
  • zabbix-snmptraps 默认端口:1162
  • zabbix-server 默认端口:10051
  • zabbix-web 默认端口:8080

检查指定端口是否被占用,如果没有进程在使用,则表示端口可用。

netstat -tunlp | grep 指定端口

下载服务组件镜像

  1. 下载zabbix组件服务镜像

先找一台可以正常联网的电脑,通过以下命令先拉取组服务的官方镜像。

# 下载 mysql
docker pull mysql:8.0.36

# 下载 zabbix-java-gateway
docker pull zabbix/zabbix-java-gateway:6.4-centos-latest

# 下载 zabbix-snmptraps
docker pull zabbix/zabbix-snmptraps:6.4-centos-latest

# 下载 zabbix-server
docker pull zabbix/zabbix-server-mysql:6.4-centos-latest

# 下载 zabbix-web
docker pull zabbix/zabbix-web-service:6.4-centos-latest
  1. 导出镜像文件

导出镜像文件,并上传到要部署的服务器上。

# 导出 mysql
docker save mysql:8.0.36 -o mysql.tar

# 导出 zabbix-java-gateway
docker save zabbix/zabbix-java-gateway:6.4-centos-latest -o zabbix-java-gateway.tar

# 导出 zabbix-snmptraps
docker save zabbix/zabbix-snmptraps:6.4-centos-latest -o zabbix-snmptraps.tar

# 导出 zabbix-server
docker save zabbix/zabbix-server-mysql:6.4-centos-latest -o zabbix-server-mysql.tar

# 导出 zabbix-web
docker save zabbix/zabbix-web-service:6.4-centos-latest -o zabbix-web-service.tar

下载字体文件

字体文件我直接拷贝的电脑上的,这里直接放blog上方便大家使用,下载解压后直接上传到要部署的服务器上,如果不放心,用户也可以在自己电脑上拷贝也行。

下载地址:https://files.cnblogs.com/files/blogs/676474/simfang.zip?t=1731048959&download=true

部署服务

导入组件镜像

将前面步骤导出的镜像文件依次进行导入。

# 导入镜像文件
docker load < 组件服务镜像

# 检查导入结果
docker images

创建安装目录

# 创建安装目录
mkdir -pv /opt/zabbix-server

# 初始化安装目录
mkdir -pv /opt/zabbix-server/{mysql/{data,conf,logs},font,snmptraps,mibs,alertscripts,externalscripts}

# 安装目录赋权
chmod -R 777 /opt/zabbix-server/*

拷贝字体文件

cp simfang.ttf /opt/zabbix-server/font

创建启动配置

创建启动配置

vi /opt/zabbix-server/docker-compose.yml

docker-compose.yml 内容

---
services:
  mysql:
    image: mysql:8.0.36
    container_name: mysql
    volumes:
      - ./mysql/data:/var/lib/mysql
      - ./mysql/conf:/etc/mysql/conf.d
      - ./mysql/logs:/var/log/mysql
      - /etc/localtime:/etc/localtime
    restart: always
    privileged: true
    environment:
      - MYSQL_ROOT_PASSWORD=mysql管理员密码
      - MYSQL_DATABASE=zabbix
      - MYSQL_USER=zabbix
      - MYSQL_PASSWORD=mysql自定义账户zabbix密码
      - TZ=Asia/Shanghai
      - LANG=en_US.UTF-8
    ports:
      - "3306:3306"
    networks:
      zabbix-net:
    command: --character-set-server=utf8 --collation-server=utf8_bin
  zabbix-gateway:
    image: zabbix/zabbix-java-gateway:6.4-centos-latest
    container_name: zabbix-gateway
    volumes:
      - /etc/localtime:/etc/localtime
    restart: always
    privileged: true
    ports:
      - "10052:10052"
    networks:
      zabbix-net:
  zabbix-snmptraps:
    image: zabbix/zabbix-snmptraps:6.4-centos-latest
    container_name: zabbix-snmptraps
    volumes:
      - /etc/localtime:/etc/localtime
      - ./snmptraps:/var/lib/zabbix/snmptraps
      - ./mibs:/var/lib/zabbix/mibs
    restart: always
    privileged: true
    ports:
      - "1162:1162/udp"
    networks:
      zabbix-net:
  zabbix-server:
    image: zabbix/zabbix-server-mysql:6.4-centos-latest
    container_name: zabbix-server
    volumes:
      - /etc/localtime:/etc/localtime
      - ./snmptraps:/var/lib/zabbix/snmptraps
      - ./mibs:/var/lib/zabbix/mibs
      - ./alertscripts:/usr/lib/zabbix/alertscripts
      - ./externalscripts:/usr/lib/zabbix/externalscripts
    restart: always
    privileged: true
    environment:
      - ZBX_LISTENPORT=10051
      - DB_SERVER_HOST=mysql
      - DB_SERVER_PORT=3306
      - MYSQL_DATABASE=zabbix
      - MYSQL_USER=zabbix
      - MYSQL_PASSWORD=mysql自定义账户zabbix密码
      - MYSQL_ROOT_PASSWORD=mysql管理员密码
      - ZBX_CACHESIZE=1G
      - ZBX_HISTORYCACHESIZE=512M
      - ZBX_HISTORYINDEXCACHESIZE=16M
      - ZBX_TRENDCACHESIZE=256M
      - ZBX_VALUECACHESIZE=256M
      - ZBX_STARTPINGERS=64
      - ZBX_IPMIPOLLERS=1
      - ZBX_ENABLE_SNMP_TRAPS=true
      - ZBX_STARTTRAPPERS=1
      - ZBX_JAVAGATEWAY_ENABLE=true
      - ZBX_JAVAGATEWAY=zabbix-gateway
      - ZBX_STARTJAVAPOLLERS=1
    ports:
      - "10051:10051"
    networks:
      zabbix-net:
    links:
      - mysql
      - zabbix-gateway
  zabbix-web:
    image: zabbix/zabbix-web-nginx-mysql:6.4-centos-latest
    container_name: zabbix-web
    volumes:
      - ./font/simfang.ttf:/usr/share/zabbix/assets/fonts/DejaVuSans.ttf
      - /etc/localtime:/etc/localtime
    restart: always
    privileged: true
    environment:
      - ZBX_SERVER_NAME=Zabbix 6.0
      - ZBX_SERVER_HOST=zabbix-server
      - ZBX_SERVER_PORT=10051
      - DB_SERVER_HOST=mysql
      - DB_SERVER_PORT=3306
      - MYSQL_DATABASE=zabbix
      - MYSQL_USER=zabbix
      - MYSQL_PASSWORD=mysql自定义账户zabbix密码
      - MYSQL_ROOT_PASSWORD=mysql管理员密码
      - PHP_TZ=Asia/Shanghai
    ports:
      - "8080:8080"
    networks:
      zabbix-net:
    links:
      - mysql
      - zabbix-server
networks:
  zabbix-net:
    driver: bridge
    ipam:
      config:
        - subnet: 10.10.10.0/24
          gateway: 10.10.10.1

创建zabbix容器服务

# 进入安装目录
cd /opt/zabbix-server

# 启动容器服务
docker-compose up -d

部署检查

  • 使用 docker 检查
docker ps

image

  • 使用 docker-compose 检查
# 进入安装目录
cd /opt/zabbix-server

# 容器服务状态检查(该检查方式注意需与 docker-compose.yml 在同一目录)
docker-compose stats

image

posted @ 2024-10-29 23:01  505donkey  阅读(458)  评论(0)    收藏  举报