本文為您介紹非阿里云主機通過Nginx代理服務器上報監控數據至云監控的操作方法。
步驟一:部署Nginx代理服務器
由于云監控部署在Linux服務器上,因此建議您的代理服務器選用Linux服務器。本文以CentOS操作系統為例。
您只能通過管理員賬號root部署Nginx代理服務器。使用管理員賬號具有一定風險,如果操作不當可能導致系統穩定性問題或數據安全問題,請謹慎操作。
下載并解壓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
在瀏覽器的地址欄輸入代理服務器的IP地址:80,顯示如下,說明安裝成功。
配置Nginx代理。
在Nginx編譯安裝后的conf目錄下,新建forward.conf配置文件。
cd /usr/local/nginx-1-19/conf vi forward.conf
在forward.conf文中配置正向代理和反向代理。
正向代理配置內容如下:
server { listen 8080; #設置Nginx代理服務器自定義端口。 server_name xxx.xx.xx.xxx; #設置代理服務器的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_set_header Host $host; } }
說明正向代理:如果將局域網外的Internet想象成一個巨大的資源庫,則局域網中的客戶端要訪問Internet,則需要通過代理服務器來訪問,這種代理服務就稱為正向代理。
Nginx的正向代理不支持HTTPS協議,需要進行打補丁支持HTTPS協議。
反向代理配置內容如下:
server { listen 443 ssl; server_name 192.168.XX.XX; #設置代理服務器的IP地址。 ssl_certificate XXXX.pem; #SSL證書。 ssl_certificate_key XXXX.key; #SSL證書的密碼。 location / { proxy_pass https://www.aliyun.com; #設置代理服務器訪問的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; } }
說明反向代理:如果局域網向Internet提供資源服務,讓Internet上的其它客戶端來訪問局域網內的資源,使他們必須通過一個代理服務器進行訪問,這種服務就稱為反向代理。
重要關于如何申請SSL證書。具體操作請參見申請免費DV單域名試用證書或提交證書申請。
按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。
重啟Nginx代理服務器。
/usr/local/nginx-1-19/sbin/nginx -s reload
測試Nginx代理服務器結果。
正向代理測試,執行以下命令,可以訪問任意網址,表示安裝成功。
curl -x 192.168.XX.XX(代理服務器的IP地址):<代理服務器的端口> http://example.aliyundoc.com(任意網址)
反向代理測試,執行以下命令,輸入任何網址后,可以訪問文件nginx.conf中指定的網址,表示安裝成功。
curl -x 192.168.XX.XX(代理服務器的IP地址):<代理服務器的端口> https://example.aliyundoc.com(任意網址)
步驟二:安裝和配置云監控插件
云監控僅支持通過管理員賬號root操作云監控插件。使用管理員賬號具有一定風險,如果操作不當可能導致系統穩定性問題或數據安全問題,請謹慎操作。
在非阿里云主機上安裝云監控插件。
具體操作,請參見安裝和卸載C++版本插件。
在云監控插件中配置Nginx代理服務器。
以root用戶登錄云監控插件所在的非阿里云主機。
執行以下命令,打開文件agent.properties。
cd /usr/local/cloudmonitor/conf vi agent.properties
在云監控插件中配置Nginx代理服務器的相關信息。
http.proxy.auto=false #手動配置代理 http.proxy.host=192.168.XX.XX #Nginx代理服務器的IP地址。 http.proxy.port=8080 #Nginx代理服務器的端口。 #http.proxy.user=user #Nginx代理服務器的HTTP服務無用戶名。 #http.proxy.password=password #Nginx代理服務器的HTTP服務無用戶密碼。
按Esc鍵,輸入:wq,再按Enter鍵,保存并退出文件agent.properties。
執行以下命令,重啟云監控插件。
./cloudmonitorCtl.sh restart
步驟三:查看非阿里云主機的監控數據
登錄云監控控制臺。
在左側導航欄,單擊主機監控。
在主機監控頁面,單擊目標主機的實例名稱鏈接,或單擊目標主機對應操作列的監控圖表。
查看非阿里云主機的監控數據。