Zabbix 设置自动添加主机两种方法(自动注册、自动发现)
在实际生产环境中,我们可能需要将很多台主机添加到 Zabbix Server 里,我们进行手动添加的话,会比较麻烦、费时,而且还容易出错。所以一般我们会设置主机自动注册。这样就比较方便。
官方文档链接 : 点我
针对zabbix agent 设置参数做下特别说明
Server指定可以连接本 agent 的
Zabbix Server或者Zabbix Proxy的 IP 。ServerActive参数是用于在 自动注册和 主动监控(监控项)用的参数,设置为
zabbix server或者是zabbix proxy的 IP。Hostname我们需要设置 Hostname ,因为我们将在 动作中的触发条件中使用,如果你没有在
zabbix_agentd.conf中特别定义Hostname, 则服务器将使用agent的系统主机名命名主机。Linux中的系统主机名可以通过运行hostname命令获取。最后成功添加的主机名称也是该选项设置的值。
一、 通过 agent 自动注册到 zabbix server (官方)
划重点:发起点就是: zabbix-agent
涉及配置:配置---》动作--》自动注册
主机自动注册配置涉及两块:
- agent 配置
- 动作-自动注册
一、 agent 配置
需要配置的参数
Server: 配置为Zabbix Server或者Zabbix Proxy的 IP。ServerActive:配置为Zabbix Server或者Zabbix Proxy的 IP。如果端口改变了,需要在后面加上端口。Hostname:设置主机的名称。
我们也可以使用其它参数值进行设置然后在触发条件中,例如 HostMetadata 和 HostMetadataItem
二、动作-自动注册
配置 ---》 动作 ----》 自动注册 ---》 创建动作。

动作需要设置触发条件,我们可能只需要将自动发现的符合某个条件主机添加到某个主机群组。所以我们这里需要设置触发条件。可以通过 主机名称、主机元数据、zabbix proxy 来设置触发条件。

操作:也就是自动发现的主机符合前面设置条件后需要设置的操作,比如添加到某个群组,链接到某个模板等等。

注意事项
- 如果我们设置好了,上面的配置后,但是发现没有主机注册,我们可以看看是不是我们
zabbix server或者zabbix proxy的监听的端口在防火墙(或者是安全组)有没有开放。默认监听端口是 10051。 - 如果我们可以看到主机注册成功了,但是 agent 的状态一直不是活跃的,那么我们可以看看我们
zabbix agent的监听的端口在防火墙(或者是安全组)没有开放。默认监听端口是 10050。
二、通过 zabbix server 自动发现来添加主机
划重点:发起点就是: zabbix server
涉及配置:配置---》动作--》自动发现,配置---》自动发现
zabbix agent 配置
由于发起点是 zabbix server,所以我们在配置参数时,只需要配置 Server和 Hostname,然后将 ServerActive参数注释。如果我们没有注释该参数,则又会进行自动注册了。如果我们没有设置自动注册项的话,该参数不注释也可以的。
Zabbix server 配置
设置自动发现规则

设置动作-自动发现-创建动作

设置动作的触发条件,就是匹配我们自动发现出来的主机,当自动发现的主机符合触发条件,就添加到 指定的主机组和链接到指定的模板。

设置操作,链接模板,添加到主机群组。

我们可以在
监测---》自动发现查看到我们自动发现到的主机。
三 脑洞大开
脑洞大开一
在思考这个场景的过程中,我想过当 zabbix agent 没有固定ip(公司内部服务器),我们该如何监控,我想可以通过让该主机自动注册到 zabbix server,然后使用 主动发送模式,也就是由 zabbix-agent 自动发送监控数据到 zabbix server,记住我们这里需要设置所有的监控项类型为 zabbix agent(主动式)。 问题点在于: 当客户端IP 变了,zabbix server 是重新添加一个新的 host,还是会自动识别 ,经过测试,发现 zabbix server 不会添加新的主机,也不会更改 之前主机的IP,但是数据是正常采集的,zabbix agent 是会有一个报错。

脑洞大开二
当把 zabbix server 放置在内网,没有固定ip,那么是否可以实现监控呢?我思考了下,是发现不可以的,原因有一点,就是 既然 zabbix server 没有固定ip,所以采用的模式是被动,那么在 zabbix -agent 要设置一个 Server 参数,这个参数的意义是允许哪个 ip 连接我的 agent 的。但是我们的 zabbix server 有没有固定 IP。所以方法是行不通的。
Zabbix 设置自动添加主机两种方法(自动注册、自动发现)的更多相关文章
- 代码操作Word时,目录自动更新的两种方法
最近的项目中有一个功能点为:根据分析数据库并生成报告.不过不是大数据.数据挖掘之类,报告的内容.组织方式都是事先固定下来的.实现的方式为,在普通word文档中插入书签制成模板,然后程序使用OpenXM ...
- C# web api返回类型设置为json的两种方法
web api写api接口时默认返回的是把你的对象序列化后以XML形式返回,那么怎样才能让其返回为json呢,下面就介绍两种方法: 方法一:(改配置法) 找到Global.asax文件,在Applic ...
- ZBrush中设置背面遮罩的两种方法
背面遮罩是ZBrush软件实时遮罩的一种,它的出现能够解决我们在模型雕刻时的一些问题.我们在 ZBrush®中雕刻一个比较薄的物体时,经常会不经意的雕刻到背面的物体.那么遇到此类状况该如何设置ZBru ...
- C# web api 返回类型设置为json的两种方法
每次写博客,第一句话都是这样的:程序员很苦逼,除了会写程序,还得会写博客!当然,希望将来的一天,某位老板看到此博客,给你的程序员职工加点薪资吧!因为程序员的世界除了苦逼就是沉默.我眼中的程序员大多都不 ...
- qt 自动重启(两种方法)
所谓自动重启就是程序自动关闭后在重新打开: 一般一个qt程序main函数如下: int main(int argc, char* argv[]) { QApplication app(argc, ar ...
- Android Studio自动排版的两种方法
Android Studio这样的集成开发环境虽然代码自动化程度很高,但是自动化程度高导致人的自主性就下降了,而且总是依赖编辑器的功能也会搞得代码排版很别扭. 最难受的是你在Android Studi ...
- ios 设置屏幕方向的两种方法
第一种:通过人为的办法改变view.transform的属性. 具体办法: view.transform一般是View的旋转,拉伸移动等属性,类似view.layer.transform,区别在于Vi ...
- 设置cell高度的两种方法(label高度的可变引起cell高度可变的情况)
第一种:(iOS8以后可用) 在Xib或stroyboard中(代码也可以) 利用AutoLayout设置好label的约束(比如可以设置四个边都距离屏幕50等方式,必须四个边都要固定好). 在代码部 ...
- Vue-详解设置路由导航的两种方法: <router-link :to="..."> 和router.push(...)
一.<router-link :to="..."> to里的值可以是一个字符串路径,或者一个描述地址的对象.例如: // 字符串 <router-link to= ...
随机推荐
- C# - VS2019通过重写pictureBox实现简单的桌面截图功能
前言 通过创建客制化组件(继承pictureBox),新增属性和构造方法,实现屏幕截图时需要用到的功能点.再通过监控鼠标按下.移动和释放,来获取起始点区域.最后通过操作BMP图像,实现截图的新增.修改 ...
- Mybatis中动态SQL语句中的parameterType不同数据类型的用法
Mybatis中动态SQL语句中的parameterType不同数据类型的用法1. 简单数据类型, 此时#{id,jdbcType=INTEGER}中id可以取任意名字如#{a,jdbcType ...
- Windows远程桌面多用户登录的问题
RDP WRAPPER 同时登录 多用户补丁 https://cloud.tencent.com/developer/article/1460728 解决系统更新导致无法多用户登录的问题 问题 ...
- fetchone函数和fetchall函数返回值的区别
fetchone函数和fetchall函数返回值的区别 1.fetchone() 返回单个的元组,也就是一条记录(row),如果没有结果,则python返回 None 有结果时,如图: 没结果时,如 ...
- Ubuntu 18.04安装Conda、Jupyter Notebook、Anaconda
1.Conda是一个开源的软件包管理系统和环境管理系统,它可以作为单独的纯净工具安装在系统环境中,有的python库无法用conda获得时,conda允许在conda环境中利用Pip获取包文件.可以将 ...
- golang数据结构和算法之StackLinkedList链表堆栈
会了上一个,这个就差不离了. StackLinkedList.go package StackLinkedList type Node struct { data int next *Node } t ...
- 初学JavaScript正则表达式(五)
范围类 [ ] 例: 'a1b1c1s1v1d1f1'.replace(/[a-z]/g,'q') //q1q1q1q1q1q1q1 将a-z范围内的字符替换为q 'a1b1c1s1v1d1f1AKS ...
- c 和 c++ 啊 Make
- C++ - 结构体构造函数使用总结
关于结构体构造函数使用总结 三种结构体初始化方法 1.利用结构体自带的默认构造函数 2.利用带参数的构造函数 3.利用默认无参的构造函数 要点: 在建立结构体数组时,如果只写了带参数的构造函数将会出现 ...
- 智能指针类模板(上)——STL中的智能指针
智能指针类模板智能指针本质上就是一个对象,它可以像原生指针那样来使用. 智能指针的意义-现代C++开发库中最重要的类模板之一-C++中自动内存管理的主要手段-能够在很大程度上避开内存相关的问题 1.内 ...