zabbix監控托管主機遇到問題


昨天監控公司的托管主機時發現監控不上,回想起來其實就是個小問題,分分鍾能解決的事,排錯的過程才是真正耗心費神的。

監控環境:

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

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM