docker搭建zabbix,持續更新...


前提:公司需要搭建一台監控服務器,不想直接在服務上搭建zabbix,也不想一個一個docker run的去運行zabbix組件,就去github上找了套zabbix的yaml文件,地址https://github.com/zabbix/zabbix-docker,准備美滋滋的使用docker swarm deploy 一勞永逸的直接搭建,這一執行后直接滿屏報錯,弄得我一臉懵逼,哎,看來飯得一口一口,這偷懶看來是不行了。
1. 首先開始pull zabbix所需要模塊的鏡像,我自己用的docker版本是20.10.9

 docker pull mysql:5.7
 docker pull zabbix/zabbix-server-mysql:centos-latest 
 docker pull zabbix/zabbix-web-nginx-mysql:latest
 docker pull zabbix/zabbix-agent:latest  
 docker pull zabbix/zabbix-java-gateway:latest


mysql:5.7數據服務沒啥可說
zabbix-server后端鏡像,選擇支持MySQL數據庫zabbix-server-mysql,選擇的是centos-latest版本,后面如果想自己重做鏡像的話,需要exec進入容器中,選擇centos版本,用着會更簡單一點。
Zabbix-web鏡像,這里使用的是基於Nginx web服務器及支持MySQL數據庫的Zabbix web接口zabbix/zabbix-web-nginx-mysql
zabbix-java-gateway鏡像,Zabbix本身不支持直接監控Java,而是使用zabbix-java-gateway監控jvm/tomcat性能
abbix/zabbix-agent鏡像, 可以運行在各種支持的平台上,包括 Linux、UNIX 和 Windows,並從設備收集 CPU、內存、磁盤和網絡接口使用情況等數據

2.下載完鏡像開始搭建容器

 docker run --name mysql-server -t       -e MYSQL_DATABASE="zabbix"       -e MYSQL_USER="zabbix"       -e MYSQL_PASSWORD="zabbix"       -e MYSQL_ROOT_PASSWORD="zabbixroot"       -v /sfapp/docker/mysql:/var/lib/mysql       -v /etc/localtime:/etc/localtime       -d mysql:5.7       --character-set-server=utf8       --collation-server=utf8_bin


docker run --name zabbix-server-mysql -t       -e DB_SERVER_HOST="mysql-server"       -e MYSQL_DATABASE="zabbix"       -e MYSQL_USER="zabbix"       -e MYSQL_PASSWORD="zabbix"       -e MYSQL_ROOT_PASSWORD="zabbixroot"       -v /etc/localtime:/etc/localtime       --link mysql-server:mysql       -p 10051:10051       -d zabbix/zabbix-server-mysql:centos-latest


docker run --name zabbix-web-nginx-mysql -t       -e DB_SERVER_HOST="mysql-server"       -e MYSQL_DATABASE="zabbix"       -e MYSQL_USER="zabbix"       -e MYSQL_PASSWORD="zabbix"       -e MYSQL_ROOT_PASSWORD="zabbixroot"       -v /etc/localtime:/etc/localtime       --link mysql-server:mysql       --link zabbix-server-mysql:zabbix-server       -p 8090:8080       -d zabbix/zabbix-web-nginx-mysql:latest


docker run  --name zabbix_agent  --link zabbix-server-mysql:zabbix-server -e ZBX_HOSTNAME="zabbix-server-mysql" -e ZBX_SERVER_PORT="10051" -e ZBX_SERVER_HOST="192.168.1.100" -p 10050:10050 -d zabbix/zabbix-agent:latest


docker run -v /etc/localtime:/etc/localtime -dit --restart=always --name=zabbix-java-gateway  zabbix/zabbix-java-gateway:latest

3.登錄測試

賬號:amdin 密碼:zabbix
測試沒問題了,可以使用了,但我的目錄是以后秒搭建,所以接下來准備自己寫compoes.yml文件

4、先寫個最簡單的docker-composes.yml文件

點擊查看zabbix1.0.yml
version: '3.7'
services:
  mysql-server:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: 123
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix
      MYSQL_DATABASE: zabbix
    ports:
      - "13306:3306"
    networks:
      - zbx_net

  zabbix-server:
    image: zabbix/zabbix-server-mysql:centos-latest
    environment:
      DB_SERVER_HOST: mysql-server
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix
    ports:
      - "10051:10051"
    depends_on:
      - "mysql-server"
    networks:
      - zbx_net

  zabbix-web:
    image: zabbix/zabbix-web-nginx-mysql:latest
    environment:
      DB_SERVER_HOST: mysql-server
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix
      PHP_TZ: Asia/Shanghai
      ZBX_SERVER_HOST: zabbix-server
    ports:
      - 80:8080
    depends_on:
      - mysql-server
      - zabbix-server 
    networks:
      - zbx_net

  zabbix-agent:
    image: zabbix/zabbix-agent:latest
    environment:
      ZBX_SERVER_HOST: zabbix-server
    ports:
     - "10050:10050"
    depends_on:
     - "zabbix-server"
    networks:
     - zbx_net

networks:
 zbx_net:

使用docker-compose進行測試看看有沒有報錯:
docker-compose -f zabbix.yaml up -d

嗯,看來一切正常
5. 接下來繼續修改yaml文件,把掛載的物理路徑加上,注意一定要在本機上創建掛載目錄,不然服務無法啟動
mkdir -p /home/docker/mysql

點擊查看zbbix2.0.yml
version: '3.7'
services:
  mysql-server:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: 123
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix
      MYSQL_DATABASE: zabbix
    volumes:
      - "/etc/localtime:/etc/localtime"
      - "/home/docker/mysql:/var/lib/mysql"
    ports:
      - "13306:3306"
    networks:
      - zbx_net

  zabbix-server:
    image: zabbix/zabbix-server-mysql:centos-latest
    environment:
      DB_SERVER_HOST: mysql-server
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix
    ports:
      - "10051:10051"
    depends_on:
      - "mysql-server"
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro 
      - "zabbix:/var/lib/zabbix"
    networks:
      - zbx_net


  zabbix-web:
    image: zabbix/zabbix-web-nginx-mysql:latest
    environment:
      DB_SERVER_HOST: mysql-server
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix
      PHP_TZ: Asia/Shanghai
      ZBX_SERVER_HOST: zabbix-server
    ports:
      - 80:8080
    depends_on:
      - mysql-server
      - zabbix-server    
    networks:
      - zbx_net

  zabbix-agent:
    image: zabbix/zabbix-agent:latest
    environment:
      ZBX_SERVER_HOST: zabbix-server
    ports:
     - "10050:10050"
    depends_on:
     - "zabbix-server"
    networks:
     - zbx_net

networks:
 zbx_net:
volumes:
  zabbix:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM