Zabbix Docker環境部署

Zabbix服務端部署

名稱介紹

  • 宿主機:運行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

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按鈕,即可成功添加服務器,在列表中會顯示剛纔添加的服務器信息
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章