文档

非阿里云主机如何通过Nginx代理服务器上报监控数据?

更新时间:

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

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

由于云监控部署在Linux服务器上,因此建议您的代理服务器选用Linux服务器。本文以CentOS操作系统为例。

重要

您只能通过管理员账号root部署Nginx代理服务器。使用管理员账号具有一定风险,如果操作不当可能导致系统稳定性问题或数据安全问题,请谨慎操作。

  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 forward.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://example.aliyundoc.com(任意网址)

      • 反向代理

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

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

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

重要 云监控仅支持通过管理员账号root操作云监控插件。使用管理员账号具有一定风险,如果操作不当可能导致系统稳定性问题或数据安全问题,请谨慎操作。
  1. 在非阿里云主机上安装云监控插件。

    具体操作,请参见安装和卸载C++版本插件

  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. 主机监控页面,单击目标主机的实例名称链接,或单击目标主机对应操作列的监控图表

    查看非阿里云主机的监控数据。

  • 本页导读 (1)
文档反馈