近日,阿里云日志服务团队对日志服务做了更进一步的完善。阿里云日志服务团队专门为IoT(Internet of Things)设备量身定制了一套日志数据采集方案,发布了适用于开发者的面向嵌入式和物联网客户端C Producer;还发布了Flink Connector工具,方便Flink用户进行开发;以及新增了API网关的访问日志(Acccess Log)功能,便于开发和维护人员更详细的了解其Web服务的运行状况;同时对告警功能进行升级,新增了钉钉和自定义WebHook两种新通知渠道。
一、面向嵌入式、物联网的日志客户端C Producer
随着IoT正在高速增长,越来越多的智能设备开始逐步走进我们的日常生活,例如智能路由器、天猫精灵、扫地机器人等,让我们体验到智能领域的便利。由于IoT设备数目多、分布广,难以调试且硬件受限,传统的设备日志解决方案无法完美满足开发者的需求。阿里云的日志服务团队根据多年Logtail的开发经验,结合IoT设备的特点,为IoT设备量身定制一套日志数据采集方案:C Producer。
日志服务团队将C Producer Library定位为一个“轻量级Logtail”,继承了Logtail的稳定、边界特点,虽然没有Logtail实时配置管理机制,但也具备除此之外70%的功能,包括:
lÂ
提供多租户概念:可以对多种日志(例如Metric、DebugLog、ErrorLog)进行优先级分级处理,同时配置多个客户端,每个客户端可独立配置采集优先级、目的project/logstore等;
lÂ
支持上下文查询:同一个客户端产生的日志在同一上下文中,支持查看某条日志前后相关日志;
lÂ
并发发送,断点续传:支持缓存上线可设置,超过上限后日志写入失败。
此外,C Producer还具备以下IoT设备专享功能,例如:
lÂ
本地调试:支持将日志内容输出到本地,并支持轮转、日志数、轮转大小设置;
lÂ
细粒度资源控制:支持针对不同类型数据/日志设置不同的缓存上线、聚合方式;
lÂ
日志压缩缓存:支持将未发送成功的数据压缩缓存,减少设备内存占用。
作为IoT设备量身定制的方案,C Producer在以下几个方面具备明显的优势:
lÂ
客户端高并发写入:可配置的发送线程池,支持每秒数十万条日志写入,详情参见性能测试。
lÂ
低资源消耗:每秒20W日志写入只消耗70% CPU;同时在低性能硬件(如树莓派)上,每秒产生100条日志对资源基本无影响。
lÂ
客户端日志不落盘:既数据产生后直接通过网络发往服务端。
lÂ
客户端计算与 I/O 逻辑分离:日志异步输出,不阻塞工作线程。
lÂ
支持多优先级:不通客户端就可配置不同优先级,高优先级日志最先发送。
lÂ
本地调试:便于在网络不通的情况下本地测试应用程序。
二、API网关访问日志
阿里云API网关提供API托管服务,在微服务聚合、前后端分离和系统集成上为用户提供了诸多便利。访问日志是由web服务生成的日志,每一次API请求都对应一条访问记录,内容包括调用者IP、请求的URL、响应延迟、返回状态码、请求和响应字节数等重要信息,便于用户了解其web服务的运行状况。
用户可通过访问日志功能进行日志在线查询、详细调用日志、自定义分析图表和预置分析报表等操作。日志服务支持通过数据接入向导采集API网关的访问日志,提供一键打通API网关日志功能,对API网关中产生实时日志提供如下信息:
lÂ
秒级实时采集能力,99.9%情况下10秒内即可消费;
lÂ
通过LogHub功能实时计算、流计算对接;
lÂ
通过LogShipper与数据仓库对接;
lÂ
利用LogSearch/Analytics功能进行实时日志查询、分析;
lÂ
通过仪表盘、告警等功能进行线上监控。
三、日志告警功能升级
阿里云的日志服务提供告警功能,支持保存查询语句为快速查询,对查询设置触发周期(间隔),并对执行结果设定判断条件并且告警,以便实时监控Nginx访问日志。
日志服务通过通知中心告知用户,即在阿里云通知中心可以设置多个联系人,通知会通过邮件和短信方式发送给用户。
近日,日志服务团队对告警功能进行升级,新增了WebHook通知推送方式,即钉钉机器人和自定义WebHook等,用户可以在通知内容和方式上进行自定义配置并推送自定义地址,为开发者、运维及运营人员对日志的使用提供了便利。同时,对告警内容进行优化:新增上下文、账号归属人的信息,方便进行问题定位。
四、全新发布Flink Connector工具
Flink log connector是阿里云日志服务团队提供的用于对接Flink的工具,方便Flink用户在Flink环境中进行日志服务LogHub的数据开发,包括两部分:消费者(Consumer)和生产者(Producer)。消费者用于从日志服务中读取数据,支持exactly once语义,支持shard负载均衡。生产者则用于将数据写入日志服务,使用connector时,需要在项目中添加maven依赖:
1.Â
<dependency>
2.Â
<groupId>org.apache.flink</groupId>
3.Â
<artifactId>flink-streaming-java_2.11</artifactId>
4.Â
<version>1.3.2</version>
5.Â
</dependency>
6.Â
<dependency>
7.Â
<groupId>com.aliyun.openservices</groupId>
8.Â
<artifactId>flink-log-connector</artifactId>
9.Â
<version>0.1.7</version>
10.Â
</dependency>
11.Â
<dependency>
12.Â
<groupId>com.google.protobuf</groupId>
13.Â
<artifactId>protobuf-java</artifactId>
14.Â
<version>2.5.0</version>
15.Â
</dependency>
16.Â
<dependency>
17.Â
<groupId>com.aliyun.openservices</groupId>
18.Â
<artifactId>aliyun-log</artifactId>
19.Â
<version>0.6.10</version>
20.Â
</dependency>
21.Â
<dependency>
22.Â
<groupId>com.aliyun.openservices</groupId>
23.Â
<artifactId>log-loghub-producer</artifactId>
24.Â
<version>0.1.8</version>
25.Â
</dependency>
Flink Connector具有可设置消费起始位置,监控、告警,容灾、异常恢复,准确性高等特点:
lÂ
设置消费起始位置,方便用户进行消费点的设置;
lÂ
监控,实时获取当前数据消费状态,并通过设置告警知晓延迟的任务;
lÂ
支持消费实例弹性伸缩、容灾、异常恢复,无需关心细节;
lÂ
提供消费级exactly once语义支持,保证数据精确性。
更多关于日志服务的介绍及使用请参考以下文章:
lÂ
《C Producer产品文档》
lÂ
《API网关访问日志产品文档》
lÂ
《告警功能产品文档》
lÂ
《Flink Connector工具产品文档》