Zabbix自动发现和自动注册的区别
背景:对于Zabbix本人还是比较了解的,因为硕士论文的课题就是这个,但是对自动发现和自动注册一直有些模糊,本着“既然未来也要从事运维工作,如果遇到一个问题超过三次就应该把他搞懂。”这个原则,编写此文档一是加深自己的印象,二是以后遗忘的时候可以进行复习。
概述:自动发现和自动注册都是为了实现批量增加主机,提高运维效率,之前有做过一个程序通过调用zabbix的api接口实现读取excel批量增加、修改、删除主机,其中批量添加中可以实现使用不同的模板和用户组,==暂不确定自动发现和自动注册是否可以支持将发现的主机使用不同的模板。==此处待修改完善。
自动发现:
1、基础概念
自动发现基于IP地址范围和检查类型实现的,其中检查类型包括:
- FTP
- HTTP/HTTPS
- ICMP ping
- IMAP
- LDAP
- NNTP
- POP
- SMTP
- SNMPv1/v2/v3
- SSH
- TCP
- Telnet
- Zabbix客户端
以上类型待解释
2、原理:
自动发现分为扫描和动作两步
扫描:
Zabbix服务端会周期性地扫描发现规则中定义的ip地址段,根据每一个规则配置的检查频率和检查类型对IP段中的主机进行响应的扫描,如果类型选用的是Zabbix客户端、端口使用10050,键值输入zabbix默认键值,那么zabbix服务端就会周期性地在ip段中扫描10050端口,然后匹配键值,若能获取数据就会把这台主机加入到自动发现规则中。
动作:
动作中的条件包括:
- agent代理程序
- 主机IP地址
- 在线/不在线
- 接收到的值
- 服务端口
- 服务类型
- 自动发现检查
- 自动发现物件
- 自动发现状态
- 自动发现规则
可以配置同时满足的条件,在满足此条件之后开始执行操作,操作包括: - 发送消息
- 远程命令
- 添加主机
- 移除主机
- 添加到主机群组
- 从主机群组移除
- 与模板关联
- 从模板断开连接
- 启动主机
- 停用主机
- 设置主机清单模式
基本上每一个操作都有对应的细节,比如添加到群组,可以选择满足此条件之后将此主机添加到指定群组,若需要将不同的主机添加到不同的群组,需要添加多个动作,在每个动作中配置约束条件即可。
3、小结
所以通过自动注册可以实现对主机定制化的批量添加、修改、删除,还有执行命令等动作,所以当时编写的程序就没啥意义了。
自动注册:
1、基本概念
自动注册是指Agent主动且自动想Server发起注册请求,与自动发现的功能一样,但是自动注册适用于特定的场景,如果某个条件未知(如agent的ip地址段,操作系统版本等),此时就无法适用自动发现了,因为server的地址是已知的,所以可以让agent主动发起请求,实现主机自动添加到zabbix web中。当下公有云比较火,而公有云中的ip分配大部分是随机的,此时就适合适用自动注册。自动注册在web端没有配置的界面,但是可以在动作中进行配置。
2、原理:
自动注册分为两个步骤:
- Agent设置参数
- zabbix web中配置动作
与自动发现不同的是第一个步骤,第二个动作基本一样。
客户端配置参数:
Server=172.16.213.231
ServerActive=172.16.213.231 #这里是主动模式下zabbix服务器的地址
Hostname=elk_172.16.213.71
HostMetadata=linux zabbix.alibaba #这里设置了两个元数据,一个是告诉自己是linux服务器,另一个就是写一个通用的带有公司标识的字符串。
自动注册请求发生在每次客户端发送一个刷新主动检查请求到服务器时。请求的延时在客户端中配置文件zabbix_agentd.conf的RefreshActiveChecks 参数中指定。第一次请求将在客户端重启之后立即发送。
配置动作
自动注册动作中的条件有:
- agent代理程序
- 主机元数据
- 主机名称
自动注册动作中的条件比自动发现少,但是操作细节是一样的,这里就不赘述了,
3、小结
自动注册的过程与自动发现的过程类似,但是需要对每个客户端的agent进行配置,这就显得不太方便了,可以使用ansible进行批量的配置agent,提高运维效率。