1. 概述
上一篇内容《zabbix自动发现配置》,大概内容是zabbix server去扫描一个网段,把在线的主机添加到Host列表中。我们本篇内容与上篇相反,这次是Active agent主动联系zabbix server,最后由zabbix server将这些agent加到host里。对于需要部署特别多服务器的人来说,这功能相当给力。所有服务器批量装好zabbix agent,server配置好trigger,所有的服务器都配置好了,非常快速。
2. 配置
2.1配置文件修改
指定server ip
# cat /usr/local/zabbix-2.2.2/etc/zabbix_agentd.conf | grep -E ^ServerActive ServerActive=66.175.222.232
修改Hostname
# cat /usr/local/zabbix-2.2.2/etc/zabbix_agentd.conf | grep -E ^ServerActive ServerActive=66.175.222.232
关于主机名:如果zabbix_agentd.conf配置有定义Hostname,那么zabbix会使用这个Hostname命名,否则agent的主机名(hostname得来的)
修改metadataitem
# cat /usr/local/zabbix-2.2.2/etc/zabbix_agentd.conf | grep -E ^ServerActive ServerActive=66.175.222.232
2.2 配置action
步骤:configuration>>action>>Event source(选择Auto registration)>>Create Action,我们按如下步骤来定义个action
2.2.1 action选项卡
定义Action名称,以及发送消息的主题和内容,使用默认的就行了
2.2.2 Conditions选项卡
Host metadata包含Linux字符的主机将会触发 2.2.3的操作,什么是metadata,文章的下半段会专门讲解。
2.2.3 operations选项卡
满足条件的active host发起请求,server会完成三个动作:
- 把agent加到host列表
- 把agent加入linux servers组
- agent主机link模板Template OS linux
3. 查看结果
查看/tmp/zabbix_server.log我们能看到如下内容:
16585:20150203:161110.910 enabling Zabbix agent checks on host "auto-reg-for-ttlsa-01": host became available
看到如上内容,表明host增加成功,此时此刻的host列表如下:
4. HostMetadataItem与HostMetadata
作用:用于标示主机,通过该符号能够把主机区别开来。比如我们经常用它来区分linux与windows系统,这样才能分别给他们设置组与template等等
4.1 HostMetadataItem用法
HostMetadataItem=system.uname
它的值来之key
4.2 HostMetadata用法
HostMetadata: Linux hehehehehehehehe xxxxx
他的值是直接定义的
通过使用各式各样的metadata我们可以用于区分各个主机,来达到我们各种需求。
###############################################################################################host metadata是zabbix2.2新增加的功能,该功能在zabbix-agent端可以自定义条件,在选择自动注册的时候,zabbix-server端可以根据host metadata来选择条件,从而实现更多的条件筛选。
在zabbix_agentd.conf中需配置一下两个参数:
•HostMetadata=字符串:长度范围为0~255
•HostMetadataItem=item:用于Item获取数据。这里的Item可以设置为system.uname,或者是其他获取到的字符串,长度限制为0~255
1、配置HostMetadataItem和HostMetadata参数
1 [root@AY1405191727556 ~]# vim /etc/zabbix/zabbix_agentd.conf 2 HostMetadataItem=system.uname 3 HostMetadata=worldjoy worljdoy_host
2、在web端设置规则
3、查看结果
添加完成
zabbix的网络自动发现是一个非常强大的功能,该功能可以完成以下工作
•快速发现并添加主机。
•简单的管理。
•随着环境的改变而快速搭建监控系统。
网络发现基于以下信息
•ip地址段
•基于服务的FTP、SSH、WEB、POP3、IMAP、TCP等。
•从zabbix-agent接收到的信息。
•从snmp agent接收到的信息。
网络发现功能不能做到的事情是网络拓扑图的发现。
网络自动发现的两个工作流程是:Discovery(发现、探索)和Actions(动作)。
下面以一个例子来介绍如何配置网络发现。
进入web前段,单机Configuration->Discovery-Creata discovery rule
创建自动添加到相应模板的规则
选择Discovery
注意discovery rule是添加前面定义的discovery rule项目
添加完后当主机发现的时候,zabbix就会启动网络发现进程,并按照设定的扫描规则去发现设备,如下图(在monitoring-》discovery)
可以看到,zabbix的网络自动发现功能的确很强大。在很短的时间内就可以自动添加成百上千台机器的监控,其实自动添加模板和自动分组的功能更是自动发运维中的利器。
Zabbix 自动发现(Discovery)功能使用
随着监控主机不断增多,有的时候需要添加一批机器,特别是刚用zabbix的运维人员需要将公司的所有服务器添加到zabbix,如果使用传统办法去单个添加设备、分组、项目、图像…..结果应该是让人吐的结果。
鉴于这个问题我们可以好好利用下Zabbix的一个发现(Discovery)模块,进而来实现自动刚发现主机、自动将主机添加到主机组、自动加载模板、自动创建项目(item)、自动创建图像,下面我们来看看这个模块如何使用。
一、Zabbix 创建发现规则创建发现规则Configuration ---- discovery ---- Create discovery rule
配置基本信息 配置Checks 添加完checks之后 点击最下面的add添加保存即可
OK 规则已经创建完毕了
下面开始让他自动加入到组自动创建图形吧
二、主机自动加入主机组并关联模板
上面我们了解了如何自动发现主机,那么发现主机之后我们要做什么呢?
将主机加入主机组、并关联相应的模板!这样一整个流程就完善了,那么如何做呢?我们上面已经发现了主机接下来要对主机做操作
所以需要一个action (动作)来执行一些列的操作,下面我们来看具体操作。
2.1、为discovery(发现)创建action(动作)Configuration ---- Actions ---- Event source(选择Discovery) ---- Create action
2.1.1、输入 Action 名字
2.1.2、添加触发Action的条件 这里添加了三个条件 分别是 “ip地址范围”、“服务类型” 和 “Discovery 状态”
2.2、创建操作 2.2.1、“Add host ”添加主机
“Add to host group” 将主机添加到主机组、选择要添加到的主机组
“Link to template” 链接到模板、选择相应的模板 这里我定义了 发现主机就 “添加主机(Add host)”并 “添加到主机组(Add to host groups)”、“链接到相应的模板(Link to template)”
点击“Add” 添加 添加完成之后效果如下 Ok 至此发现主机、添加主机并将主机添加到主机组 链接模板 全部完毕看看效果吧Monitoring ---- Discovery ----选择 自定义的发现规则下面是我定义的一个发现规则的效果 如图是发现的主机 查看主机以及主机相关的图像
自动发现规则还可以针对网段:
zabbix-agent主动注册服务端的
简述:
当主机分布在不同的城市,比如不同的云环境中时,使用主动发现就不好处理了,使用自动注册的方式非常适合在云环境中的部署。
1.配置客户端:
vim /etc/zabbix/zabbix_agentd.conf
配置以下三项:
# 主动模式下的zabbix服务端
ServerActive=zbx.chinasoft.com
# 主机名(这个会自动加入到zabbix-server断的主机显示中)
Hostname=auto_register_agent01
# 作为server端的判断条件入口
HostMetadataItem=system.uname
重启生效
service zabbix-agent restart
2.配置服务端
Configuration --> Action --> Auto registion --> Create action
Action
Name: action_for_auto_register
Default subject: Auto registration: {HOST.HOST}
Host name: {HOST.HOST}
Host IP: {HOST.IP}
Agent port: {HOST.PORT}
Conditon:
Host metadata like Linux
Opertions:
Send message to users: Admin (Zabbix Administrator) via weixin
Add to host groups: Linux servers
Link to templates: Template OS Linux
可以通过在服务端定位日志排错:
grep auto_register_agent01 /var/log/zabbix/zabbix_server.log
可以看到微信收到注册成功的通知