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
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按鈕,即可成功添加伺服器,在清單中會顯示剛才添加的伺服器資訊