DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 542 评论 :: 1615万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

昨天监控公司的托管主机时发现监控不上,回想起来其实就是个小问题,分分钟能解决的事,排错的过程才是真正耗心费神的。

监控环境:

A   zabbix server: 192.168.17.110    server端设在公司内部
 
B   zabbix agent: 10.200.66.90      (被动模式)这台服务器为托管机 A(192.168.17.110)通过vpn与托管机B(10.200.66.90)通信,由于防火墙策略,A能ping通B,B不能ping通A,即发起tcp连接的机器必须为A(A--->B),从B方发起的连接(B--->A)是被拒绝的。

zabbix agent端配置文件:

egrep -v "^#|^$" /usr/local/zabbix/conf/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
DebugLevel=3
Server=192.168.17.120
ListenPort=10050
#ServerActive=192.168.17.120
Hostname=10.200.66.92

在zabbix server端运行zabbix_get获取数据报错:

Get value from agent failed: ZBX_TCP_READ() failed: [104] Connection reset by peer

zabbix_get [30318]: Check access restrictions in Zabbix agent configuration

是由于AB只能单向发起连接请求导致的吗?  

在过去的几小时笔者也在纠结是否是这个原因,是不是agent端因为不能主动发起连接所以server获取不到数据呢?

ssh端口转发能解决吗?

既然A到B能通,B到A不通,那可以将B端的10050端口转发到A主机吗?

ssh端口转发的三种模式:本地端口转发,远程端口转发,动态端口转发

A到B能通,B到A不通,照理说应该在A机器上进行ssh远程端口转发,打通B端10050口到A端的通道,但被动模式下A并不是用确定的端口与B的10050通信,所以ssh端口转发并不能解决笔者的问题

问题所在

前面一系列猜想都是因为未对zabbix被动模式有深入理解而导致的,被动模式并不要求AB能互相发起连接,只要A(server)能向B(agentd)发起连接足矣。A通过B的10050端口向B发起TCP连接,三次握手完成后即可进行数据传输。因此问题不应该在此。应该还是配置出问题了!!

查看agent端日志

tail /tmp/zasbbix_agentd.log
<br>......<br>......
104276:20170829:095704.310 failed to accept an incoming connection: connection from "10.200.58.10" rejected, allowed hosts: "192.168.17.110"

日志说明了一切,都是vpn惹的祸,server(192.168.17.110)通过vpn后进行了地址转换,最终与agent通信的已经不是在内网中的真实IP了,而是变成了10.200.58.10。

解决该问题只需更改server名或server IP即可:将agent配置文件中Server=192.168.17.120改为Server=10.200.58.10

posted on   DoubleLi  阅读(1336)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2016-07-20 修改SVN中文件的可执行属性
2016-07-20 widow下svn上传项目时的文件可执行权限问题
2016-07-20 svn 设置文件可执行权限
2015-07-20 如何在svn系统中使用git
2012-07-20 MessageBox、::MessageBox 、AfxMessageBox三者的区别 .
2012-07-20 各种语言性能测试工具一览表
2012-07-20 使用 Visual Studio 分析器找出应用程序瓶颈
点击右上角即可分享
微信分享提示