本文为您介绍非阿里云主机通过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证书。具体操作请参见提交证书申请。
按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
步骤三:查看非阿里云主机的监控数据
登录云监控控制台。
在左侧导航栏,单击主机监控。
在主机监控页面,单击目标主机的实例名称链接,或单击目标主机对应操作列的监控图表。
查看非阿里云主机的监控数据。