Zabbix技巧系列——利用Agent Active模式监控在NAT网络中的设备


  2016-12-27  Mike  运维之美

本文分享一个Zabbix Agent在NAT网络环境下进行监控的技巧。

Zabbix Agent检查有两种模式,分为主动(Agent Active)和被动(Agent)两种形式。主动与被动的说法均是相对于Agent来讨论的。

  • 主动检查:Agent请求Server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给Server/Proxy

  • 被动检查:Server向Agent请求获取监控项的数据,Agent返回数据。

被监控端的配置调整


$ cat zabbix_Agentd.conf


Server=X.X.X.X  #如果设置为纯被动模式,则应该注释掉这一条指令

ServerActive=X.X.X.X #主动模式的server IP地址

Hostname=Mike-Linux         #在Web UI上声明主机时所使用相同的主机名(区分大小写),不配置则使用主机名。

StartAgents=0          #客户端Agent模式,设置为0表示关闭被动模式。被监控端的zabbix_agentd不监听本地端口,netstat无法查看到zabbix_agentd监听的端口。


替换X.X.X.X为你Zabbix server的IP。

调整监控模板

纯主动模式下的Zabbix Agent,只能支持Zabbix Agent(Active)类型的监控项。

我们将克隆“Template OS Linux”并创建一个将使用主动检查而不是被动模式的“Template OS Linux Active”。

  1. 点击“Configuration”

  2. 点击“Templates”

  3. 点击“Template OS Linux”

  4. 点击“Full Clone” (bottom)

  5. 修改名称为“Template OS Linux Active”

  6. 点击“Add” (bottom)

  7. 点击“Template OS Linux Active”模板

  8. 点击“Items”

  9. 勾选左上角选择所有项目

  10. 向下滚动到,选择“批量更新”。

  11. 勾选“Type”

  12. 把值从“Zabbix agent”改为“Zabbix agent (active)”

  13. 向下滚动到,选择“update”。

  14. 点击”Discovery”,按以上类似方法更新”Discovery”规则的监控项。

一般情况下模板间是有一些关联的,比如“Template OS Linux”模板就关联了”Template App Zabbix Agent” ,这种情况通常有两种方法处理:

  1. 使用以上同样的方法修改关联的监控项为“Zabbix agent (active)”。

  2. 暂停关联的监控项。

添加主机

建立一个新主机

  1. 主机名必须和zabbix_Agentd.conf配置文件中定义的一样(这里是:Mike-Linux)。

  2. Agent interfaces中IP配置为0.0.0.0, 端口为:10050.

  3. 关联刚才建立的”Template OS Linux Active”模板。

测试数据

点击”Monitoring—Latest data”,如果有对应数据就说明Server接收到Agent数据了。

其它

Zabbix主动、被动检测的详细过程与区别

Zabbix Agent检测分为主动(Agent Active)和被动(Agent)两种形式,主动与被动的说法均是相对于Agent来讨论的。简单说明一下主动与被动的区别如下:

  1. 主动:Agent请求Server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给Server/Proxy

  2. 被动:Server向Agent请求获取监控项的数据,Agent返回数据。

zabbix agent通信过程中的协议均基于JSON格式,格式如下:

- "ZBXD\x01" (5 bytes)
 - data length (8 bytes). 1 will be formatted as 01/00/00/00/00/00/00/00 (eight bytes in HEX, 64 bit number)

备注:为了避免内存耗尽,Server限制每个通信连接最多使用128MB内存。
被动检测

Server发起如下请求

 <item key>\n

Aegent返回如下响应数据

<HEADER><DATALEN><DATA>[\0<ERROR>]

supported items通信过程

Server打开一个TCP连接

  • Server发送请求agent.ping\n

  • Agent接收到请求并且响应1

  • Server处理接收到的数据1

  • 关闭TCP连接

not supported items通信过程

  • Server打开一个TCP连接

  • Server发送请求vfs.fs.size[/nono]\n

  • Agent接收请求并且返回响应数据

    ZBX_NOTSUPPORTED\0Cannot obtain filesystem information: [2] No such file or directory
  • Server接收并处理数据, 将item的状态改为“ not supported ”

  • 关闭TCP连接

主动检测

如前面所说,Zabbix首先向ServerActive配置的IP请求获取Active Items,获取并提交Active Items数据值Server或者Proxy。很多同学会提出疑问:Zabbix多久获取一次Active Items?它会根据配置文件中的RefreshActiveChecks的频率进行,如果获取失败,那么将会在60秒之后重试

获取ACTIVE ITEMS列表

Agent请求

<HEADER><DATALEN>{
    "request":"active checks",
    "host":"<hostname>"
}

Server响应列表

<HEADER><DATALEN>{
    "response":"success",
    "data":[
        {
            "key":"log[/home/zabbix/logs/zabbix_agentd.log]",
            "delay":30,
            "lastlogsize":0,
            "mtime":0
        },
        {
            "key":"agent.version",
            "delay":600,
            "lastlogsize":0,
            "mtime":0
        },
        {
            "key":"vfs.fs.size[/nono]",
            "delay":600,
            "lastlogsize":0,
            "mtime":0
        }
    ]
}

备注:获取到的items列表中的所有item属性key, delay, lastlogsize ,mtime都必须存在,获取列表的通信过程如下:

  • Agent打开TCP连接(主动检测变成Agent打开)

  • Agent请求items检测列表

  • Server返回items列表

  • Agent 处理响应

  • 关闭TCP连接

  • Agent开始收集数据

  • 提交active items数据

Agent发送请求

<HEADER><DATALEN>{
    "request":"agent data",
    "data":[
        {
            "host":"<hostname>",
            "key":"agent.version",
            "value":"2.4.0",
            "clock":1400675595,
            "ns":76808644
        },
        {
            "host":"<hostname>",
            "key":"log[/home/zabbix/logs/zabbix_agentd.log]",
            "lastlogsize":112,
            "value":" 19845:20140621:141708.521 Starting Zabbix Agent [<hostname>]. Zabbix 2.4.0 (revision 50000).",
            "clock":1400675595,
            "ns":77053975
        },
        {
            "host":"<hostname>",
            "key":"vfs.fs.size[/nono]",
            "state":1,
            "value":"Cannot obtain filesystem information: [2] No such file or directory",
            "clock":1400675595,
            "ns":78154128
        }
    ],
    "clock": 1400675595,
    "ns": 78211329
}

Server响应数据

{
 "response":"success",
 "info":"processed: 3; failed: 0; total: 3; seconds spent: 0.003534"
 }

备注:如果有些数据提交失败,比如host、item被删除或者禁用,agent不会尝试从新提交

主动检测提交数据过程如下:

  • Agent建立TCP连接

  • Agent提交items列表收集的数据

  • Server处理数据,并返回响应状态

  • 关闭TCP连接

参考文档

http://www.google.com
http://t.cn/RIq6Fsz
http://t.cn/RAFoZ4Y
https://www.zabbix.com/forum/showthread.php?t=50510



更多精彩热文:






原文链接:http://mp.weixin.qq.com/s?__biz=MzI3MTI2NzkxMA==&mid=2247484747&idx=1&sn=c6eca97bd9537255c3c4e094e047bea0&chksm=eac52462ddb2ad7438ae3bf1d9d68ac945d4cc4952e6f0c7d6313dee8944a62c26c6981cf813&mpshare=1&scene=23&srcid=12276Y3LKOPSEAUndPlpcbpp#rd


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值