1. 程式人生 > 其它 >docker搭建zabbix,持續更新...

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 密碼:zbbix
測試沒問題了,可以使用了,但我的目錄是以後秒搭建,所以接下來準備自己寫compoes.yml檔案
4、先寫個最簡單的zabbix.yaml

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  

  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: