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

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 日志服务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日志并进行多维度分析。
目录
相关文章
|
18天前
|
网络性能优化 网络虚拟化 网络架构
配置接口限速示例(盒式交换机)
接口限速简介 接口限速对通过整个端口的全部报文流量速率进行限制,不对具体流量进行区分,可以实现给某个接口分配固定的带宽,控制方式单一,配置简单。 入方向与出方向的接口限速属于并列关系,用户可以根据需要同时配置,也可以单独配置。
|
运维 小程序 应用服务中间件
记录Ngnix增加对IP封禁及自动封禁IP的方案思考
发现某个应用的服务器一些IP地址或是一些IP段请求量巨大,初步确定为非法请求,经过增加IP封禁策略,使其不可访问。
960 0
记录Ngnix增加对IP封禁及自动封禁IP的方案思考
|
11天前
|
弹性计算 Shell Apache
某时间段访问apache 服务器的请求IP
【4月更文挑战第29天】
16 2
|
2月前
|
物联网 开发工具
MQTT常见问题之创建mqtt上下线通知规则时报错如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总:
|
8月前
如何避免错误配置的应用接收用户流量?
如何避免错误配置的应用接收用户流量?
|
10月前
|
网络协议 Shell Perl
根据web访问日志,封禁请求量异常的IP,如IP在半小时后恢复正常,则解除封禁
根据web访问日志,封禁请求量异常的IP,如IP在半小时后恢复正常,则解除封禁
69 1
|
网络协议 物联网
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
|
存储 安全 关系型数据库
插件未购买或已到期,请重新绑定帐号后重试,如操作无效,请将服务器出口IP改为:8XX.XXX.XX.XX
插件未购买或已到期,请重新绑定帐号后重试,如操作无效,请将服务器出口IP改为:8XX.XXX.XX.XX
683 0
|
Windows
批量创建IP方法
以下教程,将告诉大家如何在Windows系统中通过命令行,批量添加IP。目标,在本机的的网卡名称为“本地连接”的网卡中,批量添加192.168.1段的ip地址,起开始IP为10,每次增加1,知道22为止,即括号的三个参数。
944 0