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按鈕,即可成功添加服務器,在列表中會顯示剛纔添加的服務器信息