Zabbix在Docker中的應用和監控


Zabbix在Docker中的應用和監控

一.如何使Zabbix跑在Docker里

Zabbix官方很早之前就提供里Zabbix的Docker鏡像,而且提供里具體的配置及文件。具體地址:https://github.com/zabbix/zabbix-docker 官方提供三種Docker基礎鏡像的版本,分別為:

  • alpine
  • centos
  • ubuntu

基礎鏡像在使用上沒有太大區別,這里推薦大家使用alpine,這是一個簡化的linux版本,最小體積只有30MB多,建議大家使用。官方提供提供了docker-compose的編排文件,可以使用docker-compose編排工具,”一鍵”啟動一套Zabbix系統。其中包括以下組件:

  • zabbix-server
  • zabbix-agent
  • zabbix-proxy
  • zabbix-web
  • zabbix-java-gateway
  • zabbix-snmptraps

1.Docker基礎環境配置

環境
OS:CentOS 7 x86_64
Docker: docker-ce-18.09.0

1.1 安裝必要的一些系統工具

yum install -y yum-utils device-mapper-persistent-data lvm2

1.2 添加軟件源信息

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.3 更新並安裝 Docker-CE

yum makecache fast
yum -y install docker-ce

1.4 開啟Docker服務

systemctl start docker

1.5 設置開機啟動

systemctl enable docker

1.6 配置docker鏡像加速

vi /etc/docker/daemon.json
{
  "registry-mirrors": ["https://72idtxd8.mirror.aliyuncs.com"]
}

1.7 重啟docker

systemctl restart docker

2.Docker-compose安裝配置

環境
OS:CentOS 7 x86_64
Docker: docker-ce-18.09.0
Docker-compose:docker-compose version 1.23.1
docker-compose是docker推出的一款編排工具,由於zabbix有很多組件,zabbix server,zabbix-web,zabbix-proxy,db等組件,通過docker-compose的配置文件,可以統一編排,做到一鍵啟動一套Zabbix 組件。

2.1 安裝Docker-compose

curl "https://dl.cactifans.com/zabbix_docker/docker-compose" -o /usr/bin/docker-compose
chmod a+x /usr/bin/docker-compose

2.2 查看docker-compose版本

docker-compose version

2.3 安裝git等工具

yum install git wget telnet net-tools -y

2.4 下載zabbix docker倉庫文件並切換到4.0分支

cd /opt
git clone https://github.com/zabbix/zabbix-docker.git
cd zabbix-docker/
git checkout 4.0

由於github訪問較慢,我已git一份到我服務器,大家可以使用以下命令下載使用,只是下載地址變化,其他么有大的變化。

cd /opt
wget https://dl.cactifans.com/zabbix_docker/zabbix-docker.tar.gz
tar zxvf zabbix-docker.tar.gz
cd zabbix-docker/
git checkout 4.0

3.啟動zabbix server

  • zabbix官方提供的docker-compose文件有很多,導致大家感到困惑,下面為大家解釋一下:
docker-compose_v3_alpine_mysql_latest.yaml
v3為docker-compose版本,分v3,v2,與docker-compose版本和docker版本有關系,具體對應關系在這里查看https://docs.docker.com/compose/compose-file/compose-versioning/
alpine為基礎鏡像類型,三種類型alpine/centos/ubuntu可選,三種鏡像在Zabbix使用上沒有任何區別,區別的的只有鏡像大小及操作系統區別,推薦使用alpine
myql為zabbix server所使用的數據庫類型,目前有MySQL/PostgreSQL二種,推薦使用mysql
latest表示為使用官方的最新鏡像,local是下載本地進行build鏡像,如網絡不好,建議不要嘗試,時間較長,很容易失敗
本次使用docker-compose_v3_alpine_mysql_latest.yaml配置文件啟動Zabbix

3.1 啟動zabbix server組件

docker-compose -f docker-compose_v3_alpine_mysql_latest.yaml up -d

3.2 查看運行狀態

docker-compose -f docker-compose_v3_alpine_mysql_latest.yaml ps

啟動之后即可使用http://ip 直接訪問zabbix server,默認賬號密碼為

賬號:Admin 密碼:zabbix

4.基本配置

安裝好之后,部分配置可根據實際需求修改

4.1 修改web端口

1 修改docker-compose_v3_alpine_mysql_latest.yaml文件
vi docker-compose_v3_alpine_mysql_latest.yaml
修改端口為8812

zabbix-web-apache-mysql:
  image: zabbix/zabbix-web-apache-mysql:alpine-4.0-latest
  ports:
   - “80:80"        //修改為8812:80
   - “443:443”
2 停止zabbix server
docker-compose -f docker-compose_v3_alpine_mysql_latest.yaml down
3 啟動zabbix server
docker-compose -f docker-compose_v3_alpine_mysql_latest.yaml up -d

即可使用http://ip:8812 訪問應用

4.2 修改時區

1 修改.env_web
vi .env_web
修改為Asia/Shanghai

PHP_TZ=Europe/Riga   
修改為 PHP_TZ=Asia/Shanghai
2 停止zabbix server
docker-compose -f docker-compose_v3_alpine_mysql_latest.yaml down
3 啟動zabbix server
docker-compose -f docker-compose_v3_alpine_mysql_latest.yaml up -d

4.3 修改字體為中文

由於默認鏡像中文字體亂碼,需要添加中文字體,重新build鏡像,此過程較長,需要網絡良好。

1 修改配置文件
vi zabbix-docker/web-apache-mysql/alpine/Dockerfile
修改成如下內容

ADD conf/etc/zabbix/web/msty.ttf /usr/share/fonts/ttf-dejavu/msty.ttf
ln -s /usr/share/fonts/ttf-dejavu/msty.ttf /usr/share/zabbix/fonts/graphfont.ttf
2 下載字體文件到conf/etc/zabbix/web/目錄
wget https://dl.cactifans.com/zabbix_docker/msty.ttf
3 生成鏡像
zabbix-docker/web-apache-mysql/alpine/build.sh
4 修改docker-compose文件,並啟動
vi  docker-compose_v3_alpine_mysql_latest.yaml
鏡像地址修改為剛才build的

image: zabbix-web-apache-mysql:alpine-latest
5 啟動zabbix server
docker-compose -f docker-compose_v3_alpine_mysql_latest.yaml up -d

二.使用Zabbix監控Docker

隨着Docker的流行,監控Docker已勢在必行,使用Zabbix可以利用LLD(自動發現)自動監控宿主機上所運行的所有Docker狀態。具體地址可查看https://github.com/monitoringartist/zabbix-docker-monitoring/

1.部署方式

提供了二種部署方式

1.使用已有Zabbix Agent加載Docker監控模塊方式.如已在Docker宿主機上安裝Agent,可直接修改配置文件,加載對應的Docker監控模塊,重新啟動Agent即可。
2.使用加載了Zabbix Agent的Docker鏡像方式.如未安裝Zabbix Agent,可直接使用包含了Zabbix Agent的鏡像即可。

2.模塊方式

Zabbix 模塊插件是很好用的,可使用C語言編寫一個模塊,直接加載模塊即可使用,個人認為使用模塊有以下好處:

  • 避免手動添加UserParameter帶來的繁瑣。模塊自動添加UserParameter,無需手動添加
  • 避免腳本泄漏,保存重要信息。如部分腳本里保存數據庫賬號密碼,普通用戶可直接查看內容,加密之后,腳本執行又需要解密,比較繁瑣,使用模塊可避免此類問題。
  • 統一管理自定義監控項。監控某類指標,只需加載對應的模塊即可,按需加載

在Zabbix Agent里添加模塊只需修改以下二項即可

LoadModulePath=/usr/local/modules
LoadModule=docker.so

第一項為模塊路徑,第二項為模塊文件。修改之后重啟Zabbix Agent即可。

監控Docker模塊可在https://github.com/monitoringartist/zabbix-docker-monitoring 下載,注意對應的版本。網站提供的模塊有些有錯誤,需要自行編譯。

3.使用Docker Agent方式

使用以下命令即可啟動一個Agent,即可監控宿主機器上所有運行的Docker容器

docker run \
--name=dockbix-agent-xxl \
--net=host \
--privileged \
-v /:/rootfs \
-v /var/run:/var/run \
--restart unless-stopped \
-e "ZA_Server=<ZABBIX SERVER IP/DNS NAME/IP_RANGE>" \
-e "ZA_ServerActive=<ZABBIX SERVER IP/DNS NAME>" \
-e "ZA_StartAgents=10" \
-e "ZA_Timeout=30" \
-d monitoringartist/dockbix-agent-xxl-limited:latest
  • ZA_Server修改為你的Zabbix ServerIP
  • ZA_ServerActive修改為你的Zabbix ServerIP

即可完成Agent部署

4.關聯模版

在Zabbix主機上導入模版,並關聯主機。模版下載地址:

https://dl.cactifans.com/zabbix_docker/Zabbix-Template-App-Docker.tar.gz 

下載之后解壓導入模版,添加主機即可。主要使用2個模版,一個為主動,一個為被動

Zabbix-Template-App-Docker-active.xml 主動模版
Zabbix-Template-App-Docker.xml 被動模式

添加主機的主機名為宿主機名稱,也可以通過docker日志查看。

轉載文檔

https://blog.cactifans.com/2018/12/28/Zabbix%E5%9C%A8Docker%E4%B8%AD%E7%9A%84%E5%BA%94%E7%94%A8%E5%92%8C%E7%9B%91%E6%8E%A7/


免責聲明!

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



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