zabbix使用docker-compose部署和配置
zabbix是一款知名的老牌监控系统,可对硬件、操作系统、数据库、网络等多种目标介质进行统一监控,并集成了UI、监控展示、告警、服务发现等多种功能,可非常高效地进行监控工作。
zabbi本身的使用非常广泛,但由于产品涉及较多组件,安装的过程往往较为麻烦,需要花费不少时间进行部署调试。对此,本文将介绍如何基于docker容器的方式,快速搭建最新版本的zabbix监控平台,解决大家在安装部署上的痛点。
官方网站:
Zabbix 使用手册
https://www.zabbix.com/documentation/7.0/zh/manual
zabbix架构信息
核心架构包括以下几个部分:
- Zabbix Server:Zabbix Server是整个监控系统的核心组件,负责接收和处理来自Zabbix Agent的监控数据。Zabbix Server可以通过多种方式收集数据,如SNMP、IPMI、SSH等。收集到的数据会存储在Zabbix数据库中,供后续处理和分析。
- Zabbix Agent:Zabbix Agent是安装在被监控主机上的软件,负责收集并提供监控数据。Zabbix Agent可以运行在各种操作系统上,支持多种编程语言。Agent会定期将监控数据发送给Zabbix Server,以确保监控数据的实时性和准确性。
- Zabbix Web界面:Zabbix Web界面是一个基于Java的Web应用程序,用于展示和管理监控数据。通过Zabbix Web界面,用户可以轻松查看实时监控数据、历史趋势、报警信息等。此外,Zabbix Web界面还提供了丰富的报告和统计功能,方便用户分析和诊断系统性能。
- Zabbix API:Zabbix API是一个RESTful风格的接口,允许外部程序和脚本访问Zabbix Server的数据和功能。通过Zabbix API,您可以实现自动化操作、数据集成和其他定制功能。
- 数据库:Zabbix使用MySQL或PostgreSQL数据库存储监控数据、配置信息和报警历史等。数据库服务器可以是本地或远程的,以便于扩展和备份。
- 报警和通知:Zabbix支持多种报警方式,如邮件、SMS、即时通讯等。当监控项触发报警条件时,Zabbix Server会将报警信息发送给指定的用户或团队。此外,Zabbix还支持通知渠道的聚合和重试,以确保报警信息的及时传递。
- 插件和扩展:Zabbix具有良好的扩展性,通过丰富的插件和扩展模块,可以实现对各种设备和协议的监控。此外,Zabbix社区不断推出新功能和优化性能,使得Zabbix适用于更多场景。
安装Docker&Docker Compose
参考 https://getdocker.quickso.cn
安装服务端
Zabbix 提供了用于在 Docker 中定义和运行多容器 Zabbix 组件的 compose 文件。 这些 compose 文件可以在 https://github.com/zabbix/zabbix-docker 上的 Zabbix docker 官方仓库中找到。
以下为几个不同版本的 compose 文件:
文件名 | 描述 |
---|---|
docker-compose_v3_alpine_mysql_latest.yaml |
该 compose 文件运行基于 Alpine Linux 的 Zabbix 5.4 最新版本的组件,支持 MySQL 数据库。 |
docker-compose_v3_alpine_mysql_local.yaml |
该 compose 文件本地构建和运行基于 Alpine Linux 的 Zabbix 5.4 最新版本的组件,支持 MySQL数据库。 |
docker-compose_v3_alpine_pgsql_latest.yaml |
该 compose 文件运行基于 Alpine Linux 的 Zabbix 5.4 最新版本的组件,支持 PostgreSQL 数据库。 |
docker-compose_v3_alpine_pgsql_local.yaml |
该 compose 文件本地构建和运行基于 Apline Linux 的 Zabbix 5.4 最新版本的组件,支持 PostgreSQL 数据库。 |
docker-compose_v3_centos_mysql_latest.yaml |
该 compose 文件运行基于 CentOS 8 的 Zabbix 5.4 最新版本的组件,支持 MySQL 数据库。 |
docker-compose_v3_centos_mysql_local.yaml |
该 compose 文件本地构建和运行基于 CentOS 8 的 Zabbix 5.4 最新版本的组件,支持 MySQL 数据库。 |
docker-compose_v3_centos_pgsql_latest.yaml |
该 compose 文件运行基于 CentOS 8 的 Zabbix 5.4 最新版本的组件,支持 PostgreSQL 数据库。 |
docker-compose_v3_centos_pgsql_local.yaml |
该 compose 文件本地构建和运行基于 CentOS 8 的 Zabbix 5.4 最新版本的组件,支持 PostgreSQL 数据库。 |
docker-compose_v3_ubuntu_mysql_latest.yaml |
该 compose 文件运行基于 Ubuntu 20.04 的 Zabbix 5.4 最新版本的组件,支持 MySQL 数据库。 |
docker-compose_v3_ubuntu_mysql_local.yaml |
该 compose 文件本地构建和运行基于 Ubuntu 20.04 的 Zabbix 5.4 最新版本的组件,支持 MySQL 数据库。 |
docker-compose_v3_ubuntu_pgsql_latest.yaml |
该 compose 文件运行基于 Ubuntu 20.04 的 Zabbix 5.4 最新版本的组件,支持 PostgreSQL 数据库。 |
docker-compose_v3_ubuntu_pgsql_local.yaml |
该 compose 文件本地构建和运行基于 Ubuntu 20.04 的 Zabbix 5.4 最新版本的组件,支持 PosegreSQL 数据库。 |
[!NOTE]
Docker compose 文件支持 Docker Compose 3 版本。
本次我们使用docker-compose_v3_alpine_mysql_latest.yaml
文件部署
1 |
|
栗子:
1 |
|
启动
1 |
|
测试
访问测试
默认认证信息
- 用户名Admin
- 密码zabbix
安装agent(客户端)
zabbix agent部署较为简单,你可以使用docker,也可以使用Yum、二进制包等方式安装,此处演示基于docker的安装方式。
1 |
|
[!NOTE]
如果是部署在zabbix Server主机上的监控agent,此时的ZBX_SERVER_HOST需改为zabbix server的容器IP,而不能用主机IP。
添加主机
在目标主机安装好agnt后,即可以在zabbix server端配置相关的主机监控。
- 点击”Create host”,创建新的主机配置。
- 配置完成后,静待一会可看到监控目标生效。