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

监控环境:

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

......
......
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

  

zabbix监控托管主机遇到问题的更多相关文章

  1. Zabbix监控Linux主机设置

          说明: Zabbix监控服务端已经配置完成,现在要使用Zabbix对Linux主机进行监控. 具体操作: 以下操作在被监控的Linux主机进行,这里以CentOS 6.x系统为例. 一.配 ...

  2. zabbix监控windows主机网卡流量

    监控windows主机网卡流量 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.     欢迎加入:高级运维工程师之路 598432640 客户端配置:(172.30.1.120,wi ...

  3. Zabbix监控虚拟主机告警Lack of free swap space on Zabbix server解决办法

    Zabbix监控虚拟机的时候有时候会报一下告警 是因为Zabbix监控没有考虑虚拟主机的交换空间情况 解决办法修改配置

  4. zabbix监控远端主机

    接着上一篇博客,zabbix监控搭建起来以后,怎么用来监控其他主机呢,这一篇就来简单讲一下,希望对大家有所帮助. 安装一些依赖包 [root@winter ~]# yum install curl c ...

  5. zabbix监控ESXI主机(可用)

    ESXI6.0默认SSH关闭的,打开SSH的方法如下图: SSH打开后,主机会有警报,关闭警报的方法如下图 esxcli system  snmp  set  --communities  publi ...

  6. zabbix监控A主机到B主机的网络质量

    采用zabbix自带的icmp ping即可进行监控: 1.安装fping 2.将fping安装后链接到/usr/sbin/fping下,设置组为zabbix; 3.增加监控项:icmpping[ip ...

  7. Zabbix监控Windows主机

    一,下载zabbix-agent 下载地址:http://www.zabbix.com/downloads/3.0.0/zabbix_agents_3.0.0.win.zip 已经下载好的文件 zab ...

  8. zabbix监控ESXI主机

    ESXI6.0默认SSH关闭的,打开SSH的方法如下图: SSH打开后,主机会有警报,关闭警报的方法如下图 esxcli system  snmp  set  --communities  publi ...

  9. Zabbix添加windows主机监控

    zabbix监控windows主机 1.官网下载zabbix的windows-agent(选择相应版本): https://www.zabbix.com/cn/download_agents 2.将下 ...

随机推荐

  1. Go语言实践_实现一(服务器端)对多(客户端)在线聊天室

    一.目的 运用Go语言中的goroutine和通道实现一个简单的一个服务器端对多个客户端的在线聊天 软件环境:Goland,Go1.9 代码仓库链接 二.设计思路 与一对一的设计思路类似,就是加了个线 ...

  2. centos6.5安装mongodb2.6

    下载地址:http://www.mongodb.org/downloads 解压命令:tar zxf mongodb-linux-i686-2.6.0.tgz 存放目录:/usr/local/mong ...

  3. MAC下Myeclipse SVN插件安装

    1.下载SVN插件包:http://download.csdn.net/detail/frankyanchen/4512899 2.在myeclipse文件夹下创建一个文件夹为svntool并复制下载 ...

  4. Python中类的特殊变量

    特殊变量 类似__xx,以双下划线开头的实例变量名,就变成了一个私有变量(private),只有内部可以访问,外部不能访问: 类似__xx__,以双下划线开头,并且以双下划线结尾的,是特殊变量,特殊变 ...

  5. gradle教程 [原创](eclipse/ADT下 非插件 非Android Studio/AS)纯手打 第二篇:gradle简单实战

    一个bug 一个脚印的叫你们用gradle. 1介于网络上的很多资料都是老的 不适用与现在的新版本gradle 尤其是有些gradle方法改名了老的用不了 2介于网上都是粘贴复制并且零碎我很蛋疼啊,走 ...

  6. linux 设置中文版man手册

    作为CentOS 新手,看懂英文man固然重要,不过配置好中文man也可以让自己更快速地学习!1. 下载中文man包源码的网址:https://src.fedoraproject.org/repo/p ...

  7. c __cplusplus详解

    Code:#ifdef __cplusplusextern "C" { #endif ... #ifdef __cplusplus} #endif 解释:1.c++中定义了__cp ...

  8. Spring task定时任务执行一段时间后莫名其妙停止的问题

    前因: 我写了一个小项目,主要功能是用Spring task定时任务每天定时给用户发送邮件.执行了几个月一直没有问题,前几天,莫名其妙的突然不再发送邮件了. 只好花费一些时间来查看到底是什么原因造成的 ...

  9. win7 cmd终端连接android手机运行adb shell脚本命令

    win7 cmd终端连接android手机运行adb shell脚本命令 (2013-03-22 20:13:57) 转载▼ 标签: android it shell 连接 linux 分类: 嵌入式 ...

  10. 连接mysql 数据库时出现2003 -can't connect to mysql server on 'localhost'(100038)的问题

    通过eclipse连接数据库是出现了以下问题 可能是由于数据库未开启造成的,你需要手动开启数据库. 手动开启数据库的方法: 1 win+r键后,在cmd中输入services.msc,点击确定 点击左 ...