1. 程式人生 > 其它 >基於 Docker 安裝 zabbix

基於 Docker 安裝 zabbix

基於 Docker 安裝 zabbix

docker+zabbix,使用docker搭建zabbix服務

  • Zabbix 介紹

  zabbix(音同 zæbix)是一個基於WEB介面的提供分散式系統監視以及網路監視功能的企業級的開源解決方案。

  zabbix能監視各種網路引數,保證伺服器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。

  Zabbix 作為企業級分散式監控系統,具有很多優點,如:分散式監控,支援 node 和 proxy 分散式模式;自動化註冊,根據規則,自動註冊主機到監控平臺,自動新增監控模板;支援 agentd、snmp、ipmi 和 jmx 等很多通訊方式。然而部署一套完整的zabbix,需要安裝資料庫、web伺服器、zabbix-server和zabbix-agent,這幾樣服務,過程都比較複雜,一不留心就可能出錯,所以今天我使用docker容器搭建了一套zabbix服務,不僅搭建快,而且不易出錯。本文適合瞭解docker的朋友。

  zabbix中文文件https://www.zabbix.com/documentation/3.4/zh/start

  • Zabbix 相關映象下載

1. 下載載MySQL映象mysql:5.7。在docker hub上有以下版本

8.0.11,8.0,latest

5.7.22,5.7,5

5.6.40, 5.6

5.5.60, 5.5

這裡使用5.7版本,在linux終端拉取mysql5.7映象

1 docker pull mysql:5.7

檢視下載的映象

1 docker image ls

2. 下載zabbix-server映象,zabbix-server映象分兩種,支援MySQL資料庫

zabbix-server-mysql,支援支援PostgreSQL資料庫zabbix/zabbix-server-pgsql。下面安裝的是支援MySQL資料庫的Server映象。

開啟zabbix-server-mysql的docker hub,大家會發現,zabbix-server-mysql有下面這些版本

1 Zabbix server 3.0 (tags: alpine-3.0-latest, ubuntu-3.0-latest, centos-3.0-latest) 2 Zabbix server 3.0.* (tags: alpine-3.0.*, ubuntu-3.0.*, centos-3.0.*) 3
Zabbix server 3.2 (tags: alpine-3.2-latest, ubuntu-3.2-latest, centos-3.2-latest) 4 Zabbix server 3.2.* (tags: alpine-3.2.*, ubuntu-3.2.*, centos-3.2.*) 5 Zabbix server 3.4 (tags: alpine-3.4-latest, ubuntu-3.4-latest, centos-3.4-latest, alpine-latest, ubuntu-latest, centos-latest, latest) 6 Zabbix server 3.4.* (tags: alpine-3.4.*, ubuntu-3.4.*, centos-3.4.*) 7 Zabbix server 4.0 (tags: alpine-trunk, ubuntu-trunk)

因為我的伺服器是centos7版本,所以選擇的是centos-latest版本。還有後面如果想自己重做映象的話,選擇centos版本,用著會更簡單一點。在linux終端使用

1 docker pull zabbix/zabbix-server-mysql:centos-latest

下載zabbix-server的映象。檢視下載的映象

1 docker image ls

3. 下載Zabbix web映象,這裡使用的是基於Nginx web伺服器及支援MySQL資料庫的Zabbix web介面zabbix/zabbix-web-nginx-mysql。這裡是用的是latest版本,在linux終端使用

1 docker pull zabbix/zabbix-web-nginx-mysql:latest

下載web映象。檢視下載到的映象

4. 下載zabbix-java-gateway映象, Zabbix本身不支援直接監控Java,而是使用zabbix-java-gateway監控jvm/tomcat效能。這裡我們使用latest版本,在linux終端使用

1 docker pull zabbix/zabbix-java-gateway:latest

下載zabbix-java-gateway映象。檢視下載映象

1 docker image ls

  • 映象執行

1. 啟動zabbix等映象之前,需要先建立一個新的 Docker 網路。需要將後面的zabbix-server、mysql、web等容器都加入到此網路中,方便互相訪問。在終端使用下面命令建立。

1 docker network create -d bridge zabbix_net

建立後,可以檢視是否建立成功。

1 docker network ls

2. 執行mysql 映象,建立mysql容器。

1 docker run -dit -p 3306:3306 --name zabbix-mysql --network zabbix_net --restart always -v /etc/localtime:/etc/localtime -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix123" -e MYSQL_ROOT_PASSWORD="root123" mysql:5.7

MYSQL_DATABASE="zabbix" 在msql中建立的資料庫的名

MYSQL_USER="zabbix" 建立msql的登入賬戶名

MYSQL_PASSWORD="zabbix123" 設定建立msql的登入賬戶的密碼

MYSQL_ROOT_PASSWORD="root123" 設定msql資料庫root 的密碼

其中-p 是將容器中的3306埠對映到伺服器的3306埠,

--network zabbix_net是將容器加入到zabbix_net網路中,

-v /etc/localtime:/etc/localtime是同步伺服器和容器內部的時區,

--restart always設定自啟動,

-e MYSQL_DATABASE="zabbix",建立環境變數。

--name zabbix-mysql,給容器命名。

3. 執行zabbix-java-gateway映象,建立zabbix-java-gateway容器。

1 docker run -v /etc/localtime:/etc/localtime -dit --restart=always --name=zabbix-java-gateway --network zabbix_net zabbix/zabbix-java-gateway:latest

4. 執行zabbix-server-mysql映象,建立zabbix-server-mysql容器。

首先建立資料卷zabbix-server-vol,通過命令

1 docker volume create zabbix-server-vol

啟動zabbix-server-mysql容器。

此處的以下內容與 執行mysql 映象,建立mysql容器設定的內容要一致

MYSQL_DATABASE="zabbix"

MYSQL_USER="zabbix"

MYSQL_PASSWORD="zabbix123"

MYSQL_ROOT_PASSWORD="root123"

1 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" zabbix/zabbix-server-mysql:centos-latest
需要悉知各個配置

5. 執行zabbix-web-nginx-mysql映象,建立zabbix-web-nginx-mysql容器。

此處的以下內容與 執行mysql 映象,建立mysql容器設定的內容要一致

MYSQL_DATABASE="zabbix"

MYSQL_USER="zabbix"

MYSQL_PASSWORD="zabbix123"

MYSQL_ROOT_PASSWORD="root123"

1 docker run -dit -p 8080:8080 -v /etc/localtime:/etc/localtime --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:latest

zabbix所需容器已經全部啟動

1 docker ps

6. 在瀏覽器中輸入http://IP/zabbix,開啟zabbix首頁,其中使用者名稱密碼分別是admin/zabbix。

出現下面頁面,zabbix搭建成功。是不是比自己建立資料庫,搭建zabbix-server簡單很多。

歸類 :自動化運維