本文为您介绍非阿里云主机通过Nginx代理服务器上报监控数据至云监控的操作方法。

步骤一:部署Nginx代理服务器

说明 由于云监控部署在Linux服务器上,因此建议您的代理服务器选用Linux服务器。本文以CentOS操作系统为例。
  1. 下载Nginx最新安装包,例如:nginx-1.19.6
    1. 登录Nginx下载中心。
    2. 单击nginx-1.19.6,下载Nginx安装包nginx-1.19.6.tar.gz
  2. 下载Nginx补丁包至代理服务器的指定目录,例如:/opt
    说明 本文以安装Nginx补丁包 proxy_connect_1014.patch为例。
    1. 以root用户登录代理服务器。
    2. 执行以下命令,下载Nginx补丁包。

      cd /opt

      yum install -y git

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

      得到的补丁包如下: http_proxy_connect
  3. 安装Nginx补丁包。

    yum install -y patch pcre pcre-devel

    patch -p1 < ngx_http_proxy_connect_module/patch/proxy_connect_1014.patch

  4. 安装Nginx。
    1. 上传Nginx安装包nginx-1.19.6.tar.gz至代理服务器的指定目录,例如:/usr/local
    2. 以root用户登录代理服务器。
    3. 执行以下命令,解压Nginx安装包nginx-1.19.6.tar.gz至目录nginx-1.19.6

      cd /usr/local

      tar zxvf nginx-1.19.6.tar.gz

    4. 执行以下命令,初始化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

    5. 执行以下命令,安装Nginx。
      make install
      make && make install
    6. 执行以下命令,启动Nginx。
      ./nginx
    7. 查看Nginx安装结果。

      在浏览器的地址栏输入代理服务器的IP地址:80,显示如下,说明安装成功。

      Nginx
  5. 配置Nginx。
    1. 执行以下命令,新建目录conf.d

      cd /usr/local/nginx-1.19.6/conf

      mkdir conf.d

    2. 执行以下命令,在目录conf.d中新建文件forward.conf

      cd conf.d

      vi nginx.conf

    3. 在文件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试用证书 提交证书申请
    4. 按Esc键,输入:wq,再按Enter键,保存并退出文件forward.conf
    5. 执行以下命令,打开文件nginx.conf

      cd ..

      vi nginx.conf

    6. 配置文件nginx.conf
      将如下信息拷贝到文件 nginx.conf中,其中参数 include设置为文件 forward.conf所在路径。
      http {
      .....
      include /usr/local/nginx-1.19.6/conf/conf.d/forward.conf;
      .....
      }
    7. 按Esc键,输入:wq,再按Enter键,保存并退出文件nginx.conf
    8. 执行以下命令,重启Nginx代理服务器。
      nginx -s reload
    9. 测试Nginx安装结果
      • 正向代理

        执行以下命令,能访问任意网址,表示安装成功。

        curl -x192.168.XX.XX(代理服务器的IP地址)http://www.aliyun.com(任意网址)

      • 反向代理

        执行以下命令,无论输入任何网址,均只能访问文件nginx.conf中指定的网址,表示安装成功。

        curl -x192.168.XX.XX(代理服务器的IP地址)https://www.baidu.com(任意网址)

步骤二:安装和配置云监控插件

  1. 在非阿里云主机上安装云监控插件。
    具体操作,请参见 安装和卸载插件
  2. 在云监控插件中配置Nginx代理服务器。
    1. 以root用户登录云监控插件所在的非阿里云主机。
    2. 执行以下命令,打开文件agent.properties

      cd /usr/local/cloudmonitor/conf

      vi agent.properties

    3. 在云监控插件中配置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服务无用户密码。
    4. 按Esc键,输入:wq,再按Enter键,保存并退出文件agent.properties
    5. 执行以下命令,重启云监控插件。
      ./cloudmonitorCtl.sh restart

步骤三:查看非阿里云主机的监控数据

  1. 登录云监控控制台
  2. 在左侧导航栏,单击主机监控
  3. 主机监控实例列表页签,单击目标主机的实例名称链接,或单击目标主机对应操作列的监控图表
    查看非阿里云主机的监控数据。