近日,阿里云日志服务团队对日志服务做了更进一步的完善。阿里云日志服务团队专门为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.
2. org.apache.flink
3. <artifactId>flink-streaming-java_2.11artifactId>
4. <version>1.3.2version>
5.
6.
7. com.aliyun.openservices
8. <artifactId>flink-log-connectorartifactId>
9. <version>0.1.7version>
10.
11.
12. com.google.protobuf
13. <artifactId>protobuf-javaartifactId>
14. <version>2.5.0version>
15.
16.
17. com.aliyun.openservices
18. <artifactId>aliyun-logartifactId>
19. <version>0.6.10version>
20.
21.
22. com.aliyun.openservices
23. <artifactId>log-loghub-producerartifactId>
24. <version>0.1.8version>
25.
Flink Connector具有可设置消费起始位置,监控、告警,容灾、异常恢复,准确性高等特点:
l 设置消费起始位置,方便用户进行消费点的设置;
l 监控,实时获取当前数据消费状态,并通过设置告警知晓延迟的任务;
l 支持消费实例弹性伸缩、容灾、异常恢复,无需关心细节;
l 提供消费级exactly once语义支持,保证数据精确性。
更多关于日志服务的介绍及使用请参考以下文章:
l 《C Producer产品文档》
l 《API网关访问日志产品文档》