全部產品
Search
文件中心

CloudMonitor:非阿里雲主機如何通過NginxProxy 伺服器上報監控資料?

更新時間:Aug 31, 2024

本文為您介紹非阿里雲主機通過NginxProxy 伺服器上報監控資料至CloudMonitor的操作方法。

步驟一:部署NginxProxy 伺服器

由於CloudMonitor部署在Linux伺服器上,因此建議您的Proxy 伺服器選用Linux伺服器。本文以CentOS作業系統為例。

重要

您只能通過管理員帳號root部署NginxProxy 伺服器。使用管理員帳號具有一定風險,如果操作不當可能導致系統穩定性問題或資料安全問題,請謹慎操作。

  1. 下載並解壓Nginx安裝包,本文以nginx-1.19.6版本為例。

    1. 進入指定安裝目錄路徑下,下載安裝包,其它版本自行到Nginx官網下載。

      cd /usr/local
      wget http://nginx.org/download/nginx-1.19.6.tar.gz
    2. 解壓安裝包。

      tar -zxvf nginx-1.19.6.tar.gz
  2. 安裝依賴工具。

    yum install -y git patch pcre pcre-devel gcc zlib zlib-devel openssl openssl-devel
  3. 下載並安裝Nginx補丁包,本文以安裝Nginx補丁包proxy_connect_rewrite_1018.patch為例。

    1. 進入解壓後的nginx-1.19.6包的目錄下。

    2. 執行以下命令,下載Nginx補丁包。

      git clone https://github.com/chobits/ngx_http_proxy_connect_module.git
      重要

      請下載與安裝的Nginx版本對應的補丁包版本,本文Nginx版本為nginx-1.19.6, 所以選擇的對應的補丁包版本是proxy_connect_rewrite_1018.patch,具體詳情請到GitHub查看。

    3. 開始安裝Nginx補丁包,安裝補丁包前請確認在/usr/local/nginx-1.19.6路徑下。

      patch -p1 < ngx_http_proxy_connect_module/patch/proxy_connect_rewrite_1018.patch
      說明

      patch:通過補丁檔案,對原檔案打補丁。

      -p1:參數表示忽略補丁檔案路徑的第幾部分,“1”表示忽略第一個。

  4. 開始編譯安裝Nginx,然後啟動Nginx。

    1. 在Nginx的安裝包/usr/local/nginx-1.19.6路徑下,執行編譯命令。

      ./configure --prefix=/usr/local/nginx-1-19 --with-http_stub_status_module --with-http_ssl_module --add-module=ngx_http_proxy_connect_module
      說明

      --prefix=/usr/local/nginx-1-19 表示設定Nginx編譯安裝後的路徑目錄位置。

    2. 執行安裝命令。

      make && make install
    3. 執行啟動Nginx命令。

      /usr/local/nginx-1-19/sbin/nginx
  5. 在瀏覽器的地址欄輸入Proxy 伺服器的IP地址:80,顯示如下,說明安裝成功。image

  1. 配置Nginx代理。

    1. 在Nginx編譯安裝後的conf目錄下,建立forward.conf設定檔。

      cd /usr/local/nginx-1-19/conf
      vi forward.conf
    2. 在forward.conf文中配置正向 Proxy和反向 Proxy。

      1. 正向 Proxy配置內容如下:

        server {
             listen                         8080; #設定NginxProxy 伺服器自訂連接埠。
             server_name                    xxx.xx.xx.xxx; #設定Proxy 伺服器的IP地址。
             # dns resolver used by forward proxying
             resolver                       114.114.114.114;  #設定DNS地址。
        
             # forward proxy for CONNECT request
             proxy_connect;
             proxy_connect_allow            443;
             proxy_connect_connect_timeout  10s;
             proxy_connect_read_timeout     10s;
             proxy_connect_send_timeout     10s;
        
             # forward proxy for non-CONNECT request
             location / {
                 proxy_pass http://$http_host$request_uri;  #設定Proxy 伺服器的協議和地址,均使用預設值。
                 proxy_set_header Host $host;
             }
         }
        說明

        正向 Proxy:如果將區域網路外的Internet想象成一個巨大的資產庫,則區域網路中的用戶端要訪問Internet,則需要通過Proxy 伺服器來訪問,這種代理服務就稱為正向 Proxy。

        Nginx的正向 Proxy不支援HTTPS協議,需要進行打補丁支援HTTPS協議。

      2. 反向 Proxy配置內容如下:

        server {
            listen              443 ssl;
            server_name         192.168.XX.XX; #設定Proxy 伺服器的IP地址。
            ssl_certificate     XXXX.pem; #SSL認證。
            ssl_certificate_key XXXX.key; #SSL認證的密碼。
        
            location / {
                proxy_pass  https://www.aliyun.com; #設定Proxy 伺服器訪問的URL地址。
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header REMOTE-HOST $remote_addr;
                proxy_set_header X-Forward`ed-For $proxy_add_x_forwarded_for;
            }
        }
        說明

        反向 Proxy:如果區域網路向Internet提供資源服務,讓Internet上的其它用戶端來訪問區域網路內的資源,使他們必須通過一個Proxy 伺服器進行訪問,這種服務就稱為反向 Proxy。

        重要

        關於如何申請SSL認證。具體操作請參見提交認證申請

    3. 按Esc鍵,輸入:wq,再按Enter鍵,儲存並退出forward.conf設定檔。

    4. 開啟nginx的主設定檔nginx.conf。

      cd /usr/local/nginx-1-19/conf
      vi nginx.conf
    5. 將forward.conf設定檔,使用include引入nginx.conf主設定檔中。

      http {
        ......
          include /usr/local/nginx-1-19/conf/forward.conf;
        ......
      }
    6. 按Esc鍵,輸入:wq,再按Enter鍵,儲存並退出檔案nginx.conf。

    7. 重啟NginxProxy 伺服器。

      /usr/local/nginx-1-19/sbin/nginx -s reload
  2. 測試NginxProxy 伺服器結果。

    1. 正向 Proxy測試,執行以下命令,可以訪問任意網址,表示安裝成功。

      curl -x 192.168.XX.XX(Proxy 伺服器的IP地址):<Proxy 伺服器的連接埠> http://example.aliyundoc.com(任意網址)
    2. 反向 Proxy測試,執行以下命令,輸入任何網址後,可以訪問檔案nginx.conf中指定的網址,表示安裝成功。

      curl -x 192.168.XX.XX(Proxy 伺服器的IP地址):<Proxy 伺服器的連接埠> https://example.aliyundoc.com(任意網址)

步驟二:安裝和配置CloudMonitor外掛程式

重要

CloudMonitor僅支援通過管理員帳號root操作CloudMonitor外掛程式。使用管理員帳號具有一定風險,如果操作不當可能導致系統穩定性問題或資料安全問題,請謹慎操作。

  1. 在非阿里雲主機上安裝CloudMonitor外掛程式。

    具體操作,請參見安裝和卸載C++版本外掛程式

  2. 在CloudMonitor外掛程式中配置NginxProxy 伺服器。

    1. 以root使用者登入CloudMonitor外掛程式所在的非阿里雲主機。

    2. 執行以下命令,開啟檔案agent.properties

      cd /usr/local/cloudmonitor/conf
      vi agent.properties
    3. 在CloudMonitor外掛程式中配置NginxProxy 伺服器的相關資訊。

      http.proxy.auto=false
      #手動設定代理
      http.proxy.host=192.168.XX.XX
      #NginxProxy 伺服器的IP地址。
      http.proxy.port=8080
      #NginxProxy 伺服器的連接埠。
      #http.proxy.user=user  #NginxProxy 伺服器的HTTP服務無使用者名稱。
      #http.proxy.password=password  #NginxProxy 伺服器的HTTP服務無使用者密碼。
    4. 按Esc鍵,輸入:wq,再按Enter鍵,儲存並退出檔案agent.properties

    5. 執行以下命令,重啟CloudMonitor外掛程式。

      ./cloudmonitorCtl.sh restart

步驟三:查看非阿里雲主機的監控資料

  1. 登入CloudMonitor控制台

  2. 在左側導覽列,單擊主機監控

  3. 主機監控頁面,單擊目標主機的執行個體名稱連結,或單擊目標主機對應操作列的監控圖表

    查看非阿里雲主機的監控資料。