本文為您介紹非阿里雲主機通過NginxProxy 伺服器上報監控資料至CloudMonitor的操作方法。
步驟一:部署NginxProxy 伺服器
由於CloudMonitor部署在Linux伺服器上,因此建議您的Proxy 伺服器選用Linux伺服器。本文以CentOS作業系統為例。
您只能通過管理員帳號root部署NginxProxy 伺服器。使用管理員帳號具有一定風險,如果操作不當可能導致系統穩定性問題或資料安全問題,請謹慎操作。
下載並解壓Nginx安裝包,本文以nginx-1.19.6版本為例。
進入指定安裝目錄路徑下,下載安裝包,其它版本自行到Nginx官網下載。
cd /usr/local wget http://nginx.org/download/nginx-1.19.6.tar.gz
解壓安裝包。
tar -zxvf nginx-1.19.6.tar.gz
安裝依賴工具。
yum install -y git patch pcre pcre-devel gcc zlib zlib-devel openssl openssl-devel
下載並安裝Nginx補丁包,本文以安裝Nginx補丁包proxy_connect_rewrite_1018.patch為例。
進入解壓後的nginx-1.19.6包的目錄下。
執行以下命令,下載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查看。
開始安裝Nginx補丁包,安裝補丁包前請確認在/usr/local/nginx-1.19.6路徑下。
patch -p1 < ngx_http_proxy_connect_module/patch/proxy_connect_rewrite_1018.patch
說明patch:通過補丁檔案,對原檔案打補丁。
-p1:參數表示忽略補丁檔案路徑的第幾部分,“1”表示忽略第一個。
開始編譯安裝Nginx,然後啟動Nginx。
在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編譯安裝後的路徑目錄位置。
執行安裝命令。
make && make install
執行啟動Nginx命令。
/usr/local/nginx-1-19/sbin/nginx
在瀏覽器的地址欄輸入Proxy 伺服器的IP地址:80,顯示如下,說明安裝成功。
配置Nginx代理。
在Nginx編譯安裝後的conf目錄下,建立forward.conf設定檔。
cd /usr/local/nginx-1-19/conf vi forward.conf
在forward.conf文中配置正向 Proxy和反向 Proxy。
正向 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協議。
反向 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認證。具體操作請參見提交認證申請。
按Esc鍵,輸入:wq,再按Enter鍵,儲存並退出forward.conf設定檔。
開啟nginx的主設定檔nginx.conf。
cd /usr/local/nginx-1-19/conf vi nginx.conf
將forward.conf設定檔,使用include引入nginx.conf主設定檔中。
http { ...... include /usr/local/nginx-1-19/conf/forward.conf; ...... }
按Esc鍵,輸入:wq,再按Enter鍵,儲存並退出檔案nginx.conf。
重啟NginxProxy 伺服器。
/usr/local/nginx-1-19/sbin/nginx -s reload
測試NginxProxy 伺服器結果。
正向 Proxy測試,執行以下命令,可以訪問任意網址,表示安裝成功。
curl -x 192.168.XX.XX(Proxy 伺服器的IP地址):<Proxy 伺服器的連接埠> http://example.aliyundoc.com(任意網址)
反向 Proxy測試,執行以下命令,輸入任何網址後,可以訪問檔案nginx.conf中指定的網址,表示安裝成功。
curl -x 192.168.XX.XX(Proxy 伺服器的IP地址):<Proxy 伺服器的連接埠> https://example.aliyundoc.com(任意網址)
步驟二:安裝和配置CloudMonitor外掛程式
CloudMonitor僅支援通過管理員帳號root操作CloudMonitor外掛程式。使用管理員帳號具有一定風險,如果操作不當可能導致系統穩定性問題或資料安全問題,請謹慎操作。
在非阿里雲主機上安裝CloudMonitor外掛程式。
具體操作,請參見安裝和卸載C++版本外掛程式。
在CloudMonitor外掛程式中配置NginxProxy 伺服器。
以root使用者登入CloudMonitor外掛程式所在的非阿里雲主機。
執行以下命令,開啟檔案agent.properties。
cd /usr/local/cloudmonitor/conf vi agent.properties
在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服務無使用者密碼。
按Esc鍵,輸入:wq,再按Enter鍵,儲存並退出檔案agent.properties。
執行以下命令,重啟CloudMonitor外掛程式。
./cloudmonitorCtl.sh restart
步驟三:查看非阿里雲主機的監控資料
在左側導覽列,單擊主機監控。
在主機監控頁面,單擊目標主機的執行個體名稱連結,或單擊目標主機對應操作列的監控圖表。
查看非阿里雲主機的監控資料。