Zabbix-自动注册服务器到Zabbix的三种方式介绍

背景

在项目中,有很多情况下我们没有办法一台一台服务器手动添加,例如

  1. 服务器数量过多
  2. 使用Auto scale等技术自动扩缩容,服务器随时可能被创建或删除
    这种情况下,我们就需要配置自动添加服务器了,Zabbix也是提供了丰富的配置来帮助我们实现这一功能,接下来我们看一下具体可以怎么实现

实操

Autoregistration actions

Autoregistration actions可以说是我心目中最简单的配置了,我来分享一下我是怎么配置的

服务器中配置HostMetadata=RPP-Bankconnector

在/etc/zabbix/zabbix_agent.conf中配置如下

复制代码
HostMetadata=xxx

记得重启agent

配置Autoregistration actions

Alerts -> Actions -> Autoregistration actions,点击左上角Create action

Name: 这个action的名称,可根据意图填写

Conditions: 条件,这边有三个选项,HostName, HostMetadata, Proxy, 由于HostName是唯一的,不可能用来作为条件,所以一般我都选择使用hostmetadata

再看Operations这一个tab

这个tab就是用来设定所有发现主机后需要做的操作,由于实在太多了,我把官网文档里说的粘贴一下

  • Add host
  • Remove host
  • Enable host
  • Disable host
  • Add to host group
  • Remove from host group
  • Add host tags
  • Remove host tags
  • Link template
  • Unlink template
  • Set host inventory mode
    可以看到,操作还是很多的,只需要选择需要的操作进行添加就可以了

Discovery

Data collection -> Discovery中,点击Create Discovery Rules来创建新的Discovery

IP range

在这边我们需要设定我们discover的IP范围,话不多说直接复制官网

复制代码
需要发现的IP地址范围。包括下列格式:
单IP: 192.168.1.33
IP地址范围: 192.168.1-10.1-255。IP地址范围取决于包含的所有地址数量(小于64K)。
IP子网掩码: 192.168.4.0/24
支持的IP掩码:
/16 - /30 用于 IPv4地址
/112 - /128用于IPv6地址
列表: 192.168.1.1-255, 192.168.2.1-100, 192.168.2.200, 192.168.4.0/24
从Zabbix 3.0.0起支持空格、制表符和多行。

Checks

检查项,其实就是用来判断你的host能不能被discover到

复制代码
Zabbix会使用此检查列表来执行网络发现。点击  在弹窗中配置一个新检查。
支持的检查: SSH, LDAP, SMTP, FTP, HTTP, HTTPS, POP, NNTP, IMAP, TCP, Telnet, Zabbix agent, SNMPv1 agent, SNMPv2 agent, SNMPv3 agent, ICMP ping.
基于协议的自动发现使用net.tcp.service[] 功能来检测每台主机,查询SNMP OID的SNMP服务不在此列。通过查询未加密模式的监控项来探测Zabbix agent的存在。请查阅agent监控项获取更多信息。
'端口'参数的格式如下:
单一端口: 22
端口范围: 22-45
列表: 22-45,55,60-70

注意,很多文章中只配置了一个check,但是如果有两个check项,会怎么样呢?其实是完全没有问题的,完全可以设置两个Zabbix agent type的check

其他几个不谈,其实很简单,配置过一个host的应该都知道这几个参数

配置discovery actions

接下来需要去到Alerts -> Actions -> Discovery actions,在这里面配置如果check到对应的数据,该怎么添加到zabbix

可以看到,跟Autoregistration actions差不多的,我们需要这是condition跟operations,由于非常类似,所以这里就不过多赘述了,有问题评论区见吧~

注意

在condition中设置received value的时候,可能很多人会疑惑,我设置了两个check,那这个value是从哪里来的呢?

我一开始也很疑惑,直到我查到了官方说法

复制代码
Specify the value received from an agent (Zabbix, SNMP) check in a discovery rule. String comparison. If several Zabbix agent or SNMP checks are configured for a rule, received values for each of them are checked (each check generates a new event which is matched against all conditions).
equals - equal to the value.
does not equal - not equal to the value.
is greater than or equals - more or equal to the value.
is less than or equals - less or equal to the value.
contains - contains the substring. Parameter is given as a string.
does not contain - does not contain the substring. Parameter is given as a string.

LLD

LLD的话,需要配置一个Discovery,然后先通过discovery来获取对应的服务器列表。

之后通过创建一个Host prototypes来让Zabbix自动创建该Host

图中的Agent的IP地址127.0.0.1也是可以变成一个可选项的,不是非得固定127.0.0.1

可以看到,跟自动注册不一样的是,这个就跟我们的Host界面一样,通过界面化的方式来配置template,tag,hostname等信息,更加可视化

另外,这个Host也可以在配置discovery list的时候通过配置Keep lost resources period来设置多久找不到就自动删除

总结

  1. Autoregistration actions
    • 这应该是最简单的一个,因为只需要写一个action就完事了,不需要配置discovery然后配置action,也不需要适配接口再做后续操作,是我认为最简单的一种用法,但是缺点同样动人
    • 不能自动删除,只能自动添加
  2. Discovery
    • 需要一个确定的IP区间,如果在AWS中有较多子账号,而且配置不当导致private IP冲突的话,对创建host影响很大
    • 可以自动删除(配置对应的discovery action)
  3. LLD
    • 通过接口等方式获取服务器列表,然后添加到zabbix中,适用于AWS CLI这种接口形式的添加
    • 但是还是有个不适用性,就是跨AWS account,无法用一个CLI去获取所有的EC2
    • 可以自动删除(不需要配置,如果没有的话会自动删除)
相关推荐
七夜zippoe10 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
盟接之桥10 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造
Fcy64811 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满11 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠11 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
主机哥哥12 小时前
阿里云OpenClaw部署全攻略,五种方案助你快速部署!
服务器·阿里云·负载均衡
Harvey90312 小时前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s
珠海西格电力科技13 小时前
微电网能量平衡理论的实现条件在不同场景下有哪些差异?
运维·服务器·网络·人工智能·云计算·智慧城市
释怀不想释怀13 小时前
Linux环境变量
linux·运维·服务器
zzzsde13 小时前
【Linux】进程(4):进程优先级&&调度队列
linux·运维·服务器