zabbix 如何设置客户端自动注册(81) – 21运维
通知: .-...

zabbix 如何设置客户端自动注册(81)

Zabbix 21运维 6626浏览 0评论

1. 概述
上边内容《zabbix Discovery 》我们对configuration的一个重要功能discovery做了一个概念说明以及实战操作,大概内容是zabbix server去扫描一个网段,把在线的主机添加到Host列表中。而客户端自动注册功能和discovery相反,这次是Active agent主动联系zabbix server,最后由zabbix server将这些agent加到host里。对于需要部署特别多服务器的人来说,这功能相当给力。所有服务器批量装好zabbix agent,server配置好trigger,所有的服务器都配置好了,非常快速。

2. 配置

2.1客户端配置文件修改

修改ServerActive(主动模式):指向zabbix所在服务器IP,如果是多个,请分好隔开。
修改Hostname 主机名(可选):我们这里为了方便测试,将要添加的主机的主机名改成了auto_reg_server。如果zabbix_agentd.conf配置有定义Hostname,那么zabbix会使用这个Hostname命名,否则agent的主机名(hostname得来的)。
修改HostMetadata=linux

2.2 配置action

configuration-》action-》Event source(选择Auto registration)-》Create Action,步骤如下:
1
定义Action名称,以及发送消息的主题和内容,使用默认的就行了.
定义条件conditions:
1
Host metadata包含Linux字符的主机将会触发 如下opration的操作,什么是metadata,文章的下半段会专门讲解

定义操作operations:
1

3,查看结果
1

 

HostMetadataItem与HostMetadata参数作用:用于标示主机,通过该符号能够把主机区别开来,给主机一个属性标志。比如我们经常用它来区分linux与windows系统,这样才能分别给他们设置组与template等等。

HostMetadataItem用法
HostMetadataItem=system.uname   它的值来自key

HostMetadata用法
 HostMetadata: Linux xxxx  xxxxx  他的值是直接定义的,自己定义标识。通过使用各式各样的metadata我们可以用于区分各个主机,来达到我们各种需求。
若采用salt批量操作主机添加设置,可以通过salt -N ‘groupname’ cmd.script salt://xxx/salt-agent-add-xx.sh,随便写了一个脚本如下(针对centos,ubuntu自行完善脚本):

#!/bin/bash
id=$HOSTNAME
masterip=192.168.1.2
rpm  -qa | grep zabbix-agent >/dev/null  2>&1
flag=$?
if [ $flag  -ne 0 ];then
	rpm  -ivh http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm >/dev/null  2>&1
	yum install zabbix-agent  -y >/dev/null  2>&1
  else
  	echo "zabbix-agent already installed,exit "
	exit 0;
fi
#排除空行和注释行,请写入到临时文件
cat   /etc/zabbix/zabbix_agentd.conf  | grep  -Ev  "^#|^$" >zag.txt
\cp zag.txt /etc/zabbix/zabbix_agentd.conf 
#配置zabbix-agent配置文件
sed  -i "s/Server=127.0.0.1/Server=$masterip/g"  /etc/zabbix/zabbix_agentd.conf
sed  -i "s/ServerActive=127.0.0.1/ServerActive=$masterip/g"   /etc/zabbix/zabbix_agentd.conf
sed  -i "s/Hostname=Zabbix server/Hostname=${id}/g"   /etc/zabbix/zabbix_agentd.conf
sed  -i  '$a HostMetadata=linux'  /etc/zabbix/zabbix_agentd.conf
#启动agent
/etc/init.d/zabbix-agent  start
ret=$?
[ $ret -eq 0 ] &&  echo "zabbix agent start  success " || echo "zabbix agent start  failed,please check "

转载请注明:21运维 » zabbix 如何设置客户端自动注册(81)

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址