启动器 产品 Bitnami 文档imaxe CLI 博客 联系
监控 监控zabbixmariadbsns自动伸缩

Zabbix Server

可直接用于生产的 Zabbix 服务器与 Web 界面,支持 AWS SNS 通知、自动伸缩组,并提供替你创建资源的 CloudFormation 模板栈。

最新分支
Zabbix 7.0
LTS 分支
7.0 维护中
建议实例
c5.large
通知
AWS SNS
自动伸缩
SQS
价格
0.008 USD/小时 · 60 USD/年
imaxe.cloud AMI 上的 Zabbix 仪表盘
详细程度

Imaxe.cloud 与 Zabbix LLC 没有任何关联或协议。请阅读与 Zabbix LLC 的关系一节。

简介 #

Zabbix 是一套开源的企业级分布式监控方案,可以监控服务器、虚拟机、应用等网络中的各类指标。

我们的 Zabbix AMI 是在 AWS 上开箱即用地启用 Zabbix 的最佳方案,在原产品之上提供额外能力,并配备优质支持。

你的服务器zabbix agent
指标
本镜像zabbix server
告警
你的团队sns · 邮件 · 短信
一句话概括:Agent 上报指标,镜像负责判断,出问题时通知你。

功能 #

通用

我们 Zabbix 镜像的主要特点:

  • 基于 Ubuntu 安装,始终采用可用的最新稳定版本。
  • 已安装最新稳定版的 Zabbix 服务器。
  • 已安装并预配置最新稳定版的 Zabbix Web 界面。
  • 使用最稳定版本的 nginx、PHP、MariaDB 服务器与 Zabbix 进行优化。
  • Web 界面的全部语言均已安装并可用。

特色

我们的镜像还提供额外能力,让你以最快、最省心的方式用足云的能力:

  • 专门的配置,通过 AWS SNS 发送通知。
  • 专门的配置,用于配合自动伸缩组工作。
  • CloudFormation 模板栈,创建所有相关资源(SNS、SQS、IAM 等)。

可用版本 #

我们提供的 Zabbix 版本及其主要特性:

旧版本已被封锁

Zabbix AMI 的旧版本已被 Zabbix LLC 封锁,该公司似乎不希望有任何形式的竞争。Imaxe.cloud 的产品提供了 Zabbix 自身所没有的独特功能,因此我们认为这是一个错误,并正在努力解决。

AMIZabbixZabbix 支持Imaxe 支持SNS自动伸缩UbuntuPHPMariaDBMarketplace
Zabbix 7.0 v1.17.024.048.310.11查看 →
Zabbix 6.4 v2.06.422.048.110.11不可用
Zabbix 6.0 v1.16.020.047.410.11不可用
Zabbix 4.4 v1.24.418.047.210.5不可用
Zabbix 4.2 v8.04.218.047.010.5不可用

生命周期 #

Zabbix 的发布策略相当严格:每隔几个月,当时的稳定版本就会停止支持,必须升级到下一个大版本(连同其带来的各种麻烦)才能继续获得支持。

我们理解,有时要跟上这样严格的生命周期非常困难,因此为自己的镜像设计了一套生命周期策略:在尽可能兼容 Zabbix 生命周期的同时,为用户提供现有最好的支持。

Zabbix 的版本类型

目前 Zabbix 提供两种不同的版本:

  • Standard 版: 包含最新的变更与功能,但没有 LTS 支持。
  • LTS 版: 发布时同样包含最新的变更与功能,并且享有 LTS 支持。

对非 LTS 的 Standard 版的支持

为了让新客户能提前体验今后在 LTS 版本中会用到的优势,我们始终保持一份最新 Standard 版的可用镜像,并启用全部附加功能。

镜像版本号会随着新版本的发布而递增,Zabbix 版本号也会在其升级时随之变化。

对 LTS 版的支持

只要条件允许,我们会持续维护基于 LTS 版本构建的镜像,并每 3 个月更新一次操作系统与附加功能。

一旦出于技术或安全原因无法再让某个镜像保持可用,它会被下线,所有用户都会收到 AWS 的通知,说明更适合他们的新版本。

此外,只要可行,我们都会协助进行版本间迁移。

安装 #

安装流程与创建普通 EC2 实例一致。建议的规格为 c5.large

安全组通常包含以下规则:

类型协议端口范围来源
(*) SSHTCP220.0.0.0/0
(*) HTTPHTTP800.0.0.0/0
(*) 自定义 TCP 规则TCP10050–100520.0.0.0/0
HTTPSHTTPS4430.0.0.0/0
建议

标注 (*) 的规则是必需的,用于访问 Web 界面或保障服务器正常运行。示例中虽然写的是 0.0.0.0/0,但我们建议把访问限制在自有网络或堡垒机。

实例运行后,可以通过以下方式登录:

  • SSH: 使用启动实例时选择的 .pem 密钥,用户名 ubuntu
  • HTTP: 访问 http://zabbix.instance.ip/,用户名为 Admin,密码为刚创建实例的 ID。

配置 #

这里的步骤都以默认用户 Admin 操作。

首次登录 Zabbix 时,有几项设置可以个性化你的使用体验并开始接收通知。点击左侧菜单的 User settings,再点 Profile

为用户添加通知媒介

在接收通知之前,需要为用户添加一个邮箱地址(或你偏好的其他方式)。个人资料页有一个 Media 标签页;在其中点击 Add 链接会打开配置窗口。之后别忘了点击 Update 保存更改。

修改 Admin 用户的密码

默认情况下,Zabbix 镜像使用实例 ID 作为密码。这样保护访问是安全的,但你多半希望换成更好记、或符合自身安全策略的密码。

Profile 页面的 User 标签页中,点击 Change password,两次输入新密码后点击 Update 即可修改 Admin 密码。

修改界面语言

在个人资料页的 User 标签页中,可以通过 Language 选择界面语言。选择新语言、点击 Update 保存并重新登录后生效。

自动伸缩支持 # 进阶

AWS 自动伸缩如何与 Zabbix 协同工作?

要在 Zabbix 中处理自动伸缩,需要考虑三件事:

  1. 实例出现时把它加入 Zabbix。 可以用主动式 Zabbix agent 的自动注册来实现(6.46.04.0)。这样新实例出现时,Zabbix 会自动把它添加为新主机。
  2. 把实例 ID 存入 Zabbix 资产清单。 实例消失(scale in)时我们会收到带有其 ID 的消息,因此需要在主机清单里保存这个 ID,才能查找并删除对应主机。
  3. 接收 AWS 的伸缩消息。 发生伸缩事件时,AWS 会向你定义的 SNS 主题发布消息。把该主题接到 SQS 队列,我们就能从 Zabbix 读取消息,删除退出伸缩组的实例。
AWS 自动伸缩与 Zabbix 的示意图:Auto Scaling、SNS、SQS 以及镜像内的读取器
伸缩事件流:Auto Scaling → SNS → SQS → 镜像内的读取器 → Zabbix API。

配置客户端

让客户端支持 Zabbix 自动伸缩需要两步:配置 Zabbix agent,并添加一个为 instance_id 监控项提供数据的用户参数文件。

Zabbix agent 配置

除了你可能需要的其他改动,Zabbix agent 的本地配置文件(通常是 /etc/zabbix/zabbix_agentd.conf)需要修改六处:

  • 注释掉 Server 选项。
  • 添加 ServerActive=YOUR__ZABBIX__IP__ADDRESS 以配置主动模式服务器。
  • 注释掉 Hostname 选项。
  • StartAgents 设为 0
  • HostnameItem 设为 system.hostname
  • HostMetadataItem 设为 system.uname

这样配置后,Zabbix 客户端工作在主动模式(由客户端向服务器推送信息,而不是接受服务器的检查)。同时让 Zabbix 用机器名作为主机名,省去每次新服务器启动时都要改名。最后,让 Zabbix 把 uname 的输出作为主机元数据发送:AWS 实例使用特殊内核,其中会出现 aws 字样,可用于注册服务器。

instance_id 参数

默认情况下,自动伸缩产生的新服务器在 Zabbix 中会关联到名为 AWS EC2 Template 的特殊模板,其中的 instance_id 监控项与资产清单的 alias 字段绑定。为它提供数据,需要在 Zabbix 客户端上创建如下文件添加用户参数:

/etc/zabbix/zabbix_agentd.d/template_aws_ec2.conf
UserParameter=aws.ec2.instance_id,curl -s http://169.254.169.254/latest/meta-data/instance-id

配置服务器

客户端配置完成后,下一步是让服务器删除已被移除的实例。最快最简单的做法分两步:把伸缩消息发送到 SQS 队列,并配置服务器读取该队列。

把伸缩消息发送到 SQS 队列

我们希望自动伸缩服务发出的通知保存在 SQS 队列中,以获得持久性与扩展性。由于 AWS 自动伸缩把通知发布到 SNS 主题,我们需要:

  • 创建一个 SNS 主题。
  • 创建一个 SQS 队列。
  • 配置 SNS 把消息投递到 SQS。
  • 创建一个可以读取消息的 IAM 用户。

由于这类配置比较繁琐,你可以用我们的 CloudFormation 模板栈在任意区域一次创建全部资源。部署完成后,Outputs 标签页会给出四个需要记录的值:

  • SNSTopicARN:所创建 SNS 主题的 ARN。
  • SQSQueueURL:SQS 队列的 URL。
  • SQSReadIAMUserAccessKeySQSReadIAMUserSecretKey:IAM 用户的密钥与密钥串。

配置时需要这些值。编辑 /etc/zabbix/zabbix_ami.yml,找到类似下面的代码块:

/etc/zabbix/zabbix_ami.yml
sqs:
  delay_seconds: 60
  default_region: us-east-1
  queues:
    - url:
      access_key_id:
      secret_access_key:
      region:

每个带伸缩通知的 SQS 队列,都按已有条目的样子在数组中新增一项,填入 CloudFormation 给出的值。关于这个文件的更多说明见重要文件一节。

SNS 通知 #

本 Zabbix 安装已经可以通过 AWS SNS 发送消息。这种方式避免了从 AWS 发邮件的种种问题,并提供了先进而安全的通知体系。

配置通过 SNS 发送告警

最多可以配置 6 个不同的 SNS 主题,按重要程度区分发送:

Zabbix 严重级别zabbix_ami.yml 中的键
Not classifiednot_classified
Informationinformation
Warningwarning
Averageaverage
Highhigh
Disasterdisaster

要让 Zabbix 发送通知,需要创建这些主题以及一个能连接并发布消息的 IAM 用户。

创建 SNS 主题与 IAM 用户

使用我们的 SNS 主题与 IAM 用户 CloudFormation 模板栈会简单得多,它会一次创建好全部资源。部署完成后,Outputs 标签页会给出需要记录的值:

  • SNSNotClassifiedSNSInformationSNSWarningSNSAverageSNSHighSNSDisaster:各严重级别对应的 SNS 主题。
  • ZabbixSendingUserAccessKeyIdZabbixSendingUserSecretAccessKey:IAM 用户的密钥与密钥串。

根据部署模板栈时选择的选项,其中一个或多个值可能不会出现。

配置 /etc/zabbix/zabbix_ami.yml

/etc/zabbix/zabbix_ami.yml 中有专门配置 SNS 选项的一节:

/etc/zabbix/zabbix_ami.yml
sns:
  aws:
    access_key_id:
    secret_access_key:
    region:
  topics:
    not_classified: arn:aws:sns:eu-west-1:000000000000:sample-sns
    information:    arn:aws:sns:eu-west-1:000000000000:sample-sns
    warning:        arn:aws:sns:eu-west-1:000000000000:sample-sns
    average:        arn:aws:sns:eu-west-1:000000000000:sample-sns
    high:           arn:aws:sns:eu-west-1:000000000000:sample-sns
    disaster:       arn:aws:sns:eu-west-1:000000000000:sample-sns

填写想用的 SNS 主题(愿意的话同一个主题可以重复使用),以及密钥、密钥串和区域。就这么简单!

配置 Zabbix 用户

最后一步是让 Zabbix 通过 SNS 发送通知:

  1. 用你的账号登录 Zabbix 界面。
  2. 进入 User settings → Profile
  3. 打开 Media 标签页。
  4. 添加一个类型为 AWS SNS 的新媒介,勾选 Enabled,其余字段按需填写(Send to 目前未被使用)。
  5. 点击 Add 添加媒介,再点击 Update 保存更改。

CloudFormation #

由于创建全部所需的 AWS 资源比较繁琐,这里可以下载不同的 AWS CloudFormation 模板栈来简化工作。

自动伸缩

SNS Topic + SQS Queue + IAM User

创建供伸缩组关联的 SNS 主题、接收其通知的 SQS 队列,以及可读取并删除队列消息的 IAM 用户。

通知

SNS Topics + IAM User

创建最多 5 个供 Zabbix 发布通知的 SNS 主题,以及一个可以发布通知的 IAM 用户。

重要文件 # 进阶

Zabbix 镜像里有几个你应当了解的特殊文件。

/etc/zabbix/zabbix_ami.yml

这是最重要的一个文件,它掌管着伸缩检查、SNS 通知等特色功能的配置。示例如下(数据为虚构):

/etc/zabbix/zabbix_ami.yml
zabbix:
  api:
    user: autoscaler_api_user
    password: i-073672daf01037aea94
sns:
  aws:
    access_key_id: AKK4L6A3OXZZ5HE2POQRU7V
    secret_access_key: cICycAg26hSDpsJwbhZjbaaYlt4Tz3n1xqE7Oxp6X2Hf
    region: us-east-1
  topics:
    not_classified: arn:aws:sns:us-east-1:000000000:Zabbix-General-SNS
    information:    arn:aws:sns:us-east-1:000000000:Zabbix-General-SNS
    warning:        arn:aws:sns:us-east-1:000000000:Zabbix-General-SNS
    average:        arn:aws:sns:us-east-1:000000000:Zabbix-General-SNS
    high:           arn:aws:sns:us-east-1:000000000:Zabbix-General-SNS
    disaster:       arn:aws:sns:us-east-1:000000000:Zabbix-General-SNS
sqs:
  delay_seconds: 60
  default_region: us-east-1
  queues:
    - url: https://sqs.us-east-1.amazonaws.com/000000000/zabbix-pro-sqs-queue
      access_key_id: AKIA3OXZZ5HEWUR5A16CNWH
      secret_access_key: 8ttYO3Ba9K6p0C+aj3fH5cDt2eRLHmlkHbMtlrpv18S7KRbC
      region: us-east-1

目前该文件分为三部分:

  • zabbix:删除过期主机需要连接 Zabbix 服务器,因此要有 API 访问权限。我们会为此创建专用用户,其连接信息写在这里。
  • sns:通过 SNS 发送告警所需的配置。这里设置 IAM 用户信息和将要使用的 SNS 主题。
  • sqs:处理 AWS 伸缩消息的配置。这里定义队列的轮询间隔(delay_seconds)以及要检查的各个队列。
切勿把该文件提交到代码仓库

文件中含有明文 IAM 凭证。请限制其权限,并定期轮换密钥。

/var/log/zabbix-sqs-reader/zabbix-sqs-reader.log

该文件记录从 SQS 读取到的各类自动伸缩事件。

完成配置之前,你会看到消息 Ops! It looks like the file /etc/zabbix/zabbix_ami.yml hasn't been configured yet. We better sleep for 5 minutes.——这是正常的,配置好 zabbix_ami.yml 后就会消失。

镜像更新 # 进阶

开始之前

动手之前请通读本节,并对所有数据做好备份。

Zabbix 会不断发布带来新功能与改进的新版本,因此最好定期更新我们的镜像。遗憾的是,这些新特性往往伴随数据库与内部结构的变化,升级既有安装时可能带来麻烦。

我们的 Zabbix 镜像正是规避这些问题的最佳方式:我们提供了一条比常规做法更快、更简单也更安全的大版本升级路径。

升级概览

我们镜像的升级流程相当简单:

  • 导出当前数据库。
  • 用最新稳定版本启动一个新镜像。
  • 把数据库导出文件上传到新实例。
  • 运行我们的迁移脚本。

这样新旧两个版本可以同时运行,你可以充分测试,确认一切正常后再迁移该实例的 EIP,或逐步切换客户端。

本教程中,源端指你现有的 Zabbix 服务器,目标端指新服务器。

升级流程

第 1 步:备份源端服务器

第一步是为源端服务器创建镜像,以免意外丢失数据。可参考 AWS 创建 AMI 的文档

第 2 步:导出数据库并记录 Zabbix 版本

通过 SSH 登录实例并切换到 root:

bash
sudo /bin/su -

随后把数据库导出到文件:

bash
mysqldump zabbix > zabbix_origin_database.sql

最后把该文件下载到本机,以便稍后上传到新服务器。同时记录当前使用的 Zabbix 版本:在 Web 界面即可看到,形如 4.0、4.2、4.4 或 5.4。

第 3 步:启动新的 Zabbix 实例

下一步是用最新稳定版镜像创建新的 Zabbix 实例,可在我们的 AWS Marketplace 卖家主页找到。至少需要使用我们 Zabbix 镜像的 6.0 版本。

这个新实例就是我们迁移数据的目标端,它已经预装并更新到最新版本。启动之后,把源端服务器的数据库导出文件复制上去。

第 4 步:升级数据库

要导入现有数据库、升级到新版本并补齐必要配置,使用脚本 /opt/tools/bin/zabbix-ami-upgrade.sh。以 ubuntu 用户运行,并传入原 Zabbix 版本和导出文件。例如从 Zabbix 4.0 迁移:

bash
/opt/tools/bin/zabbix-ami-upgrade.sh 4.0 zabbix_origin_database.sql

过程中会逐步提示所执行的操作,结束后即可继续使用新的 Zabbix 服务器。

第 5 步:访问 Web 界面

迁移完成后即可打开 Web 界面查看服务器的整体状况。注意:需要使用与原服务器相同的用户名和密码。

第 6 步:迁移特殊配置并切换客户端

数据库可用之后,还要考虑此前可能安装在服务器上的其他配置,例如:

  • 监控脚本。
  • 额外的系统软件包。
  • 已安装的 SSL 证书。

还需要把为该实例配置的 EIP 迁移过来,这样客户端就无需改动。

如果尚未使用 EIP,现在是开始使用的好时机;否则你必须在所有客户端上修改新服务器的 IP。

支持 #

使用这个 Zabbix AMI 包含以下方面的支持:

  • AMI 的安装。
  • 初始配置。
  • 与 AMI 相关的附加配置(例如使用 Let’s Encrypt)。
  • 与 AMI 相关的 Zabbix 配置。
  • 通过 SNS 发送 Zabbix 通知。
  • Zabbix 中的自动伸缩支持。
  • 我们的 CloudFormation 模板栈。
  • Zabbix 的通用支持。
  • AMI 的更新、升级与迁移。

更新日志 #

镜像历史。日期为各版本在 AWS Marketplace 的发布时间。

v7.0 2025-09-09最新分支

Zabbix 7.0 · 1.1 版

发布我们 Zabbix 7.0 镜像的 1.1 版,已安装配置好 Zabbix,并支持自动伸缩与 SNS 通知。

新增 在 Ubuntu 24.04 上安装配置 Zabbix 7.0,搭配 PHP 8.3 与 MariaDB 10.11。
新增 通过 SQS 支持自动伸缩,并支持 SNS 通知。
v6.4 2024-01-27

Zabbix 6.4 · 1.0 版

发布我们 Zabbix 6.4 镜像的 1.0 版,已安装配置好 Zabbix,并支持自动伸缩与 SNS 通知。

新增 在 Ubuntu 22.04 上安装配置 Zabbix 6.4,搭配 PHP 8.1 与 MariaDB 10.11。
新增 通过 SQS 支持自动伸缩,并支持 SNS 通知。
v6.0 2022-09-27LTS

Zabbix 6.0 · 1.0 版

发布我们 Zabbix 6.0 LTS 镜像的 1.0 版,已安装配置好 Zabbix,并支持自动伸缩与 SNS 通知。

新增 在 Ubuntu 20.04 上安装配置 Zabbix 6.0 LTS,搭配 PHP 7.4 与 MariaDB 10.11。
新增 通过 SQS 支持自动伸缩,并支持 SNS 通知。
v5.4 2022-03-04

Zabbix 5.4 · 1.0 版

发布我们 Zabbix 5.4 镜像的 1.0 版,已安装配置好 Zabbix,并支持自动伸缩与 SNS 通知。

新增 安装配置 Zabbix 5.4,支持自动伸缩与 SNS 通知。

与 Zabbix LLC 的关系 #

Imaxe.cloud 与维护 Zabbix 的公司 Zabbix LLC 没有、也从未有过任何形式的协议。

这里提供的信息与支持均为非官方性质,围绕自由软件产品 Zabbix 及我们在其之上构建的附加能力。

在线支持 · 周一至周五 9:00–18:00 CET

使用这个 AMI 需要帮助吗?

回复你的正是构建镜像的同一支团队——真正的工程师,没有机器人,也没有一线转接。

< 4 小时工作日首次响应
ES / EN支持语言
已包含在 AMI 价格内