LogHub新增公网IP/服务端到达时间标签

本文涉及的产品
对象存储 OSS,20GB 3个月
云备份 Cloud Backup,100GB 3个月
文件存储 NAS,50GB 3个月
简介: 日志服务LogHub功能新增加了两种默认标签:日志写入客户端的公网IP地址和服务端接受日志的时间。客户端公网IP可以用于统计客户端的位置分布。服务端到达时间可以统计日志的实际到达服务端的时间。

简介

日志服务LogHub功能新增加了两种默认标签:日志写入客户端的公网IP地址和服务端接受日志的时间。客户端公网IP可以用于统计客户端的位置分布。服务端到达时间可以统计日志的实际到达服务端的时间。

用户开通之后,使用SDK,WebTracking等方式写入日志时,日志服务会记录客户端IP地址和日志到达服务端的时间,并作为如下标签保存到Tag字段中,如图1所示:

  • __client_ip___: 客户端的公网IP地址;
  • __receive_time___: 服务端接受日志的时间,格式为Unix时间戳,如1537145311。

20180918092307

图1 添加标签

如何开通

用户只需在LogStore上打开记录外网IP。新创建LogStore时,开关默认打开,如图2所示。对于已经存在的LogStore,用户也可以通过修改页面开通。
image

图2 开通记录外网IP

注意

  1. 日志服务只会添加公网IP到标签中,如果客户端IP是内网IP,则不会出现在标签中。
  2. 暂不支持Logtail客户端。使用Logtail采集日志时,客户端IP已经包含在source字段中。

如何消费

查询分析中消费

用户可以像使用其他自定义标签一样对这两个标签进行消费和在控制台上查询。查询tag中的字段时,需要添加 “__tag__” 前缀。如查询IP地址为220.111.23.88的客户端写入的日志:

__tag__:__client_ip__:  220.111.23.88

标签字段同样支持模糊查询:

__tag__:__client_ip__:  220.*

同时日志服务也提供了大量的IP地理函数,如根据IP查询客户端所在城市:

* | SELECT ip_to_city("__tag__:__client_ip__") as city

将IP地理函数和可视化图表结合,将客户端分布在地图上可视化展示,例如统计每个地点写入的日志条数:

20180917133309.png | center | 827x359


图3 写入日志客户端分布

查询语句为:

* | SELECT count(1) as count, ip_to_geo("__tag__:__client_ip__") as geo GROUP BY geo

查看全部地理函数

日志到达服务端时间戳也可以用于查询,如查询到达时间戳为1537090887的日志:

__tag__:__receive_time__: 1537090887

通过SDK或消费组消费

当使用SDK或者消费组消费时,可以通过LogGroup对象的Tag属性中获取客户端IP和到达时间。以使用Java SDK为例,可以通过如下方式获取到客户端IP和日志到达服务端时间:

BatchGetLogRequest request = new BatchGetLogRequest(...);
BatchGetLogResponse response = client.BatchGetLog(request);
for (LogGroupData data : response.GetLogGroups()) {
    Logs.LogGroup logGroup = data.GetLogGroup();
    for (Logs.LogTag tag : logGroup.getLogTagsList()) {
        if (tag.getKey().equals("__client_ip__")) {
            // 写入日志的客户端IP地址
            String clientIp = tag.getValue();
            // ...
        } else if (tag.getKey().equals("__receive_time__")) {
            // 日志到达服务端时间戳
            String timestamp = tag.getValue();
            // ...
        }
    }
}

流计算消费

日志服务支持多种流计算平台将其作为流式数据输入,以使用Blink消费日志为例,假设用户的原始日志数据为如下格式:

{
    "a": 1000,
    "b": 1234,
    "c": "li"
}

为了能够从日志服务消费数据,用户需要创建如下DDL:

create table sls_stream(
    a int,
    b int,
    c varchar
) with (
    type ='sls',
    endPoint ='http://cn-hangzhou-corp.sls.aliyuncs.com',
    accessId ='your access key id',
    accessKey ='your access key',
    startTime = '2017-07-05 00:00:00',
    project ='ali-cloud-streamtest',
    logStore ='stream-test',
    consumerGroup ='consumerGroupTest1'
);

除type外的各项参数用户需要根据实际情况替换。开通记录外网IP后,用户可以使用如下DDL在Blink消费新增的__client_ip__ 和__receive_time__ 标签:

create table sls_stream(
    __client_ip__  varchar HEADER,
    __receive_time__ varchar HEADER,
    a int,
    b int,
    c varchar
) with (
    type ='sls',
    endPoint ='http://cn-hangzhou-corp.sls.aliyuncs.com',
    accessId ='xxxxxxxxxxx',
    accessKey ='xxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    startTime = '2017-07-05 00:00:00',
    project ='ali-cloud-streamtest',
    logStore ='stream-test',
    consumerGroup ='consumerGroupTest1'
);

MaxCompute/OSS等存储

  1. OSS: 预计10月底支持投递标签功能。
  2. MaxCompute: DataWorks 9月底上线投递标签功能,上线之后用户可以选择使用DataWorks投递。

控制台使用演示:

相关资料

  1. 消费组消费
  2. 日志格式
  3. 操作LogStore
  4. IP地理函数
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
7月前
|
负载均衡 Kubernetes 网络协议
如何在集群的负载均衡过程保留请求源IP
本文探讨了在Kubernetes (k8s)集群中如何确保服务获取到请求的源IP。通常,源IP可能会因网络地址转换(NAT)和代理服务器而丢失。为保留源IP,文章建议在代理服务器层添加HTTP头`X-REAL-IP`字段。在K8s中,通过设置`externalTrafficPolicy: Local`可保留源IP,但这会牺牲负载均衡。使用Ingress时,可通过配置Ingress Controller的`use-forwarded-headers`并调整ConfigMap来同时保留源IP和实现负载均衡。文章适用于对网络和K8s感兴趣的读者。
176 3
|
6月前
|
数据采集 安全 网络安全
为什么要做数据采集的时候时刻更换ip地址呢?
在数据采集时频繁更换IP地址主要是为了灵活性、效率和安全性。动态代理IP能适应不同地域采集,降低成本,避免目标服务器安全规则限制导致效率下降,并提高安全性,防止受到不良信息影响。随着互联网发展,HTTP动态代理IP成为满足网络安全和隐私保护需求的重要工具。
91 0
为什么要做数据采集的时候时刻更换ip地址呢?
|
7月前
|
弹性计算 Shell Apache
某时间段访问apache 服务器的请求IP
【4月更文挑战第29天】
65 2
如何避免错误配置的应用接收用户流量?
如何避免错误配置的应用接收用户流量?
|
网络协议 物联网
DFP 数据转发协议应用实例 4.修改网络中指定设备的参数
稳控科技编写的一套数据转发规则, 取自“自由转发协议 FFP(Free Forward Protocol)” ,或者 DFP(DoubleF Protocol), DF 也可以理解为 Datas Forward(数据转发)的缩写。DF 协议是与硬件接口无关的数据链路层协议,规定了数据流如何在不同设备之间、不同接口之间的传输方向。 DF 协议一般用于延长数字接口的传输距离(数据中继),它与硬件接口类型无关,可以基于 UART、 LoRA、TCP 等异步数据传输介质。
DFP 数据转发协议应用实例  4.修改网络中指定设备的参数
|
人工智能 Linux
VOS 媒体转发开启后,如何计算各种编码所占用的带宽,以及如何修改服务器的时区
计算方法如下: 带宽 = 包长度 × 每秒包数 = 包长度 × (1 / 打包周期) =(Ethernet 头 + IP 头 + UDP 头 + RTP 头 + 有效载荷)× 每秒包数 =(112bit + 160bit + 64bit + 96bit + 有效载荷)× 每秒包数 =(112bit + 320bit + 有效载荷)× 每秒包数 =(432bit + 有效载荷)× 每秒包数 =(432bit × 每秒包数) + (有效载荷 × 每秒包数) =(432bit × 1000 / 打包周期) + 编码速率 =(432bit / 打包周期)Kbps + 编码速率 按照上面的计算公式: G
|
Windows
批量创建IP方法
以下教程,将告诉大家如何在Windows系统中通过命令行,批量添加IP。目标,在本机的的网卡名称为“本地连接”的网卡中,批量添加192.168.1段的ip地址,起开始IP为10,每次增加1,知道22为止,即括号的三个参数。
1012 0