3. Zabbix主机与模板管理:添加被监控主机、创建与管理模板、应用集与监控项

好,咱们进入正题。这一章讲的是Zabbix里最核心的操作——怎么把机器加进来,怎么用模板批量管理。说白了,就是让Zabbix真正开始干活。

我记得刚带团队那会儿,有个新人一口气手动配了50台服务器的监控项,配到凌晨三点。第二天我一看,好家伙,每台机器的配置都不一样,CPU监控项的名字都拼错了三个版本。后来我让他全部删掉,用模板重做,半小时搞定。嗯,这就是模板的价值。

3.1 添加被监控主机

添加主机,听起来简单,但坑不少。我见过太多人卡在“主机不可达”这个报错上。

3.1.1 前置条件

在Zabbix Web界面操作之前,你得先确认几件事:

  • Zabbix Agent已安装:目标机器上必须跑着agent进程
  • 网络连通:Zabbix Server能访问Agent的10050端口
  • Agent配置正确zabbix_agentd.conf里的Server指向你的Zabbix Server IP
⚠️ 我曾经踩过的坑:防火墙没放行10050端口,排查了半小时。后来我养成了习惯,加主机前先telnet一下:telnet 目标IP 10050,通不通一眼就知道。

3.1.2 操作步骤

进到Zabbix Web界面,按这个顺序来:

  1. 点击顶部菜单「配置」→「主机」
  2. 点击右上角「创建主机」按钮
  3. 填写主机名称(建议用FQDN或业务名,别用IP当名字)
  4. 填写可见名称(显示用的,可以中文)
  5. 选择群组(没有就新建一个,比如“生产服务器”)
  6. 填写Agent代理接口的IP和端口(默认10050)
  7. 点击「保存」

保存之后,你会看到主机出现在列表里。但这时候它还是灰色的,因为还没关联模板。

💡 我的习惯:主机名我用“业务线-环境-角色”的命名方式,比如“order-prod-web01”。这样一眼就能看出这台机器是干嘛的。别学某些团队用“server1”、“node2”这种名字,三个月后你自己都认不出来。

3.2 创建与管理模板

模板是什么?说白了就是监控配置的“模具”。你做好一个模板,往上一套,所有机器都有一模一样的监控项、触发器、图形。这才是运维该有的效率。

3.2.1 创建模板

我建议你从零开始建模板,别直接改自带的。为什么?因为升级Zabbix时,自带的模板会被覆盖,你改的东西全没了。

创建步骤:

  1. 「配置」→「模板」→「创建模板」
  2. 填写模板名称(比如“Template OS Linux - 基础监控”)
  3. 选择所属群组
  4. 点击「添加」完成创建

这时候模板是空的,你需要往里面加东西。

3.2.2 模板的层级设计

我个人习惯把模板分成三层:

层级 名称示例 包含内容
基础层 Template OS Linux - Base CPU、内存、磁盘、网络等通用指标
中间件层 Template App Nginx Nginx连接数、请求量、状态码
业务层 Template Service Order 订单接口响应时间、成功率

这样设计的好处是灵活。一台机器可以同时关联基础层和中间件层模板,想加就加,想拆就拆。

🔑 关键点:模板之间可以继承。你可以在基础模板上再套一个应用模板,子模板会自动继承父模板的所有监控项。这个特性我用得特别多。

3.3 应用集与监控项

应用集和监控项,是模板里的两个核心概念。很多人搞混它们的关系,我简单说一下。

3.3.1 应用集(Application)

应用集就是监控项的分类标签。比如“CPU相关”、“内存相关”、“磁盘相关”。它不存数据,只做归类。

创建应用集:

  1. 进入模板编辑页面
  2. 点击「应用集」标签
  3. 点击「创建应用集」
  4. 填写名称(比如“CPU”、“Memory”、“Disk”)

为什么要用应用集?你想想看,当你有200个监控项时,没有分类你根本找不到想要的那个。应用集就是帮你做整理的。

3.3.2 监控项(Item)

监控项才是真正干活的东西。它定义了你采集什么数据、怎么采集、多久采一次。

创建监控项:

  1. 在模板编辑页面点击「监控项」
  2. 点击「创建监控项」
  3. 填写名称(比如“CPU使用率”)
  4. 选择类型(一般用Zabbix Agent)
  5. 填写键值(Key),比如system.cpu.util[,idle]
  6. 设置更新间隔(我一般设30秒或60秒)
  7. 选择历史数据保留时长(默认90天,看磁盘空间调整)
  8. 选择趋势数据保留时长(默认365天)
  9. 关联到对应的应用集
  10. 点击「添加」
💡 避坑指南:更新间隔别设太短。我曾经见过有人设1秒间隔,结果一台机器产生了海量数据,把数据库撑爆了。一般生产环境30秒到60秒就够用。除非你对实时性有变态要求,否则别低于10秒。

3.3.3 常用监控项Key示例

这里列几个我常用的Key,你直接拿去用:

监控项名称 Key 说明
CPU使用率 system.cpu.util[,idle] 获取空闲百分比,再用触发器算使用率
内存使用率 vm.memory.size[pused] 直接返回已用百分比
磁盘根分区使用率 vfs.fs.size[/,pused] 监控根分区
网络入流量 net.if.in[eth0] eth0网卡的入方向流量
系统运行时间 system.uptime 看机器是不是刚重启过

3.3.4 关联模板到主机

模板和监控项都配好了,最后一步就是把模板挂到主机上:

  1. 进入主机编辑页面
  2. 点击「模板」标签
  3. 在「链接新模板」里搜索你创建的模板
  4. 点击「添加」
  5. 点击「更新」保存

等个几十秒,你会看到主机状态从灰色变成绿色。这时候数据就开始往Zabbix里灌了。

⚠️ 注意:关联模板后,Zabbix不会立即采集数据。它要等下一个更新周期才会执行。如果你等不及,可以手动执行一次:在「监测」→「最新数据」里找到对应监控项,点「立即检查」。

3.4 实战经验总结

最后分享几个我在项目中积累的经验:

  • 模板要版本化:每次修改模板,我都在名称里加版本号,比如“v1.2”。这样回滚时直接关联旧版本就行。
  • 别把所有鸡蛋放一个篮子里:一个主机可以关联多个模板,但别把几百个监控项塞进一个模板。拆开管理,后期维护轻松得多。
  • 监控项命名要规范:我见过有人写“CPU”、“cpu_usage”、“CPU使用率”混着用。统一风格,比如都用“CPU使用率 - 总览”这种格式。
  • 定期清理僵尸监控项:有些监控项配了但从来不看,数据还在写,白白浪费磁盘。我每季度会扫一遍,没用的直接删。

嗯,这一章的内容就到这儿。模板管理这块,说白了就是“一次配置,到处复用”。你花点心思把模板设计好,后面能省下大把时间。下一章咱们聊触发器和告警,那才是真正让Zabbix帮你干活的部分。