天天看點

Zabbix Docker環境部署Zabbix服務端部署

Zabbix服務端部署

  • 本服務部署采用Docker鏡像部署,以簡化部署流程。部署參考 官方中文部署手冊

名稱介紹

  • 主控端:運作Docker容器的Linux伺服器

1、Docker環境

Docker環境不屬于本文檔的介紹範圍,安裝請參考Docker官網

下文中使用到的docker指令介紹:

  • 搜尋鏡像:

    docker search [鏡像名稱]

  • 下載下傳鏡像:

    docker pull [鏡像名稱]

  • 安裝鏡像并啟動鏡像容器:
docker run --name [鏡像别名] \
--link [關聯鏡像]:[關聯鏡像别名] \
-e [容器環境變量名稱]=[容器環境變量值] \
-p [主控端端口]:[容器端口] \
-v [主控端目錄]:[容器目錄] \
-d [鏡像名稱]:[鏡像版本]
           

其中

--link [關聯鏡像]:[關聯鏡像别名]

-e [容器環境變量名稱]=[容器環境變量值]

-p [主控端端口]:[容器端口]

-v [主控端目錄]:[容器目錄]

為可選參數,各參數具體含義以及其他參數請參考Docker官網

  • 進入容器:

    docker exec -it [容器别名或容器ID] bash

  • 在容器中運作指令:

    docker exec -it [容器别名或容器ID] [Shell指令行]

  • 檢視容器日志:

    docker logs [容器别名或容器ID]

  • 從主控端拷貝檔案或檔案夾到容器中:

    docker cp [主控端檔案或目錄] [容器ID]:[容器中的目錄]

  • 從容器拷貝檔案或檔案夾到主控端中:

    docker cp [容器ID]:[容器中的目錄] [主控端檔案或目錄]

  • 停止容器:

    docker stop [容器别名或容器ID]

  • 啟動容器:

    docker start [容器别名或容器ID]

  • 重新開機容器:

    docker restart [容器别名或容器ID]

  • 删除容器:

    docker rm [容器别名或容器ID]

  • 删除鏡像:

    docker rmi [鏡像名稱:鏡像ID]

2、安裝MySQL

  • (1) 搜尋鏡像:
docker search mysql
           
  • (2) 選擇并下載下傳鏡像:
docker pull  mysql
           
  • (3) 安裝并運作鏡像:
    • 在主控端中建立目錄并賦予權限:
mkdir -p /var/mysql/data
chmod -R 775 /var/mysql/data
           
- 運作鏡像:
           
docker run --name zabbix-mysql \
-p 3306:3306 \
-v /var/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root
-d mysql
           

3、安裝Zabbix Java gateway

  • (1) 搜尋鏡像:
docker search zabbix-java-gateway
           
  • (2) 選擇并下載下傳鏡像:
docker pull  zabbix/zabbix-java-gateway
           
  • (3) 安裝并運作鏡像:
docker run --name zabbix-java-gateway \
 -d zabbix/zabbix-java-gateway
           

4、安裝Zabbix Server

  • (1) 搜尋鏡像:
docker search zabbix-server-mysql
           
  • (2) 選擇并下載下傳鏡像:
docker pull  zabbix/zabbix-server-mysql
           
  • (3) 安裝并運作鏡像:
    • 在主控端中建立目錄并賦予權限:
mkdir -p /var/zabbix/data
chmod -R 775 /var/zabbix/data
           
- 運作鏡像:
           
docker run --name zabbix-server \
--link zabbix-mysql:mysql \
--link zabbix-java-gateway:zabbix-java-gateway \
-e DB_SERVER_HOST="mysql" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
-e MYSQL_DATABASE="zabbix" \
-e DB_SERVER_PORT="3306" \
-v /var/zabbix/data:/usr/lib/zabbix \
-p 10051:10051 \
-d zabbix/zabbix-server-mysql
           
- 檢視zabbix-server啟動日志
           
docker logs zabbix-server
           

注意: 此時檢視zabbix-server日志會發現容器啟動失敗,這是因為zabbix-server我們配置的啟動使用zabbix使用者,zabbix資料庫,但是前面建立MySQL時沒有進行此操作

5、解決Zabbix Server啟動失敗問題

  • (1)從Zabbix Server中下載下傳Zabbix的MySQL資料庫腳本到主控端中
docker cp zabbix-server:/usr/share/doc/zabbix-server-mysql/create.sql.gz ./
zcat create.sql.gz > create.sql
           
  • (2)在Mysql中建立zabbix使用者,并将SQL腳本導入到MySQL資料庫中
docker cp ./create.sql zabbix-mysql:/var/mysql
docker exec -it zabbix-mysql bash
cd /var/mysql
mysql -u root -p
root
CREATE user 'zabbix'@'%' IDENTIFIED BY 'zabbix';
create database zabbix;
grant all on zabbix.* to 'zabbix'@'%';
use zabbix;
source create.sql;
           
  • (3)重新開機zabbix-server
docker restart zabbix-server
           

6、安裝Zabbix Web Nginx MySQL

  • (1) 搜尋鏡像:
docker search zabbix-web-nginx-mysql
           
  • (2) 選擇并下載下傳鏡像:
docker pull  zabbix/zabbix-web-nginx-mysql
           
  • (3) 安裝并運作鏡像:
docker run --name zabbix_web \
--link zabbix-mysql:mysql \
--link zabbix-server:zabbix-server \
-e DB_SERVER_HOST="mysql" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_DATABASE="zabbix" \
-e ZBX_SERVER_HOST="zabbix-server" \
-p 80:80 \
-d zabbix/zabbix-web-nginx-mysql
           

至此Zabbix服務容器全部安裝完成。可以通過主控端的IP來通路Zabbix的Web界面,預設賬戶:Admin 密碼:zabbix

Zabbix Docker環境部署Zabbix服務端部署

7、Zabbix用戶端 Zabbix Agent

zabbix-agent為Zabbix的用戶端元件,用來收集需要監控的伺服器資訊。

zabbix可以直接使用linux元件來進行安裝

  • (1)下載下傳安裝zabbix-agent
yum install zabbix-agent -y
           
  • (2)修改zabbix-agent

    zabbix-agent安裝完畢之後,配置在

    /etc/zabbix/zabbix_agentd.conf

    修改配置檔案:主要修改一下三項即可
#Zabbix-Agent被動模式下允許伺服器的授權位址
Server=[zabbix-server的IP位址]
#Zabbix-agent主動模式下的上報位址
ServerActive=[zabbix-server的IP位址]
#Zabbix-agent的伺服器名稱
Hostname=Zabbix server
           

8、Zabbix Web添加主機

  • (1)打開并登入Zabbix Web
  • (2)Configuration -> Hosts -> Create host
    • Host name填寫第7步中的zabbix_agentd.conf中的Hostname
    • Groups選擇對應的伺服器,例如Linux選擇:

      Linux servers

    • Agent interfaces填寫被監控的伺服器的ip位址和端口号(就是第7步中部署zabbix-agent的伺服器的Ip,如果沒有修改過第7步中zabbix_agentd.conf中的zabbix-agent監聽的端口号,則預設端口為10050)
  • (3)切換到Templates界面,在Link new templates選擇對應的模闆,例如Linux伺服器可以選擇:

    Template OS Linux

    。選擇完成之後點選

    add

    按鈕,預設即添加完成
  • (4)點選Add按鈕,即可成功添加伺服器,在清單中會顯示剛才添加的伺服器資訊