1.为什么需要自动化添加主机
当有100台主机需要添加到监控系统,手动一个个添加很繁琐!可以使用zabbix的自动发现和自动注册功能
2.主机自动发现
2.1自动发现原理
自动发现由两个步骤组成
- 定义规则,在网络自动发现规则中,定义要扫描的IP段,发现满足规则的主机
- 发现主机后把主机添加到对应的主机群组,添加模板,发送信息通知
2.2定义网络发现规则
- 配置 -> 自动发现
- 点击 创建发现规则
- 编辑自动发现规则属性
- 定义ip范围: 定义192.168.1.1-254 指zabbix会自动扫面这个网段的所有ip 依次连接这些ip的10050端口
- 检查: 尝试通过system.uname监控项,看看是否能获取数据,如果可以则添加主机
2.3场景一需求
- 发现有zabbix-agent运行的主机
- 每10分钟监测一次
- 如果主机正常运行超过2分钟,添加主机
- 如果主机停机超过24小时,删除主机
- 将linux主机添加到linux server组 连接模板 template os linux
2.3.1设定规则
2.3.2设定自动发现主机后的动作
- zabbix agent 服务是 up
- system.uname (规则中定义的zabbix agent键值)包含“linux”
- 正常运行时间为2分钟或者120s或更长
定义符合主机的条件
system.uname值中包含linux
在线时间大于2分钟
服务类型是zabbix-agent
主机符合要求后的动作
添加主机
添加到指定的组
关联指定模板
2.3.3定义动作删除失联主机
PS: 网络发现总结
网络发现虽然能发现并添加主机,但仍让存在一些问题
- 发现时间长,效率低 1 2 3 4 5 6
- 扫描过程中容易漏扫
- 当ip地址不固定难以实现
- 无法实现不同类型的主机关联不同模板
3.主机主动注册
3.1自动注册原理
自动注册(agent auto registration)功能主要用于Agent主动向Server注册,与网络自动发现有同样的功能,但这个环境更适用于云主机环境,云主机的ip地址是没有规律的很难做到自动发现
1.注册时间短
2.试用与复杂的云环境,ip地址无规律
3.关联不同的模板
4.提高server性能
3.2自动注册实践
3.2.1 场景需求
- 根具不同的主机名称关联不同的主机模板
- local.linux.nginx主机节点,需要关联不同的模板 template os linux模板 nginx 模板 tcp status模板
- local.windows主机节点,需要关联template os windows 模板
3.2.2 配置zabbix-agent
每当活动agent刷新主动检查到server服务器时,都会进行自动注册尝试
请求的延迟在agent的 RefreshActiveChecks 参数中指定,第一个请求在 agent 重新启动后立即发送
Server=zabbix.rongbiz.net
ServerActive=zabbix.rongbiz.net
Hostname=local.linux.file-192.168.1.43
HostMetadata=local.linux.nginx
设置自动注册后的动作
3.2.3配置linux主机自动注册的动作
添加linux主机 并添加指定群组local.linux 关联template os linux 发送信息到指定群组
自动注册的服务器: {HOST.HOST}
本地Linux主机 {HOST.HOST} 自动注册到RSTX监控中心
Host name: {HOST.HOST}
Host IP: {HOST.IP}
Agent port: {HOST.PORT}
自动关联tcp模板
自动关联nginx模板
ansible剧本
http://file.yangyijing.cn/zabbix/ansible/Ngx_Tcp_zabbix_ansible.tar.gz
3.2.3配置windows主机自动注册的动作