环境说明:

搭建系统: Rocky-9.5-x86_64-dvd

什么是zabbix?

Zabbix 是一款企业级开源监控系统,可全方位监控网络设备、服务器、操作系统、中间件、数据库及业务系统等 IT 资源,通过灵活的数据采集机制获取各类指标,提供智能告警、可视化报表及分布式部署能力,支持自定义扩展与第三方集成,帮助企业实时掌握系统状态、及时排查故障,保障业务稳定运行,适用于从中小型机房到大型分布式架构的监控需求。

Zabbix Server是Zabbix的核心组件,是所有配置信息、统计信息和操作数据的核心存储器。 它主要负责接收客户端发送的报告和信息,同时,所有配置、统计数据及配置操作数据均由其组织进行。

使用docker进行安装

要使用docker,必须先安装docker引擎,步骤如下:

yum install -y yum-utils device-mapper-persistent-data lvm2

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

yum makecache fast

yum install docker-ce -y

systemctl restart docker

systemctl enable docker

docker version

镜像拉取

MySQL镜像

这里使用8.0版本,在linux终端拉取8.0.32镜像

docker pull mysql:8.0.32

zabbix-server镜像

zabbix-server镜像分两种,支持MySQL数据库zabbix-server-mysql,支持支持PostgreSQL数据库zabbix/zabbix-server-pgsql。下面安装的是支持MySQL数据库的Server镜像。

docker pull zabbix/zabbix-server-mysql:centos-6.4.0

Zabbix web镜像

这里使用的是基于Nginx web服务器及支持MySQL数据库的Zabbix web接口zabbix/zabbix-web-nginx-mysql。这里我用的是centos-6.4.0版本。

docker pull zabbix/zabbix-web-nginx-mysql:centos-6.4.0

zabbix-java-gateway镜像

Zabbix本身不支持直接监控Java,而是使用zabbix-java-gateway监控jvm/tomcat性能。这里我们使用centos-6.4.0版本,在linux终端执行如下命令。

docker pull zabbix/zabbix-java-gateway:centos-6.4.0

运行镜像

启动zabbix等镜像之前,需要先创建一个新的Docker网络。需要将后面的zabbix-server、mysql、web等容器都加入到此网络中,方便互相访问。在终端使用下面命令创建。

docker network create -d bridge zabbix_net

运行mysql镜像,创建mysql容器

docker run -itd -p 3306:3306 --name zabbix-mysql --network zabbix_net --restart unless-stopped -v /etc/localtime:/etc/localtime -v /dockerdata/zabbix/db:/var/lib/mysql -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix123" -e MYSQL_ROOT_PASSWORD="root123" mysql:8.0.32 --default-authentication-plugin=mysql_native_password --character-set-server=utf8 --collation-server=utf8_bin

运行zabbix-java-gateway镜像

docker run -v /etc/localtime:/etc/localtime -dit --restart=always --name=zabbix-java-gateway --network zabbix_net zabbix/zabbix-java-gateway:centos-6.4.0

运行zabbix-server-mysql镜像

docker volume create zabbix-server-vol

docker run -dit -p 10051:10051 --mount source=zabbix-server-vol,target=/etc/zabbix -v /etc/localtime:/etc/localtime -v /usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts --name=zabbix-server-mysql --restart=always --network zabbix_net -e DB_SERVER_HOST="zabbix-mysql" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix123" -e MYSQL_ROOT_PASSWORD="root123" -e ZBX_JAVAGATEWAY="zabbix-java-gateway"  -e ZBX_JAVAGATEWAY_ENABLE="true" -e  ZBX_JAVAGATEWAYPORT=10052 zabbix/zabbix-server-mysql:centos-6.4.0

 运行zabbix-web-nginx-mysql镜像

docker run -dit -p 8080:8080 -v /etc/localtime:/etc/localtime -v /dockerdata/zabbix/fonts/DejaVuSans.ttf:/usr/share/zabbix/assets/fonts/DejaVuSans.ttf --name zabbix-web-nginx-mysql --restart=always --network zabbix_net -e DB_SERVER_HOST="zabbix-mysql" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix123" -e MYSQL_ROOT_PASSWORD="root123" -e ZBX_SERVER_HOST="zabbix-server-mysql" zabbix/zabbix-web-nginx-mysql:centos-6.4.0

使用浏览器访问zabbix server

http://ip:8080

使用docker compose一键搭建zabbix-server

一键安装zabbix的docker-compose.yml文件内容如下

version: '3'

services:

  zabbix-web-nginx-mysql:

    image: zabbix/zabbix-web-nginx-mysql:centos-6.4.0

    restart: always

    environment:

      - DB_SERVER_HOST=zabbix-mysql

      - MYSQL_DATABASE=zabbix

      - MYSQL_USER=zabbix

      - MYSQL_PASSWORD=zabbix123

      - MYSQL_ROOT_PASSWORD=root123

      - ZBX_SERVER_HOST=zabbix-server-mysql

    ports:

      - 8080:8080

    volumes:

      - /etc/localtime:/etc/localtime

      - /data/zabbix/fonts/DejaVuSans.ttf:/usr/share/zabbix/assets/fonts/DejaVuSans.ttf

    networks:

      - zabbix_net

    depends_on:

      - zabbix-mysql

      - zabbix-server-mysql

  zabbix-mysql:

    image: mysql:8.0.32

    restart: always

    environment:

      - MYSQL_DATABASE=zabbix

      - MYSQL_USER=zabbix

      - MYSQL_PASSWORD=zabbix123

      - MYSQL_ROOT_PASSWORD=root123

    command:

      - mysqld

      - --default-authentication-plugin=mysql_native_password

      - --character-set-server=utf8

      - --collation-server=utf8_bin

    volumes:

      - /etc/localtime:/etc/localtime

      - /data/zabbix/db:/var/lib/mysql

    networks:

      - zabbix_net

  zabbix-java-gateway:

    image: zabbix/zabbix-java-gateway:centos-6.4.0

    restart: always

    volumes:

      - /etc/localtime:/etc/localtime

    networks:

      - zabbix_net

  zabbix-server-mysql:

    image: zabbix/zabbix-server-mysql:centos-6.4.0

    restart: always

    volumes:

      - zabbix-server-vol:/etc/zabbix

      - /data/zabbix/alertscripts:/usr/lib/zabbix/alertscripts

      - /etc/localtime:/etc/localtime

    ports:

      - 10051:10051

    environment:

      - DB_SERVER_HOST=zabbix-mysql

      - MYSQL_DATABASE=zabbix

      - MYSQL_USER=zabbix

      - MYSQL_PASSWORD=zabbix123

      - MYSQL_ROOT_PASSWORD=root123

      - ZBX_JAVAGATEWAY=zabbix-java-gateway

      - ZBX_JAVAGATEWAY_ENABLE=true

      - ZBX_JAVAGATEWAYPORT=10052

      - ZBX_STARTPOLLERS=15

      - ZBX_STARTTRAPPERS=10

      - ZBX_STARTDISCOVERERS=5

    depends_on:

      - zabbix-mysql

    networks:

      - zabbix_net

  zabbix-agent:

    image: zabbix/zabbix-agent:centos-6.4.0

    restart: always

    ports:

      - 10050:10050

    environment:

      - ZBX_HOSTNAME=Zabbix server

      - ZBX_SERVER_HOST=zabbix-server-mysql

      - ZBX_SERVER_PORT=10051

    networks:

      - zabbix_net

networks:

  zabbix_net:

    driver: bridge

volumes:

  zabbix-server-vol:

docker-compose.yml文件编写完成后,在docker-compose.yml所在目录下,运行下面命令:

docker-compose up  -d

注意提前创建需要文件和修改相关权限(还有字体文件的传输)

mkdir -p /data/zabbix/{db,fonts,alertscripts}

chmod -R 777 /data/zabbix

首次登录默认账号和密码

  • 启动成功后,通过 http://宿主机IP:8080 访问 Zabbix Web 界面
  • 默认登录账号:Admin,密码:zabbix(首次登录建议立即修改)

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐