zabbix 內網監控雲服務器


今天 搞監控碰到了一個問題就是。內網機器搭建的zabbix服務器去監控雲服務器agent的時候,agent 需要寫服務端的IP地址。

我的思路是內網服務器映射自己公網IP地址的zabbix的端口10051 就好,但是測試的結構時報錯:

當然我們要事先開啟雲服務器的安全組

# zabbix_get -s 119.20.21.100 -k system.hostname  
zabbix_get [26066]: Check access restrictions in Zabbix agent configuration

解決措施

方法來自於某不知名哥們

https://blog.csdn.net/bacteriumx/article/details/81430867

在內網的zabbix-server 服務端 去telnet 雲服務器的公網IP,再在雲服務器的客戶端查看10050端口被誰訪問了,我們就能得到zabbix的公網IP:

1 [root@node2 ~]# telnet 119.20.21.100 10050
2 Trying 119.20.21.100...
3 Connected to 119.20.21.100.
4 Escape character is '^]'.
5 Connection closed by foreign host.

被監控雲主機

[root@zklf-cloud ~]# netstat -na |grep 10050
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN     
tcp        0      0 192.168.0.209:10050     1.115.10.203:55899     TIME_WAIT  
tcp        0      0 192.168.0.209:10050     1.115.10.203:55931     TIME_WAIT  
tcp        0      0 192.168.0.209:10050     1.115.10.203:55923     TIME_WAIT  
tcp        0      0 192.168.0.209:10050     1.115.10.203:55737     TIME_WAIT  
tcp        0      0 192.168.0.209:10050     1.115.10.203:55725     TIME_WAIT  

這個1.115.10.203 就是zabbix的服務端的IP地址。

修改雲服務器的/etc/zabbix/zabbix.agent.conf 下的 Server 或者ServerActive地址為1.115.10.203 即可。

重啟雲服務我們在內網服務端做get測試發現全部可以:

[root@zklf-server02 ~]# zabbix_get -s 119.20.21.100 -k agent.ping
1
[root@zklf-server02 ~]# zabbix_get -s 119.20.21.100 -k system.hostname
zklf-cloud
[root@zklf-server02 ~]# zabbix_get -s 119.20.21.100 -k agent.version
4.0.9

剩下的就不用再說了。這個操作讓我這種小渣渣不能理解。

再了解一下 telnet 和 netstat 的詳解

telnet原理:來自百度百科

Telnet協議是TCP/IP協議族中的一員,是Internet遠程登錄服務的標准協議和主要方式。它為用戶提供了在本地計算機上完成遠程主機工作的能力。
遠程登錄是指用戶使用Telnet命令,使自己的計算機暫時成為遠程主機的一個仿真終端的過程。仿真終端等效於一個非智能的機器,它只負責把用戶輸入的每個字符傳遞給主機,再將主機輸出的每個信息回顯屏幕上。(xshell也是這個原理吧)
使用Telnet協議進行遠程登錄時需要滿足以下條件:在本地計算機上必須裝有包含Telnet協議的客戶程序;必須知道遠程主機的Ip地址或域名;必須知道登錄標識與口令。
  Telnet遠程登錄服務分為以下4個過程:
1)本地與遠程 主機建立連接。該過程實際上是建立一個TCP連接,用戶必須知道遠程 主機的Ip地址或 域名
2)將 本地終端上輸入的用戶名和口令及以后輸入的任何命令或字符以 NVT(Net Virtual Terminal)格式傳送到遠程主機。該過程實際上是從 本地主機向遠程主機發送一個IP數據包;
3)將遠程 主機輸出的 NVT格式的數據轉化為本地所接受的格式送回 本地終端,包括輸入命令 回顯和命令執行結果;
4)最后, 本地終端對遠程主機進行撤消連接。該過程是撤銷一個TCP連接。
 
Telnet交互(C/S架構交互過程)
當我們使用Telnet登錄進入遠程計算機系統時,事實上啟動了兩個程序:一個是Telnet客戶程序,運行在本地主機上;另一個是Telnet服務器程序,它運行在要登錄的遠程計算機上。
本地主機上的Telnet客戶程序主要完成以下功能:
  • 建立與遠程服務器的TCP聯接。
  • 從鍵盤上接收本地輸入的字符。
  • 將輸入的字符串變成標准格式並傳送給遠程服務器。
  • 從遠程服務器接收輸出的信息。
  • 將該信息顯示在本地主機屏幕上。
遠程主機的“服務”程序通常被昵稱為“精靈”,它平時不聲不響地守候在遠程主機上,一接到本地主機的請求,就會立馬活躍起來,並完成以下功能:
  • 通知本地主機,遠程主機已經准備好了。
  • 等候本地主機輸入命令。
  • 對本地主機的命令作出反應(如顯示目錄內容,或執行某個程序等)。
  • 把執行命令的結果送回本地計算機顯示。
  • 重新等候本地主機的命令。

 netstat 命令

https://www.cnblogs.com/ftl1012/p/netstat.html  這個地址寫的有些東西可以參考

[root@zklf-cloud ~]# netstat -h
usage: netstat [-vWeenNcCF] [<Af>] -r         netstat {-V|--version|-h|--help}
       netstat [-vWnNcaeol] [<Socket> ...]
       netstat { [-vWeenNac] -I[<Iface>] | [-veenNac] -i | [-cnNe] -M | -s [-6tuw] } [delay]

        -r, --route              display routing table                 顯示路由表
        -I, --interfaces=<Iface> display interface table for <Iface>        顯示網卡接口表
        -i, --interfaces         display interface table
        -g, --groups             display multicast group memberships        顯示多播組成員身份
        -s, --statistics         display networking statistics (like SNMP)     顯示網絡統計信息(ip,icmp,tcp,udp 等)
        -M, --masquerade         display masqueraded connections           顯示偽裝鏈接

        -v, --verbose            be verbose                       詳細顯示 
        -W, --wide               don't truncate IP addresses             不截斷顯示
        -n, --numeric            don't resolve names                  不解析地址名稱 (顯示IP地址信息)  
        --numeric-hosts          don't resolve host names               不解析主機名稱 
        --numeric-ports          don't resolve port names            
        --numeric-users          don't resolve user names
        -N, --symbolic           resolve hardware names                解析硬件名稱         
        -e, --extend             display other/more information            顯示其他更多的信息
        -p, --programs           display PID/Program name for sockets       顯示套接字的PID/程序名
        -o, --timers             display timers                     顯示計時器
        -c, --continuous         continuous listing                   不間斷的 加數字每幾秒刷新

        -l, --listening          display listening server sockets          顯示監聽服務套接字
        -a, --all                display all sockets (default: connected)      顯示所有套接字
        -F, --fib                display Forwarding Information Base (default)   顯示轉發信息庫(默認)
        -C, --cache              display routing cache instead of FIB        顯示路由緩存而不是FIB
        -Z, --context            display SELinux security context for sockets   顯示套接字的SELinux安全上下文

  <Socket>={-t|--tcp} {-u|--udp} {-U|--udplite} {-S|--sctp} {-w|--raw}        套接字
           {-x|--unix} --ax25 --ipx --netrom
  <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: inet               ipv6 或者 ipv4協議 
  List of possible address families (which support routing):
    inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25) 
    netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP) 
    x25 (CCITT X.25) 

 


免責聲明!

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



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