zabbix客户端自动注册

Posted 运维讲堂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix客户端自动注册相关的知识,希望对你有一定的参考价值。

当我们批量安装N台服务器,并通过saltstack将其zabbix agent安装好后,便可以通过此技术将其agent自动加入到zabbix server,运用好此功能,对与我们sa来说是个福音.

 

想实现如下两个功能:

功能1) 新安装的centos机器暂未安装任何服务,希望自动注册到zabbix server,并且能加到Linux servers主机组中,添加一个OS Linux模板,最后发送自动注册邮件通知.

 

功能2) centos服务器上安装了apache服务后,希望自动注册到zabbix server,并且能加到Linux servers主机组中,添加一个OS Linux模板和一个http模板,最后发送自动注册邮件通知.

 

功能1配置如下:

Zabbix server端配置.

  1. 配置action

步骤:configuration>>action>>Event source(选择Autoregisteation)>>Create Action,我们按如下步骤定义个action

定义action名称,以及增加一个条件:Host metadata包含Linux字符的主机将会触发2operations操作(metadata的数据来自与agent后端的配置HostMetadataItemHostMetadata.

 

2.operations选项卡

zabbix客户端自动注册

zabbix客户端自动注册

满足条件的agent host,server完成四个动作:

agent加到host列表

agent加到linux servers

Link一个Template OS linux模板到agnet主机

最后发送邮件到monitor

(根据我们的主机特性加不同的动作)

对与发送消息标题与内容,采用默认即可.

 

被监控端配置

[root@nginx-proxy zabbix]# catzabbix_agentd.conf

PidFile=/var/run/zabbix/zabbix_agentd.pid

LogFile=/var/log/zabbix/zabbix_agentd.log

LogFileSize=0

Server=192.168.214.112

ListenPort=10050

ServerActive=192.168.214.112

Hostname=nginx_proxy.opdevos.com

HostMetadataItem=system.uname

Include=/etc/zabbix/zabbix_agentd.d/

 

注意以下几个参数:

Server=192.168.214.112

指定zabbix server ip

 

Hostname=nginx_proxy.opdevos.com

如果zabbix_agentd.conf配置有此参数,zabbix使用此主机名命名,否则使用hostname命令来获取的值来命名.

 

HostMetadataItem=system.uname

就是提供agent key system.uname中的值供server端的coditions过滤使用的.

[root@localhost ~]# zabbix_get -s192.168.214.6 -k "system.uname"

Linux nginx-proxy.opdevos.com3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64

zabbix客户端自动注册

意思就是agent提供的system.uname中包含Linux字符串,那么就符合条件,执行operations标签下的那些动作.

 

现在我们重启agent服务,看下结果.

tailf  /var/log/zabbix/zabbix_server.log

zabbix客户端自动注册

查看Configuration/Hosts

zabbix客户端自动注册

zabbix客户端自动注册

为什么我们的动作是只加Linux server组,但这里有个Discovered hosts组呢?

看下Administration>>other下面

zabbix客户端自动注册

zabbix客户端自动注册

zabbix客户端自动注册

看到没,四个动作都完成了.

 

HostMetadataItemHostMetadata这两个参数的作用是用来区分主机的,比如主机系统linux还是windows,这样才能分别他们添加不同的动作。

 

HostMetadataItem的值来之zabbix内建key

HostMetadata的值可以自己定义,更加灵活。

 

通过使用metadata用来区分各个主机,来达到我们各种需求.

 

功能2配置如下:

在此我们需要借助HostMetadata来实现.

zabbix客户端自动注册

zabbix客户端自动注册

Zabbix agent端配置

zabbix客户端自动注册

看到没,这个HostMetadata参数我们可以随意指定,zabbix server端根据我们指定的值来进行匹配,只要匹配上,我们就可以做下一步动作,如这台服务器,我想在它加入zabbix后,再添加一个redis模板,那么只需要HostMetadata=nginx redis Linux,前面再去定义一个nginx_redis_autoregisteraction便可以了.

 

重启zabbix agent

zabbix客户端自动注册

2分钟左右此主机便按我们的定义加到zabbix server中了.

zabbix客户端自动注册

zabbix客户端自动注册

至此,我们定义了2action1个是自动注册全新主机,无任何服务的,1个是安装了nginx服务的,前者只要匹配Linux便可,后者是需要匹配nginxLinux.通过此对比,我觉得当多个自动注册action,匹配的条件是先严格匹配再宽泛.

 

匹配条件

zabbix客户端自动注册

匹配主机

network这台主机仅仅是新装的机器,agent端参数仅有system.uname,所以仅能匹配到Linux_AutoRegister

 

至此结束.


以上是关于zabbix客户端自动注册的主要内容,如果未能解决你的问题,请参考以下文章

配置zabbix自动注册客户端

zabbix自动发现自动注册

青蛙学Linux—Zabbix Web使用之Zabbix发现功能②主动客户端自动注册

zabbix server端自动发现和zabbix agent端自动注册

zabbix自动发现和自动注册

Zabbix自动发现与自动注册.