本文以NGINX为例说明如何将企业内网服务器日志采集到日志服务。

前提条件

已创建Project和Logstore。更多信息,请参见创建Project创建Logstore

背景信息

如果您的多台服务器部署在企业内网中且没有公网访问权限,但您希望将这些服务器的日志采集到日志服务进行查询与分析,您可以将一台具有公网访问权限的企业内网服务器配置为网关机,通过该网关机将企业内网服务器日志采集至日志服务。

您可以选择任意一款反向代理服务器(例如NGINX)来配置网关机。NGINX是一款开源的高性能HTTP和反向代理服务器。更多信息,请参见NGINX

工作原理

您可以通过网关机采集企业内网服务器日志到日志服务,其中涉及的Logtail和日志服务交互的域名有如下三类。
  • 一类以logtail开头,格式为logtail.${region}.log.aliyuncs.com,例如logtail.cn-beijing.log.aliyuncs.com。该类域名用于负责管控类的请求交互。
  • 一类以Project名称开头,格式为${project_name}.${region}.log.aliyuncs.com,例如project-example.cn-beijing.log.aliyuncs.com。该类域名用于数据类的请求交互。
  • 一类以ali-${region}-sls-admin开头,格式为ali-${region}-sls-admin.${region}.log.aliyuncs.com, 例如ali-cn-beijing-sls-admin.cn-beijing.log.aliyuncs.com。该类域名用于监控数据的上报。

上述域名中的${region}为目标Project所在地域,${project_name}为目标Project名称。

工作原理

步骤一:开通匿名写

提交工单,申请开通匿名写。

步骤二:配置网关机

使用NGINX将一台具有公网访问权限的企业内网服务器配置为网关机的操作步骤如下:

  1. 登录待配置为网关机的服务器。
  2. 安装NGINX。

    具体操作,请参见安装NGINX

  3. nginx.conf文件中添加以下配置。

    此处以默认的HTTP访问方式为例。其中,${DNS服务器地址},请根据实际值替换。

       server {
            listen       80;
            server_name  *.log.aliyuncs.com;
    
            location / {
                resolver ${DNS服务器地址};
                proxy_set_header  Host $host;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_pass http://$host:80$request_uri;
                break;
           }
        }

步骤三:绑定企业内网服务器与网关机

配置网关机后,需要绑定企业内网服务器与网关机。

  1. 登录某台企业内网服务器。
  2. 安装Logtail。
  3. 配置域名解析。
    这里以使用DNSmasq、Linux系统为例。
    1. /etc/resolv.conf文件中添加如下脚本,用于设置本机为DNS服务器。
      nameserver 127.0.0.1
    2. /etc/dnsmasq.conf文件中添加如下脚本,用于绑定网关机。
      请根据实际值,替换${网关机IP地址}
      address=/.log.aliyuncs.com/${网关机IP地址}
  4. 重复执行步骤1~3,绑定其他企业内网服务器与网关机。

步骤四:验证网络

  1. 登录某台企业内网服务器。
  2. 执行如下命令。

    下述命令中的${region}为目标Project所在地域,${project_name}为目标Project名称,请根据实际情况替换。

    curl http://logtail.${region}.log.aliyuncs.com
    curl http://${project_name}.${region}.log.aliyuncs.com
    curl http://ali-${region}-sls-admin.${region}.log.aliyuncs.com                        
    系统返回如下类似信息,表示网络正常。
    {"Error":{"Code":"OLSInvalidMethod","Message":"The script name is invalid : /","RequestId":"62591BC7C08B7BD4AA99FCD4"}}
  3. 重复执行步骤1~2,验证其他企业内网服务器的网络。

常见问题

当采集过程中遇到问题时,您可以提交工单,联系技术支持人员获取帮助。