zabbix部署(docker版)

简介

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix支持主动轮询和被动捕获,所有的报告、统计信息和配置参数都可以通过基于Web的前端页面进行访问。

架构

Zabbix由几个主要的软件组件构成,这些组件的功能如下。
在这里插入图片描述

Server
Zabbix server 是agent程序报告系统可用性、系统完整性和统计数据的核心组件,是所有配置信息、统计信息和操作数据的核心存储器。

数据库存储
所有配置信息和Zabbix收集到的数据都被存储在数据库中。

Web界面
为了从任何地方和任何平台都可以轻松的访问Zabbix, 我们提供基于Web的Zabbix界面。该界面是Zabbix Server的一部分,通常(但不一定)跟Zabbix Server运行在同一台物理机器上。

Proxy代理服务器(大规模集群)
Zabbix proxy 可以替Zabbix Server收集性能和可用性数据。Proxy代理服务器是Zabbix软件可选择部署的一部分;当然,Proxy代理服务器可以帮助单台Zabbix Server分担负载压力。

Agent监控代理
Zabbix agents监控代理 部署在监控目标上,能够主动监控本地资源和应用程序,并将收集到的数据报告给Zabbix Server。

部署zabbix-server和zabbix-web

创建yaml文件,文件内容如下,使用docker-compose进行部署
docker-compose up -d
docker-compose命令会自动查找当前目录yaml文件并执行,执行完毕后查看容器是否运行正常docker ps

CONTAINER ID        IMAGE                                         COMMAND                  CREATED             STATUS              PORTS                                NAMES
6a007aab4ff1        zabbix/zabbix-web-nginx-mysql:ubuntu-5.4.12  "docker-entrypoint.sh"   12 days ago         Up About an hour    8443/tcp, 0.0.0.0:18080->8080/tcp    zabbix-web
f9ad9f3cf85b        zabbix/zabbix-server-mysql:ubuntu-5.4.12      "/usr/bin/tini -- /u…"   12 days ago         Up About an hour                                         zabbix-server-mysql
5518d793caec        mysql:5.7                                     "docker-entrypoint.s…"   12 days ago         Up About an hour    33060/tcp, 0.0.0.0:23306->3306/tcp   mysql-server

docker-compose.yaml

version: "3"
networks:
  mynetwork:
    driver: bridge
    ipam:
      config:
        - subnet: "172.20.1.0/24"

services:
  mysql-server:
    image: mysql:5.7
    container_name: mysql-server
    command: --character-set-server=utf8  --interactive_timeout=120 --wait_timeout=120 --log_warnings=1  --collation-server=utf8_bin --sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION --lower_case_table_names=1
    restart: always 
    environment:
      - MYSQL_DATABASE=zabbix
      - MYSQL_USER=zabbix
      - MYSQL_PASSWORD=zabbix
      - MYSQL_ROOT_PASSWORD=zabbix
    ports:
      - 23306:3306
    networks:
      mynetwork:
        ipv4_address: 172.20.1.2
    volumes:
      - /data/mysql:/var/lib/mysql
      - /etc/localtime:/etc/localtime
      - /etc/timezone:/etc/timezone
  zabbix-server-mysql:
    image: zabbix/zabbix-server-mysql:ubuntu-5.4.12
    container_name: zabbix-server-mysql
    ulimits:
       nproc: 65535
       nofile:
        soft: 20000
        hard: 40000
    privileged: true
    cap_add: 
     - ALL
    restart: always
    environment:
      - DB_SERVER_HOST=172.20.1.2
      - MYSQL_USER=zabbix
      - ZBX_CACHESIZE=4096M
      - MYSQL_PASSWORD=zabbix
      - MYSQL_DATABASE=zabbix
      - MYSQL_ROOT_PASSWORD=zabbix
    ports:
      - 10051:10051
    network_mode: host
    volumes:
      - /etc/localtime:/etc/localtime
      - /etc/timezone:/etc/timezone
      - zabbix-server-conf:/etc/zabbix
      - zabbix-server-alertscripts:/usr/lib/zabbix/alertscripts
  
  zabbix-web:
    image: zabbix/zabbix-web-nginx-mysql:ubuntu-5.4.12
    container_name: zabbix-web
    environment:
      - DB_SERVER_HOST=mysql-server
      - MYSQL_USER=zabbix
      - PHP_TZ=Asia/Shanghai
      - MYSQL_PASSWORD=zabbix
      - MYSQL_DATABASE=zabbix
      - MYSQL_ROOT_PASSWORD=zabbix
    restart: always
    ports:
      - 18080:8080
    networks:
      mynetwork:
        ipv4_address: 172.20.1.3
    volumes:
      - /etc/localtime:/etc/localtime
      - /etc/timezone:/etc/timezone
    links:
      - mysql-server:mysql
      - zabbix-server-mysql:zabbix-server
    depends_on:
      - mysql-server
      - zabbix-server-mysql
volumes:
  zabbix-server-conf:
  zabbix-server-alertscripts:

部署完毕后,打开浏览器访问:http://{主机IP}:18080/
默认帐号密码:Admin/zabbix

被监测主机部署zabbix-agent

下载地址:http://repo.zabbix.com/zabbix/

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当你准备在 Docker部署 Zabbix 时,最好的方法是使用官方的 Zabbix Docker 镜像。以下是详细步骤: 1. 首先,从 Docker Hub 上拉取 Zabbix 镜像,使用以下命令: ``` docker pull zabbix/zabbix-server-mysql:latest ``` 2. 接下来,创建一个 Docker 网络以便容器能够互相通信。使用以下命令: ``` docker network create zabbix_network ``` 3. 然后,启动一个 MySQL 容器。在启动容器时,我们需要指定一个 root 密码,并且将容器连接到之前创建的网络中。使用以下命令: ``` docker run --name zabbix-mysql-server \ -e MYSQL_ROOT_PASSWORD=my_password \ -e MYSQL_USER=zabbix \ -e MYSQL_PASSWORD=zabbix \ -e MYSQL_DATABASE=zabbix \ --network zabbix_network \ -d mysql:latest \ --character-set-server=utf8 --collation-server=utf8_bin ``` 4. 启动 Zabbix Server 容器。在启动容器时,我们需要将其连接到之前创建的网络中,并指定 MySQL 主机和密码。使用以下命令: ``` docker run --name zabbix-server \ -e DB_SERVER_HOST=zabbix-mysql-server \ -e MYSQL_USER=zabbix \ -e MYSQL_PASSWORD=zabbix \ -e MYSQL_DATABASE=zabbix \ --network zabbix_network \ -p 10051:10051 \ -d zabbix/zabbix-server-mysql:latest ``` 5. 最后,启动 Zabbix Web 容器。同样需要将其连接到之前创建的网络中,并将其映射到本地端口以便我们可以通过浏览器访问。使用以下命令: ``` docker run --name zabbix-web-nginx-mysql \ -e DB_SERVER_HOST=zabbix-mysql-server \ -e MYSQL_USER=zabbix \ -e MYSQL_PASSWORD=zabbix \ -e MYSQL_DATABASE=zabbix \ --network zabbix_network \ -p 80:80 \ -d zabbix/zabbix-web-nginx-mysql:latest ``` 这样就完成了 ZabbixDocker 安装部署
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值