前言当我们熟悉了Zabbix的日常监控后,我们就可以在生产环境中正确部署和实施监控工作了。而且,通过将ZabbixAgent修改为active,结合ZabbixProxy的使用,可以满足大规模监控的需求。那么同样的问题是如何在大规模监控环境中实现自动化操作。面对数百、数千甚至数万的规模,手动添加监控基本不可能。Zabbix自动化可以分为三大方向:ZabbixAgent的自动添加ZabbixDiscovery自动发现使用ZabbixAPI那么今天我们就来说说ZabbixAgent的自动添加。ZabbixAgent主动注册是指当我们添加新的服务器,安装ZabbixAgent,配置ZabbixServer的IP地址时,ZabbixAgent主动联系ZabbixServer,ZabbixServer接收来自Agent的连接,根据Agent的特点,以及相应的策略自动添加到Host中,并可以根据相关特性自动关联相应的监控模板。ZabbixAgent配置需要开启ZabbixAgent的主动注册,首先我们需要配置ZabbixAgent。ServerActive=ZabbixServer的IP地址Hostname=auto.example.com#设置主机名,如果不设置,默认使用HostnameItem获取主机名。默认情况下,HostnameItem=system.hostname,这样可以获取到Agent的hostname。#HostMetadata=nginx#HostMetadata用于定义主机的元数据。在自动注册时使用,不能超过255个字符。如果未设置,则默认从HostMetadataItem获取。HostMetadataItem=system.uname#HostMetadataItem也用来定义主机的元数据。在自动注册时使用,不能超过255个字符。这里设置的Item是指Zabbix自带的监控项。请注意,此值仅在未设置HostMetadata时有效。ZabbixActionConfigurationAgent配置完成后,我们在web界面配置一个Action。步骤是:configuration>>action>>Eventsource(选择Autoregistration)>>CreateAction。可以自定义一个名字,其他的都是默认的。ActiontabConditionstab我们需要在Conditions中定义需要的条件,这里我们选择HostmetadatalikeLinux。这将与我们在代理配置文件中设置的HostMetadataItem=system.uname匹配。OperationsTab接下来,我们配置Operationstab来告诉Action在条件匹配后做什么。下面我们配置了三个操作。满足条件的activehost在发起请求后会执行如下操作:将agent添加到主机列表中将agent添加到linuxservers组agent主机链接模板TemplateOSlinux这样配置后,新的Agent会自动添加到主机监控中由ZabbixServer自动链接到模板。需要强调的是,需要将模板中的监控类型修改为ZabbixAgent(active)。目前自动注册不会产生event,所以ZabbixServer不会自动在Event中添加host。
