基于Docker搭建Zabbix

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 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

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
6月前
|
监控 关系型数据库 MySQL
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
379 30
|
7月前
|
监控 Linux PHP
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
197 20
|
8月前
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
126 23
|
8月前
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
159 25
|
8月前
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
148 22
|
监控 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(详细启动脚本及踩坑记录)不定时更新
1053 0
|
监控 Docker 容器
Zabbix【部署 03】zabbix-agent2安装配置使用(zabbix-agent2监控docker实例分享)
Zabbix【部署 03】zabbix-agent2安装配置使用(zabbix-agent2监控docker实例分享)
1512 0
|
监控 关系型数据库 MySQL
通过docker容器方式部署zabbix-5.2版本监控系统
通过docker容器方式部署zabbix-5.2版本监控系统
667 0
|
监控 Docker 容器
通过docker-compose一键部署zabbix监控平台
通过docker-compose一键部署zabbix监控平台
1528 0
|
监控 Unix Go
zabbix:监控docker应用配置
zabbix:监控docker应用配置
819 0
zabbix:监控docker应用配置