基於 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簡單很多。

image

 

 

歸類 :自動化運維


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM