二、通過docker安裝部署zabbix監控平臺
zabbix的安裝部署非常簡單,官方提供了四種安裝途徑,分別是二進位制rpm包安裝方式、原始碼安裝方式、容器安裝方式和虛擬機器映象安裝方式,根據學習方式和運維經驗,這裡推薦大家用docker容器安裝zabbix-server、zabbix-web,而通過rpm包方式安裝zabbix agent/agent2。
Zabbix web端是基於HTTP伺服器和PHP指令碼語言進行構建的,HTTP伺服器可以是nginx或apache,zabbix的資料儲存支援多種資料庫,可以是MySQL、Oracle、PostgreSQL、SQLite等,這裡我們選擇MySQL資料庫作為後端儲存。
採用docker安裝zabbix,需要下載多個映象,分別是:Mysql映象、zabbix-server映象、Zabbix web映象、zabbix-java-gateway映象以及zabbix-agent映象。這些映象都可以從docker官方映象站https://hub.docker.com/下載,分別對應的映象名字為:
zabbix-server映象:zabbix-server-mysql 地址:
Zabbix web映象: zabbix-web-nginx-mysql 地址:https://hub.docker.com/r/zabbix/zabbix-web-nginx-mysql
Zabbix agent映象: zabbix-agent 地址:https://hub.docker.com/r/zabbix/zabbix-agent
Zabbix agent2映象: zabbix-agent2 地址: https://hub.docker.com/r/zabbix/zabbix-agent2
MySQL映象: mysql 地址:
zabbix-java-gateway映象: zabbix-java-gateway 地址:https://hub.docker.com/r/zabbix/zabbix-java-gateway
1、安裝docker引擎
(1): 安裝必要的一些系統工具
[root@dockerserver ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
(2): 新增軟體源資訊
[root@dockerserver ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(3): 更新並安裝 Docker-CE
[root@dockerserver ~]# yum makecache fast
[root@dockerserver ~]# yum -y install docker-ce
(4): 開啟Docker服務
[root@dockerserver ~]# systemctl start docker
2、下載映象
(1)、拉取mysql映象
這裡使用8.0版本,在linux終端拉取8.0.23映象
docker pull mysql:8.0.23
(2)、下載zabbix-server映象
zabbix-server映象分兩種,支援MySQL資料庫zabbix-server-mysql,支援支援PostgreSQL資料庫zabbix/zabbix-server-pgsql。下面安裝的是支援MySQL資料庫的Server映象。
開啟zabbix-server-mysql的docker hub,大家會發現,zabbix-server-mysql有多個版本,可根據自己的環境選擇合適版本。因為我的伺服器是centos7版本,所以選擇的是centos版本,zabbix版本我也選擇最新版5.2.4,所以下載映象方式如下:
docker pull zabbix/zabbix-server-mysql:centos-5.2.4
如果你要使用最新版本的zabbix-server映象,也可以直接執行如下方式下載映象:
docker pull zabbix/zabbix-server-mysql:centos-latest
(3)、下載Zabbix web映象
這裡使用的是基於Nginx web伺服器及支援MySQL資料庫的Zabbix web介面zabbix/zabbix-web-nginx-mysql。這裡我用的是centos-5.2.4版本:
docker pull zabbix/zabbix-web-nginx-mysql:centos-5.2.4
要用最新版本,也可直接用latest版本
docker pull zabbix/zabbix-web-nginx-mysql:latest
(4)、下載zabbix-java-gateway映象
Zabbix本身不支援直接監控Java,而是使用zabbix-java-gateway監控jvm/tomcat效能。這裡我們使用centos-5.2.4版本,在linux終端執行如下命令:
docker pull zabbix/zabbix-java-gateway:centos-5.2.4
3、執行映象
(1)、建立docker網路
啟動zabbix等映象之前,需要先建立一個新的Docker網路。需要將後面的zabbix-server、mysql、web等容器都加入到此網路中,方便互相訪問。在終端使用下面命令建立。
docker network create -d bridge zabbix_net
建立後,可以檢視是否建立成功。
docker network ls
(2)、 執行mysql映象,建立mysql容器
docker run -itd -p 3306:3306 --name zabbix-mysql --network zabbix_net --restart unless-stopped -v /etc/localtime:/etc/localtime -v /dockerdata/zabbix/db:/var/lib/mysql -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix123" -e MYSQL_ROOT_PASSWORD="root123" mysql:8.0.23 --default-authentication-plugin=mysql_native_password --character-set-server=utf8 --collation-server=utf8_bin
3、執行映象
(3)、執行zabbix-java-gateway映象
建立zabbix-java-gateway容器,執行如下命令:
docker run -v /etc/localtime:/etc/localtime -dit --restart=always --name=zabbix-java-gateway --network zabbix_net zabbix/zabbix-java-gateway:centos-5.2.4
(4)、執行zabbix-server-mysql映象
建立zabbix-server-mysql容器之前,首先建立資料卷zabbix-server-vol,通過命令
docker volume create zabbix-server-vol
接著,啟動zabbix-server-mysql容器。
docker run -dit -p 10051:10051 --mount source=zabbix-server-vol,target=/etc/zabbix -v /etc/localtime:/etc/localtime -v /usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts --name=zabbix-server-mysql --restart=always --network zabbix_net -e DB_SERVER_HOST="zabbix-mysql" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix123" -e MYSQL_ROOT_PASSWORD="root123" -e ZBX_JAVAGATEWAY="zabbix-java-gateway" -e ZBX_JAVAGATEWAY_ENABLE="true" -e ZBX_JAVAGATEWAYPORT=10052 zabbix/zabbix-server-mysql:centos-5.2.4
(5)、 執行zabbix-web-nginx-mysql映象
建立zabbix-web-nginx-mysql容器,可執行如下命令:
docker run -dit -p 8080:8080 -v /etc/localtime:/etc/localtime -v /dockerdata/zabbix/fonts/DejaVuSans.ttf:/usr/share/zabbix/assets/fonts/DejaVuSans.ttf --name zabbix-web-nginx-mysql --restart=always --network zabbix_net -e DB_SERVER_HOST="zabbix-mysql" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix123" -e MYSQL_ROOT_PASSWORD="root123" -e ZBX_SERVER_HOST="zabbix-server-mysql" zabbix/zabbix-web-nginx-mysql:centos-5.2.4
(6)、執行zabbix-agent映象
本地agent的安裝:
docker run -dit --name zabbix-agent -p 10050:10050 --network zabbix_net -e ZBX_HOSTNAME="Zabbix server" -e ZBX_SERVER_HOST="zabbix-server-mysql" -e ZBX_SERVER_PORT=10051 zabbix/zabbix-agent:centos-5.2.4
zabbix-agent2:
docker run -dit --name zabbix-agent2 -p 10050:10050 -v /var/run/docker.sock:/var/run/docker.sock --network zabbix_net -e ZBX_HOSTNAME="Zabbix server" -e ZBX_SERVER_HOST="zabbix-server-mysql" -e ZBX_SERVER_PORT=10051 --privileged zabbix/zabbix-agent2:latest
4、通過docker-compose一鍵安裝zabbix
docker-compose是用來做docker的多容器控制,有了docker-compose,我們可以把所有繁瑣的docker操作全都一條命令,自動化的完成。
通過編寫一個docker-compose.yml檔案,只需要寫好後,執行一句:
docker-compose up -d
就可以完成zabbix的部署了。
要使用docker-compose,需要安裝一個工具docker-compose,可直接從官方:https://github.com/docker/compose/releases 處下載編譯好的二進位制檔案即可。
curl -L https://github.com/docker/compose/releases/download/1.28.3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
vim docker-compose.yml
version: '3'
services:
zabbix-web-nginx-mysql:
images: zabbix/zabbix-web-nginx-mysql:centos-5.2.4
restart: always
environment:
- DB_SERVER_HOST=zabbix-mysql
- MYSQL_DATABASE=zabbix
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbix123
- MYSQL_ROOT_PASSWORD=root123
- ZBX_SERVER_HOST=zabbix-server-mysql
ports:
- 8080:8080
volumes:
- /etc/localtime:/etc/localtime
- /data2/zabbix/fonts/DejaVuSans.ttf:/usr/share/zabbix/assets/fonts/DejaVuSans.ttf
networks
- zabbix_net
depends_on:
- zabbix-mysql
- zabbix-server-mysql
zabbix-mysql:
images: mysql:8.0.23
restart: always
environment:
- MYSQL_DATABASE=zabbix
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbix123
- MYSQL_ROOT_PASSWORD=root123
command:
- mysqld
- --default-authentication-plugin=mysql_native_password
- --character-set-server=utf8
- --collation-server=utf8_bin
volumes:
- /etc/localtime:/etc/localtime
- /dockerdata/zabbix/db:/var/lib/mysql
ports:
- 3306:330
networks
- zabbix_net
zabbix-java-gateway:
images: zabbix/zabbix-java-gateway:centos-5.2.4
restart: always
volumes:
- /etc/localtime:/etc/localtime
networks
- zabbix_net
zabbix-server-mysql:
images:zabbix/zabbix-server-mysql:centos-5.2.4
restart: always
volumes:
- zabbix-server-vol:/etc/zabbix
- /data2/zabbix/alertscripts:/usr/lib/zabbix/alertscripts
- /etc/localtime:/etc/localtime
ports:
- 10051:10051
environment:
- DB_SERVER_HOST=zabbix-mysql
- MYSQL_DATABASE=zabbix
- MYSQL_USER=zabbix
- MYSQL_ROOT_PASSWORD=root123
- MYSQL_PASSWORD=zabbix123
- ZBX_JAVAGATEWAY=zabbix-java-gateway
- ZBX_JAVAGATEWAY_ENABLE=true
- ZBX_JAVAGATEWAYPORT=10052
depends_on:
- zabbix-mysql
networks:
- zabbix_net
zabbix-agent2:
images: zabbix/zabbix-agent2:centos-5.2.4
restart: always
ports:
- 10050:10050
environment:
- ZBX_HOSTNAME=Zabbix server
- ZBX_SERVER_HOST=zabbix-server-mysq
- ZBX_SERVER_PORT=10051
networks:
- zabbix_net
networks
zabbix_net:
driver:bridge
volumes:
zabbix-server-vol:
本文來自部落格園,作者:看啥,轉載請註明原文連結:https://www.cnblogs.com/jykn92/p/15149299.html