基于Docker搭建Zabbix

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 这篇文章介绍了如何使用Docker来搭建Zabbix监控系统。Zabbix是一个开源的网络监控工具,可以监控服务器、网络设备等各种资源的状态和性能。而Docker是一种容器技术,可以方便地打包应用程序及其依赖环境,使得应用的部署和管理更加简单和可靠。

zabbix简介

zabbix([`zæbiks])是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

zabbix由2部分构成,zabbix server与可选组件zabbix agent。

zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。

image.png


镜像准备

docker pull mysql:5.7

准备mysql5.7镜像。Zabbix需要一个数据库来存储监控数据、配置信息和历史记录等,而MySQL是一种流行的开源关系型数据库,具有高性能、可靠性和易用性等特点,因此被广泛应用于Zabbix的后端存储中。

除了MySQL,Zabbix还支持其他数据库,如PostgreSQL、Oracle和IBM DB2等,这些数据库也都可以作为Zabbix的后端存储。选择哪种数据库取决于具体场景和需求,例如实际负载大小、性能要求、安全性要求等。

image.png

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

下载Zabbix服务器和MySQL(作为Zabbix后端数据库)关联工具,并需基于最新版的CentOS操作系统运行这些组件。

image.png

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

zabbix-web-nginx-mysql是Zabbix监控系统的Web前端,使用nginx作为Web服务器,使用MySQL作为后端存储。该组件提供了一个用户友好的Web界面,可以让用户方便地浏览和管理监控数据、配置信息和历史记录等。

image.png

docker pull zabbix/zabbix-java-gateway:latest

Java Gateway是使用JMX技术来远程管理和监控分布式Java应用程序的代理。它位于Java应用程序和JMX客户端之间,充当中间件,将JMX请求转发到Java应用程序中的相应MBean,并返回结果给JMX客户端。Java Gateway可以处理与多个Java应用程序的连接,从而提供集中的监控和管理接口。

Zabbix Java Gateway具有以下功能:

(1)监控Java应用程序:Zabbix Java Gateway可以监控Java应用程序的性能指标、运行状态和资源使用情况等,比如CPU使用率、内存使用量、线程数等。

(2)数据收集和传输:Java应用程序通过使用Zabbix提供的Java native API,将监控数据发送到Zabbix Java Gateway,然后Zabbix Java Gateway将这些数据转发给Zabbix Server进行处理。

(3)自定义监控项:Zabbix Java Gateway提供了一些特殊接口和函数,使得Java开发人员能够自定义和扩展监控项,以满足特定需求的监控需求。

image.png

docker images

image.png


部署Zabbbix

创建Docker网络

docker network create -d bridge zabbix

image.png

docker network ls

image.png

启动mysql容器

docker run -dit -p 3306:3306 --name zabbix-mysql --network zabbix -v/etc/localtime:/etc/localtime --restart always  -e MYSQL_DATABASE="zabbix" -eMYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix-password" -eMYSQL_ROOT_PASSWORD="root-password" mysql:5.7

image.png

启动zabbix-java-gateway容器

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

image.png

启动zabbix-server容器

docker volume create zabbix-server-vol

此处是创建一个Docker卷(Volume)的命令,其中zabbix-server-vol是卷的名称,可以根据需要进行自定义命名。

Docker卷是用于在容器和主机之间共享数据的一种机制。它允许将数据持久化保存,并且可以在不同的容器之间进行共享和重用。使用卷可以确保数据的持久性和可靠性,即使容器被删除或重新创建,数据也会被保留。

在Zabbix监控系统中,zabbix-server-vol是用于存储Zabbix Server容器中的重要数据的卷。这些数据可能包括配置文件、日志文件、数据库文件等。通过创建一个具名卷(named volume),可以方便地将这些数据与容器关联起来,并确保数据的持久性。

创建卷后,可以在启动Zabbix Server容器时使用该卷,并将容器内的特定路径与卷进行映射,从而实现数据的读写操作。例如,可以使用-v zabbix-server-vol:/path/to/data选项将卷挂载到容器内的/path/to/data路径,使得容器内的数据与卷进行同步。

image.png

docker inspect zabbix-server-vol

此处用于检查指定卷(Volume)的详细信息。

执行该命令后,Docker将返回一个关于卷的JSON格式的输出,其中包含了卷的各种属性和配置信息。这些信息可以帮助用户更好地了解和管理卷。

一般而言,docker inspect zabbix-server-vol命令返回的输出包括以下信息:

  • 卷的名称:即"zabbix-server-vol",用于唯一标识和引用卷。

  • 卷的驱动程序:表示使用哪种驱动程序来实现卷功能。例如,对于本地主机卷,驱动程序可能是local。

  • 卷的挂载点:表示卷被挂载到容器内部的路径,以便在容器和主机之间共享数据。

  • 卷的标签:即用户为卷定义的任意标签,用于进一步描述和分类卷。

  • 创建时间和最后修改时间:表示卷的创建时间和最后一次修改时间。

  • 其他配置项:还包括其他可能与卷相关的配置信息。

image.png

docker run -dit -p 10051:10051 --mount source=zabbix-server-vol,target=/etc/zabbix -v/etc/localtime:/etc/localtime --name=zabbix-server --restart=always --network zabbix -e DB_SERVER_HOST="zabbix-mysql" -eMYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix-password" -e MYSQL_ROOT_PASSWORD="root-password" -eZBX_JAVAGATEWAY="zabbix-java-gateway" zabbix/zabbix-server-mysql:centos-latest

image.png

启动zabbix-web容器

docker run -dit -p 8080:8080 -v /etc/localtime:/etc/localtime --name zabbix-web --restart=always --network zabbix -e DB_SERVER_HOST="zabbix-mysql" -eMYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix-password" -e MYSQL_ROOT_PASSWORD="root-password" -e ZBX_SERVER_HOST="zabbix-server" zabbix/zabbix-web-nginx-mysql:latest

检查启动项

docker ps -a

image.png


Zabbix应用

访问IP:8080端口

image.png

image.png

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
监控 Java 数据库
Zabbix【部署 05】 Docker部署Zabbix Server Agent Agent2 Web interface及 Java-Gate-Way(详细启动脚本及踩坑记录)不定时更新
Zabbix【部署 05】 Docker部署Zabbix Server Agent Agent2 Web interface及 Java-Gate-Way(详细启动脚本及踩坑记录)不定时更新
526 0
|
6月前
|
监控 Docker 容器
Zabbix【部署 03】zabbix-agent2安装配置使用(zabbix-agent2监控docker实例分享)
Zabbix【部署 03】zabbix-agent2安装配置使用(zabbix-agent2监控docker实例分享)
906 0
|
监控 关系型数据库 MySQL
通过docker容器方式部署zabbix-5.2版本监控系统
通过docker容器方式部署zabbix-5.2版本监控系统
450 0
|
监控 Docker 容器
通过docker-compose一键部署zabbix监控平台
通过docker-compose一键部署zabbix监控平台
886 0
|
监控 Unix Go
zabbix:监控docker应用配置
zabbix:监控docker应用配置
607 0
zabbix:监控docker应用配置
QGS
|
监控 关系型数据库 Linux
(Centos7-x86)zabbix5.0—agent2监控docker
记(Centos7-x86)zabbix5.0—agent2监控docker
QGS
366 0
(Centos7-x86)zabbix5.0—agent2监控docker
|
监控 关系型数据库 MySQL
centos7.9 部署 zabbix6.0 + mysql (docker-compose)
centos7.9 部署 zabbix6.0 + mysql (docker-compose)
1096 0
centos7.9 部署 zabbix6.0 + mysql (docker-compose)
|
JSON 监控 Unix
ZABBIX Agent2监控docker
ZABBIX Agent2监控docker
ZABBIX Agent2监控docker
|
监控 安全 Java
使用 Docker 安装 Zabbix,并配置自定义监控项
Zabbix 可以用来监控各种网络参数,来保证服务器和系统的安全运行。并且 Zabbix 还提供了灵活的通知机制,以此来让系统管理员快速定位/解决存在的各种问题。是一个基于 Web 界面提供的分布式系统监控以及网络监控功能的企业级开源解决方案。
1195 0
使用 Docker 安装 Zabbix,并配置自定义监控项
|
Web App开发 监控 网络协议
Zabbix 的 Docker 映像
在Docker中使用 zabbix 进行监控Container 容器提供了以下* Zabbix服务*,请参阅[ Zabbix文件](http://www.zabbix.com/)附加信息。
1737 0
下一篇
无影云桌面