详情页标题前

阿里云日志服务SLS采集企业内网服务器日志-云淘科技

详情页1

本文以Nginx为例,介绍配置正向代理服务器以及通过代理模式将企业内网服务器日志采集到日志服务的解决方案。

前提条件

  • 已创建Project和Logstore。具体操作,请参见创建Project和创建Logstore。

  • 已在服务器上安装Linux Logtail 1.5.0及以上版本或Window Logtail 1.5.0.0及以上版本。具体操作,请参见安装Logtail(Linux系统)、安装Logtail(Windows系统)。

背景信息

如果您的多台服务器部署在企业内网中且没有公网访问权限,但您希望将这些服务器的日志采集到日志服务进行查询与分析,您可以通过代理模式,由具备公网访问权限的内网服务器将其他内网服务器上的日志发送到日志服务。您可以通过任何方式将具备公网访问权限的内网服务器配置为正向代理服务器。

工作原理

Logtail与日志服务交互的数据主要包括管控数据、业务数据和监控数据。其中,管控数据包括Logtail配置下发及鉴权等信息。通信协议包括HTTP和HTTPS,默认使用HTTP协议发送业务数据和监控数据。因此,代理服务器必须能够同时代理HTTP协议数据和HTTPS协议数据。

Nginx是一款开源的高性能HTTP代理服务器,本身支持代理HTTP协议数据,但由于鉴权等原因并不能直接代理HTTPS协议数据。为此,需要为Nginx配置HTTPS补丁,从而使其能够代理HTTPS协议数据。

步骤一:配置代理服务器

使用Nginx将一台具有公网访问权限的企业内网服务器配置为正向代理服务器。

  1. 登录待配置为正向代理服务器的机器。

  2. 下载Nginx及HTTPS补丁。

    1. 下载HTTPS补丁。

      git clone https://github.com/chobits/ngx_http_proxy_connect_module.git
    2. 下载并解压Nginx。

      其中,${version}表示Nginx版本,请根据实际情况替换。最新版本,请参见nginx: download。

      wget http://nginx.org/download/nginx-${version}.tar.gz
      tar -xzvf nginx-${version}.tar.gz
      cd nginx-${version}/
  3. 添加HTTPS补丁到Nginx。

    其中,${patchfile}为文件路径,请根据Nginx版本选择对应的文件。更多信息,请参见Select patch。

    patch -p1 < ../ngx_http_proxy_connect_module/patch/${patchfile}.patch
  4. 安装Nginx。

    ./configure --add-module=../ngx_http_proxy_connect_module
    make && make install
  5. 在nginx.conf文件中添加如下配置。

    其中,${代理服务器监听端口}和${DNS服务器地址},请根据实际情况替换。

    server {
         listen                         ${代理服务器监听端口};
         resolver                       ${DNS服务器地址};
    
         # 用于指定非HTTP请求的代理。
         proxy_connect;
         proxy_connect_allow            443;
         proxy_connect_connect_timeout  10s;
         proxy_connect_data_timeout     10s;
    
         # 用于指定HTTP请求的代理。
         location / {
             proxy_pass http://$host;
             proxy_set_header Host $host;
         }
    }
  6. 启动Nginx服务器。

步骤二:设置网络代理相关的环境变量

Linux系统

您可以通过如下两种方案设置网络代理相关的环境变量。

方案

优点

缺点

使用场景

方案一

配置仅对Logtail进程生效,影响较小。

配置方式相对复杂。

适用于服务器使用者,对服务器整体网络情况不太了解。

方案二

配置方式简单。

配置对整台服务器生效,影响较大。

适用于服务器管理员,对服务器上所有进程的网络请求状况较为了解。

方案一

  1. 登录某台企业内网服务器。

  2. 打开/etc/init.d/ilogtaild文件,在start()函数中增加如下环境变量,然后保存文件。

    关于环境变量的更多信息,请参见附录:网络代理相关的环境变量。

    start()
    {
        cd $BIN_DIR
        umask $UMASK
        # 在$BIN_DIR/ilogtail前新增代理相关环境变量。
        # 这里以ALL_PROXY为例,假设代理服务器地址为192.168.1.0,监听端口为9000。
        # 内网服务器与代理服务器之间通过HTTP协议进行通信。
        ALL_PROXY=http://192.168.1.0:9000 $BIN_DIR/ilogtail
        RETVAL=$?
    }
  3. 执行如下命令重启Logtail。

    /etc/init.d/ilogtaild restart
  4. 重复执行步骤1~3,为其他内网服务器设置代理相关的环境变量。

方案二

重要

如果您需要对内网服务器上的所有网络请求进行代理,或者您仅需要对Logtail的网络请求进行代理,但您完全了解服务器上其他进程的网络请求发送地址,您可以考虑此方案。否则,请使用方案一。

  1. 登录某台企业内网服务器。

  2. 使用export命令在启动文件~/.bash_profile/etc/profile中添加网络代理相关的环境变量。

    关于环境变量的更多信息,请参见附录:网络代理相关的环境变量。

  3. 执行如下命令使环境变量生效。

    此处,以~/.bash_profile启动文件为例。

    source ~/.bash_profile
  4. 执行如下命令,重启Logtail。

    /etc/init.d/ilogtaild restart
  5. 重复执行步骤1~4,为其他内网服务器配置代理相关的环境变量。

Windows系统

  1. 打击运行窗口,输入regedit,然后单击确定

  2. 注册表编辑器窗口中,搜索计算机\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\LogtailDaemon,然后单击LogtailDaemon阿里云日志服务SLS采集企业内网服务器日志-云淘科技

  3. 单击右键,选择新建 > 多字符串值,然后命名该新值为Environment

  4. 双击Environment,在数值数据文本框中,输入代理相关的环境变量,然后单击确定

    例如以ALL_PROXY为例,代理服务器地址为192.168.1.0,监听端口为9000,内网服务器与代理服务器之间通过HTTP协议进行通信。关于环境变量的更多信息,请参见附录:网络代理相关的环境变量。阿里云日志服务SLS采集企业内网服务器日志-云淘科技

  5. 打击运行窗口,输入services.msc,然后单击确定

  6. 服务窗口中,选择Logtail对应的服务。

    • 如果是Logtail 0.x.x.x版本,选择LogtailWorker服务。

    • 如果是Logtail 1.0.0.0及以上版本,选择LogtailDaemon服务。

  7. 单击右键,选择重新启动

步骤三:验证网络

  1. 登录某台企业内网服务器。

  2. 执行如下命令。

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

    curl http://logtail.${region}.log.aliyuncs.com
    curl https://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,验证其他企业内网服务器的网络。

附录:网络代理相关的环境变量

环境变量的配置说明如下:

重要

下述环境变量均支持小写模式,但优先级低于大写模式。

  • 如果将HTTP和HTTPS协议数据全部发送给同一台代理服务器,可添加环境变量ALL_PROXY

    ALL_PROXY:${正向代理服务器的地址}
  • 如果将HTTP和HTTPS协议数据分别发送至不同的代理服务器上,可添加环境变量HTTP_PROXYHTTPS_PROXY

    HTTP_PROXY:${代理HTTP协议数据的服务器地址}
    HTTPS_PROXY:${代理HTTPS协议数据的服务器地址}

    其中,代理服务器的地址需满足[协议://[用户名:密码@]]地址[:端口]格式。

    • 协议(可选):指定了当前服务器和代理服务器之间的通信协议,可设置为http、https或socks5。如果不设置,默认使用http。

    • 用户名和密码(可选):登录代理服务器的用户名和密码。

    • 地址(必选):代理服务器的IP地址。

    • 端口(可选):设置为您在nginx.conf文件中配置的代理服务器监听端口。更多信息,请参见配置代理服务器中的步骤5。如果不设置,默认使用80。

    另外,您还可以额外增加NO_PROXY环境变量,该变量指定发往哪些地址的数据不需要经过代理服务器,多个地址之间可以用半角逗号(,)连接,支持的地址形式包括:

    • IP地址

    • 域名(可以以半角句号(.)开头,支持匹配当前域名及其子域名。)

    • *(禁用代理服务器)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/165766.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云日志服务SLS服务日志仪表盘-云淘科技

    开通服务日志(详细日志、重要日志)功能后,您可以在CloudLens for SLS应用中查看对应的仪表盘。 具体操作,请参见查看数据报表。 日志类型 仪表盘分类 仪表盘名称 详细日志 访问监控 访问流量监控 访问监控 访问异常监控 重要日志 访问监控 消费组监控 采集监控 Logtail整体状态 采集监控 Logtail文件采集监控 采集监控 Logtai…

    阿里云日志服务SLS 2023年12月10日
  • 阿里云容器服务ACK使用Kubernetes API-云淘科技

    本文将基于cURL命令简单演示如何以REST的方式使用Kubernetes API,方便您使用开发语言原生的HTTPS方式操作Kubernetes集群。演示包括创建和删除Pod,创建和修改Deployment。 获取集群访问凭证KubeConfig 登录容器服务管理控制台。 单击前往RAM进行授权进入云资源访问授权页面,然后单击同意授权。 完成以上授权后,刷…

    阿里云容器服务 2023年12月10日
  • 阿里云容器服务ACK使用Kubernetes API-云淘科技

    本文将基于cURL命令简单演示如何以REST的方式使用Kubernetes API,方便您使用开发语言原生的HTTPS方式操作Kubernetes集群。演示包括创建和删除Pod,创建和修改Deployment。 获取集群访问凭证KubeConfig 登录容器服务管理控制台。 单击前往RAM进行授权进入云资源访问授权页面,然后单击同意授权。 完成以上授权后,刷…

    阿里云容器服务 2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云RDS数据库事务拆分-云淘科技

    RDS的数据库独享代理提供事务拆分功能,能够将事务内写操作之前的读请求转发到只读实例,降低主实例负载。 前提条件 开通并配置数据库代理服务 背景信息 默认情况下,RDS数据库独享代理会将事务内的所有请求都发送到主实例以保障事务的正确性,但是某些框架会将所有请求封装到非自动提交的事务中(通过set autocommit=0;关闭自动提交),导致主实例负载过大。…

    2023年12月9日
  • 阿里云RDS数据库查看监控数据-云淘科技

    使用独享代理时,您可以随时查看独享代理的CPU使用率,了解独享代理的负载情况,以便及时调整代理数量。 前提条件 开通并配置数据库代理服务 操作步骤 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。 在左侧导航栏单击数据库代理。 选择监控数据页签。 设置查询时间段,即可查看CPU使用率。 说明 这里展示是的代理实例的CPU使用率。 相关API API…

    阿里云数据库 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。