当你有十台机器需要监控时,你手动去添加是没有问题的。但是当你有五十台、上百台或更多服务器要监控时,你会怎么做 ?

Active Agent Auto-Registration 主要用于 Agent 主动且自动向 Server 注册。很好的解决了 Agent IP、系统、配置不统一等问题。

非常适合现在的云环境中。

一、安装 Agent



shell > cd /scripts ; vim auto_install_zabbix_agent.sh

#!/bin/bash

cd /usr/local/src

# download zabbix agent

wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.0.1/zabbix-3.0.1.tar.gz

# install zabbix agent

tar zxf zabbix-3.0.1.tar.gz

cd zabbix-3.0.1

./configure --prefix=/usr/local/zabbix_agent --enable-agent ; make install

# config

cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/

sed -i 's#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix_agent#' /etc/init.d/zabbix_agentd

echo 'Zabbix Agent is Install sucessed .'

# End



二、配置 Agent auto-Registration



shell > grep -vP '^#|^$' /usr/local/zabbix_agent/etc/zabbix_agentd.conf

LogFile=/tmp/zabbix_agentd.log    # 指定日志路径
Server=121.42.11.220              # 被动模式下的 Zabbix Server 地址
# StartAgents=0                   # 禁止使用被动模式 ( 禁止后 agent 将不监听任何地址、端口 )

ServerActive=121.42.11.220        # 主动模式下的 Zabbix Server 地址

Hostname=Auto RServer 54.64       # 机器标识符 ( Web 界面显示的主机名称 )
HostMetadata=password 123456      # 主动注册条件,很灵活,你可以像我一样做成这种方式,两个字段完全匹配才添加主机



三、启动 Agent



shell > service zabbix_agentd start

shell > netstat -lnpt | grep zabbix_agent
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 7149/zabbix_agentd



四、Web 前端配置

1、模板

> Configuration --> Templates --> 点击 Templates OS Linux --> Full clone ( 完全克隆 )
Template name Template OS Linux Active       # 起一个唯一的名称
Add                                                             # 完成克隆
> Configuration --> Templates --> 点击 Templates OS Linux Active --> Items ( 还要将 item 改为主动模式 ) --> 全选,点击下面的 Mass update
Type                                                            # 勾选,将原来的 Zabbix agent 改为 Zabbix agent(active)
Update                                                         # 完成

## 我们发现跟这个模板关联的还有一个是 Template App Zabbix Agent ,使用同样的方法修改!
## 修改完之后,还需要打开更改后的 OS Linux 模板,Linked template 将原来的被动 Agent 模板,换成更改后的主动 Agent 模板。

2、Auto Registration
> Configuration --> Actions --> ( Event source ) Auto-Registration --> Create action
Name Auto Registration
Default subject Auto registration:{HOST:HOST}
Default message Host name:{HOST.HOST}
 Host IP:{HOST.IP}
 Agent port:{HOST.PORT}

Conditions ( 条件 )New condition Host metadata like password         # 条件一
AddNew condition Host metadata like 123456           # 条件二
AddType of calculation And A and B                         # 关系为 And ,两条件必须同时满足
Operations ( 操作 )
Action operations New # 开始添加操作
Operation details Operation type Add host            # 操作一:添加主机
AddOperation details Operation type Link to template # 操作二:链接模板
Templates Template OS Linux Action 
AddOperation details Operation type Send message    # 操作三:发送邮件
Send to User groups DevOPS
Send only to My_Email
Default message √
AddAdd                                                                  # 全部完成 !

五、测试

# 保存完成,大约一、两分钟,就会主机自动注册完成,并且会收到邮件!

## 遇到的问题 !

1、如果 Agent 将被动模式完全关闭 ( Server 注释掉,StartAgents 设为 0 ## 前面注释掉,后面必须设为 0 )

Agent 将不监听任何地址、端口!

Zabbix Server Web 会显示无法连接到 Agent。这是因为添加的主机中 Agent interfaces 里写了 Agent 地址、端口。

2、防火墙情况:Zabbix Server TCP 10051 / Zabbix Agent Server TCP 10050

3、主机状态:如果能获取到数据,无报错,就是颜色不变,重启一下 Zabbix Server 即可