非阿里云主机如何通过Nginx代理服务器上报监控数据?
本文为您介绍非阿里云主机通过Nginx代理服务器上报监控数据至云监控的操作方法。
步骤一:部署Nginx代理服务器
由于云监控部署在Linux服务器上,因此建议您的代理服务器选用Linux服务器。本文以CentOS操作系统为例。
您只能通过管理员账号root部署Nginx代理服务器。使用管理员账号具有一定风险,如果操作不当可能导致系统稳定性问题或数据安全问题,请谨慎操作。
下载Nginx最新安装包,例如:nginx-1.19.6。
登录Nginx下载中心。
单击nginx-1.19.6,下载Nginx安装包nginx-1.19.6.tar.gz。
下载Nginx补丁包至代理服务器的指定目录,例如:/opt。
本文以安装Nginx补丁包proxy_connect_1014.patch为例。
以root用户登录代理服务器。
执行以下命令,下载Nginx补丁包。
cd /opt
yum install -y git
git clone https://github.com/chobits/ngx_http_proxy_connect_module.git
得到的补丁包如下:
安装Nginx补丁包。
yum install -y patch pcre pcre-devel
patch -p1 < ngx_http_proxy_connect_module/patch/proxy_connect_1014.patch
安装Nginx。
上传Nginx安装包nginx-1.19.6.tar.gz至代理服务器的指定目录,例如:/usr/local。
以root用户登录代理服务器。
执行以下命令,解压Nginx安装包nginx-1.19.6.tar.gz至目录nginx-1.19.6。
cd /usr/local
tar zxvf nginx-1.19.6.tar.gz
执行以下命令,初始化Nginx。
cd nginx-1.19.6
./configure --prefix=/usr/local/nginx-1.19.6 --with-http_stub_status_module --with-http_ssl_module --add-module=ngx_http_proxy_connect_module
执行以下命令,安装Nginx。
make install
make && make install
执行以下命令,启动Nginx。
./nginx
查看Nginx安装结果。
在浏览器的地址栏输入代理服务器的IP地址:80,显示如下,说明安装成功。
配置Nginx。
执行以下命令,新建目录conf.d。
cd /usr/local/nginx-1.19.6/conf
mkdir conf.d
执行以下命令,在目录conf.d中新建文件forward.conf。
cd conf.d
vi forward.conf
在文件forward.conf中设置正向代理或反向代理。
正向代理
如果把局域网外的Internet想象成一个巨大的资源库,则局域网中的客户端要访问Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理。
将如下信息拷贝到文件forward.conf中,其中参数
resolver
设置为代理服务器的IP地址,其他参数均保持默认值。server { listen 80; # dns resolver used by forward proxying resolver 192.168.XX.XX; #设置代理服务器的IP地址。 # 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; } }
说明Nginx的正向代理不支持HTTPS协议。
反向代理
如果局域网向Internet提供资源服务,让Internet上的其他客户端来访问局域网内的资源,使他们必须通过一个代理服务器进行访问,这种服务就称为反向代理。
将如下信息拷贝到文件forward.conf中,其中参数
server_name
设置为代理服务器的IP地址,参数proxy_pass
设置为代理服务器访问的URL地址,参数ssl_certificate
设置为SSL证书,参数SSL_certificate_key
设置为SSL证书的密码,其他参数均保持默认值。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; } }
说明关于如何申请SSL证书。具体操作,请参见申请免费DV单域名试用证书或提交证书申请。
按Esc键,输入:wq,再按Enter键,保存并退出文件forward.conf。
执行以下命令,打开文件nginx.conf。
cd ..
vi nginx.conf
配置文件nginx.conf。
将如下信息拷贝到文件nginx.conf中,其中参数
include
设置为文件forward.conf所在路径。http { ..... include /usr/local/nginx-1.19.6/conf/conf.d/forward.conf; ..... }
按Esc键,输入:wq,再按Enter键,保存并退出文件nginx.conf。
执行以下命令,重启Nginx代理服务器。
nginx -s reload
测试Nginx安装结果。
正向代理
执行以下命令,能访问任意网址,表示安装成功。
curl -x192.168.XX.XX(代理服务器的IP地址)http://example.aliyundoc.com(任意网址)
反向代理
执行以下命令,无论输入任何网址,均只能访问文件nginx.conf中指定的网址,表示安装成功。
curl -x192.168.XX.XX(代理服务器的IP地址)https://example.aliyundoc.com(任意网址)
步骤二:安装和配置云监控插件
在非阿里云主机上安装云监控插件。
具体操作,请参见安装和卸载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
步骤三:查看非阿里云主机的监控数据
- 登录云监控控制台。
在左侧导航栏,单击主机监控。
在主机监控页面,单击目标主机的实例名称链接,或单击目标主机对应操作列的监控图表。
查看非阿里云主机的监控数据。