一、部署docker环境(存在环境,直接跳过此步骤)

1、前提环境准备

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

2、配置阿里云Yum源

yum -y install yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3、安装docker

yum install docker-ce docker-ce-cli containerd.io -y

4、配置国内镜像加速地址

mkdir -p /etc/docker

tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://aoewjvel.mirror.aliyuncs.com"]
}
EOF

5、启动并加入自启动

systemctl start docker
systemctl enable docker

6、查看docker版本

docker --version

二、部署docker-compose环境(存在环境,直接跳过此步骤)

1、官方下载docker-compose

curl -L "https://github.com/docker/compose/releases/download/v2.10.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2、赋予执行权限

chmod +x /usr/local/bin/docker-compose

3、查看版本

docker-compose --version

三、部署Zabbix6.0(docker-compose方式)

1、创建部署目录

mkdir /etc/zabbix
cd /etc/zabbix

2、添加.env文件(如果没有需求,保持默认即可)

vi .env

DEPLOY_PATH="/etc/zabbix/zabbix6.0"
MYSQL_ROOT_PASSWORD="AZZabbix.com"
MYSQL_USER=zabbix
MYSQL_PASSWORD="AZZabbix.com"
ZABBIX_NETWORK_SUBNET="10.10.10.0/24"
ZABBIX_WEB_PORT="3999"
ZABBIX_HISTORYCACHESIZE=2048M

3、添加docker-compose.yaml文件

vi docker-compose.yaml

version: '3'
services:
# DB
  mysql:
    image: mysql:8.0
    container_name: mysql
    volumes:
      - ${DEPLOY_PATH}/data:/var/lib/mysql
      - ${DEPLOY_PATH}/mysql/conf:/etc/mysql/conf.d
      - ${DEPLOY_PATH}/mysql/logs:/var/log/mysql
      - /etc/localtime:/etc/localtime:ro
    restart: always
    privileged: true
    environment:
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
      - MYSQL_DATABASE=zabbix
      - MYSQL_USER=${MYSQL_USER}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD}
      - TZ=Asia/Shanghai
      - LANG=en_US.UTF-8
    expose:
      - "3306"
    networks:
      zabbix-net:
    command: --character-set-server=utf8 --collation-server=utf8_bin

# Gateway
  zabbix-gateway:
    image: zabbix/zabbix-java-gateway:6.0-centos-latest
    container_name: zabbix-gateway
    volumes:
      - /etc/localtime:/etc/localtime:ro
    restart: always
    privileged: true
    ports:
      - "10052:10052"
    networks:
      zabbix-net:

# Agent 
#  zabbix6-agent:
#    image: zabbix/zabbix-agent:centos-6.0-latest
#    container_name: zabbix6-agent
#    volumes:
#      - /etc/localtime:/etc/localtime:ro
#      - /etc/timezone:/etc/timezone:ro
#      - ${DEPLOY_PATH}/zbx_env/etc/zabbix/zabbix_agentd.d:/etc/zabbix/zabbix_agentd.d:ro
#      - ${DEPLOY_PATH}/zbx_env/var/lib/zabbix/modules:/var/lib/zabbix/modules:ro
#      - ${DEPLOY_PATH}/zbx_env/var/lib/zabbix/enc:/var/lib/zabbix/enc:ro
#      - ${DEPLOY_PATH}/zbx_env/var/lib/zabbix/ssh_keys:/var/lib/zabbix/ssh_keys:ro
#    restart: always
#    privileged: true
#    environment:
#      - ZBX_HOSTNAME=Zabbix server
#      - ZBX_SERVER_HOST=zabbix-server
#      - ZBX_SERVER_PORT=10051
#    ports:
#      - "10050:10050"
#    networks:
#      zabbix-net:
#
# SNMP(可选)
#  zabbix-snmptraps:
#    image: zabbix/zabbix-snmptraps:6.0-centos-latest
#    container_name: zabbix-snmptraps
#    volumes:
#      - /etc/localtime:/etc/localtime:ro
#      - ${DEPLOY_PATH}/snmptraps:/var/lib/zabbix/snmptraps
#      - ${DEPLOY_PATH}/mibs:/var/lib/zabbix/mibs
#    restart: always
#    privileged: true
#    ports:
#      - "1162:1162/udp"
#    networks:
#      zabbix-net:

# Server
  zabbix-server:
    image: zabbix/zabbix-server-mysql:6.0-centos-latest
    container_name: zabbix-server
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ${DEPLOY_PATH}/snmptraps:/var/lib/zabbix/snmptraps
      - ${DEPLOY_PATH}/mibs:/var/lib/zabbix/mibs
      - ${DEPLOY_PATH}/alertscripts:/usr/lib/zabbix/alertscripts
      - ${DEPLOY_PATH}/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_USERx-server=${MYSQL_USER}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD}
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
      - ZBX_CACHESIZE=1G
      - ZBX_HISTORYCACHESIZE=${ZABBIX_HISTORYCACHESIZE}
      - 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

# WEB
  zabbix-web:
    image: zabbix/zabbix-web-nginx-mysql:6.0-centos-latest
    container_name: zabbix-web
    volumes:
      - ${DEPLOY_PATH}/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=${MYSQL_USER}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD}
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
      - PHP_TZ=Asia/Shanghai
    ports:
      - "${ZABBIX_WEB_PORT}:8080"
    networks:
      zabbix-net:
    links:
      - mysql
      - zabbix-server

networks:
  zabbix-net:
    driver: bridge
    ipam:
      config:
        - subnet: ${ZABBIX_NETWORK_SUBNET} 

4、解决图形乱码问题

yum -y install wqy-microhei-fonts.noarch 
mkdir /etc/zabbix/zabbix6.0/font/
cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /etc/zabbix/zabbix6.0/font/simfang.ttf

5、启动(第一次需要下载镜像,请耐心等待…)

docker-compose up -d

6、访问验证

浏览器访问:http://IP:3999

注意:如果访问到提示"Database error",如下图所示,不要担心,这是Zabbix还没初始化完成,耐心等待后即可正常访问到了!

在这里插入图片描述

默认账号密码:Admin/zabbix

在这里插入图片描述

四、部署Zabbix-agent

注意:由于不是每台服务器都有docker环境,所以zabbix-agent不走容器部署比较方便

1、下载Zabbix-agent

wget https://cdn.zabbix.com/zabbix/binaries/stable/6.0/6.0.30/zabbix_agent-6.0.30-linux-3.0-i386-static.tar.gz --no-check-certificate

tar zxf zabbix_agent-6.0.30-linux-3.0-i386-static.tar.gz -C /usr/local/

2、修改配置文件,10.10.10.0/24 是容器的网段

vi /usr/local/conf/zabbix_agentd.conf
# 修改Server
Server=10.10.10.0/24

3、添加systemd管理

useradd -M zabbix

cat > /usr/lib/systemd/system/zabbix-agent.service << EOF
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target

[Service]
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_agentd.pid
KillMode=control-group
ExecStart=/usr/local/sbin/zabbix_agentd -c /usr/local/conf/zabbix_agentd.conf
ExecStop=/bin/kill -SIGTERM \$MAINPID
RestartSec=10s
User=zabbix
Group=zabbix

[Install]
WantedBy=multi-user.target
EOF

4、启动zabbix-agent并加入开机自启动

systemctl enable zabbix-agent
systemctl start zabbix-agent

添加完成之后,正常在WEB页面添加主机即可,这里不在赘述

OK,至此结束

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐