CLI使用案例3:轻松跨库查询数据并下载到本地

本文涉及的产品
对象存储 OSS,OSS 加速器 50 GB 1个月
简介: 使用日志服务想要跨库查询? 网页控制台下载数据一页一页十分痛苦? SDK分页加格式化有些复杂? 不想写代码就可以查询数据并下载到本地? 日志服务CLI可以帮助你轻松解决这些问题.

当你需要查询数据或者下载到本地时, 是否遇到一些困难:

  • Web查询不支持跨多个logstore查询?
  • 现在的Web控制台只能一页一页的下载?
  • SDK提供的接口需要用起来有些复杂, 例如大数据量分页如何控制, 调整数据的输出格式化? 需要重试不精确查询.

如果是的, 你可以使用日志服务的CLI轻松解决这些问题.

查询日志

介绍

查询数据(GetLog)指的是针对索引数据, 在特定时间范围内搜索特定的日志.

查询日志的特点是:

  1. 针对获取索引的数据
  2. 按照索引获取, 跨分区, 支持跨多个logstore查询
  3. 可以按照主题, 全文分词, 特定索引域等查询条件获取.
  4. 按照日志资深时间查询, 而不是服务器接收.

参考查询语法以了解如何打开索引以及查询的相关语法.

查询日志

根据设定好的查询语句查询数据, 即可通过CLI轻松查询数据. 下面例子查询某个时间范围, 某台服务器响应速度大于5秒的访问日志.

aliyunlog log get_log_all --project_name="p1" --logstore_name="l1" --query="host:test.com and response_time>5000" --from_time="2018-01-24 16:00:00+8:00" --to_time="2018-01-24 17:00:00 +8:00"

这里拉取从时间2018-01-24 16:00:00+8:002018-01-24 17:00:00+8:00在内满足条件host:test.com and response_time>5000的日志, 例如:

{"count": 101, "logs": [{"k1":"a1", "k2":"a2"}, {"k1":"b1", "k2":"b2"}, ... ]}

注意:

  • 这里也可以使用子命令get_log(s)并传入size=-1, 但如果数据量特别多时, 例如总行数100万行的时候, 推荐使用get_log_all.

转换格式并存储到文件

如果期望将数据按照一行一条的形式存储下来, 一般需要加入jmes-filter进行处理. 如果期望存储到文件, 这直接使用>>重定向到文件即可.

例如:

aliyunlog log get_log_all --project_name="p1" --logstore_name="l1" --query="host:test.com and response_time>5000" --from_time="2018-01-24 16:00:00+8:00" --to_time="2018-01-24 17:00:00 +8:00" --jmes-filter="join('\n', map(&to_string(@), @))" >> ~/Desktop/test.data

输出将被存储在文件test.data中, 格式为:

{"k1":"a1", "k2":"a2"}
{"k1":"b1", "k2":"b2"}
...

时间格式

时间格式推荐是%Y-%m-%d %H:%M:%S %Z, 如2018-01-24 17:00:00+8:00, 但也支持其他合法的时间格式, 例如:Jan 01 2018 10:10:10+8:00

时间范围

命令get_log(s)get_log_all传入的时间范围, 需要注意几点:

  1. 这里的时间指的是解析出的日志时间(日志配置没有指定的情况下, 服务器接收日志的时间会设为这个时间).
  2. 时间的范围是左闭右闭[], 上面例子中16:00:0017:00:00时间的日志都会获得.

跨库查询

使用接口get_project_logs可以跨库查询日志. 例如:

aliyunlog log get_project_logs --request="{\"project\":\"p1\", \"query\":\"select count(1) from logstore1, logstore2, logstore3 where __date__ >'2017-11-10 00:00:00' and __date__ < '2017-11-13 00:00:00'\"}"

具体细节可以参考跨库查询.

进一步参考

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
目录
相关文章
|
2月前
|
运维 监控 前端开发
基于AI大模型的故障诊断与根因分析落地实现
本项目基于Dify平台构建多智能体协作的AIOps故障诊断系统,融合指标、日志、链路等多源数据,通过ReAct模式实现自动化根因分析(RCA),结合MCP工具调用与分层工作流,在钉钉/企业微信中以交互式报告辅助运维,显著降低MTTD/MTTR。
2557 28
|
3月前
|
人工智能 运维 安全
助力企业构建 AI 原生应用,函数计算 FunctionAI 重塑模型服务与 Agent 全栈生态
在 AI 技术应用落地进程中,目前面临着五大核心挑战:开发/学习门槛过高,部署运维阶段复杂,AI 应用安全备受挑战,生态能力方面存在严重的割裂与锁定现象,同时资源成本高昂且利用率低下。这些挑战极大地阻碍了 AI 技术的广泛普及以及应用效率的有效提升。阿里云函数计算(FC)依托 Serverless AI 基础设施与全栈能力的创新突破,推出 Function AI(函数智能),精准攻克上述痛点问题,全面推动 AI 应用在开发至运维的全流程中实现降本增效。
|
5月前
|
传感器 人工智能 运维
《重构工业运维链路:三大AI工具让设备故障“秒定位、少误判”》
本文记录工业设备智能运维系统的多AI协同开发实战:面对某重工企业200+台设备的碎片化运维日志(40%描述模糊)、15%故障误判率及“10分钟定位故障”需求,构建GitHub Copilot、TensorBoard、LogRocket协同矩阵。Copilot将日志结构化率提至92%,核心代码开发从7天缩至3天;TensorBoard解决样本不均衡问题,故障识别精度从82%升至91%,还优化传感器部署降本15万;LogRocket通过时序关联与案例匹配,将故障定位从45分钟缩至8分钟,23%故障提前预警。
613 11
|
12月前
|
机器学习/深度学习 传感器 算法
《DeepSeek赋能工业互联网:大幅提升设备故障诊断准确率》
DeepSeek技术通过多源数据融合、深度学习算法和实时在线监测,大幅提升工业互联网中设备故障诊断的准确性和及时性。它整合振动、温度、压力等多类型数据,构建精准故障模型,支持钢铁、化工、电力等行业的设备状态全面感知。DeepSeek还具备持续学习能力,适应复杂多变的工业场景,确保长期稳定的高精度故障诊断,助力企业实现高效、安全的生产运营。
907 3
|
数据采集 机器学习/深度学习 人工智能
揭秘AI大模型的‘梦幻迷雾’:一场关于真实与虚假的智力较量,你能否穿透幻觉迷雾,窥见真相之光?
【10月更文挑战第13天】本文深入探讨了大模型幻觉的底层逻辑,分析了其产生的原因、表现形式及解决方案。从数据质量、模型复杂度、解码策略等方面解析幻觉成因,提出了提高数据质量、引入正则化技术、增强上下文理解等对策,旨在减少大模型生成不准确或虚假信息的风险。
513 1
|
12月前
|
云安全 人工智能 安全
构建云上安全共同体 | 阿里云亮相2024年(第十三届)电信和互联网行业网络安全年会
构建云上安全共同体 | 阿里云亮相2024年(第十三届)电信和互联网行业网络安全年会
|
12月前
|
移动开发 安全 API
VMware vCenter Server 6.7U3w (安全更新) - ESXi 集中管理软件
VMware vCenter Server 6.7U3w (安全更新) - ESXi 集中管理软件
235 2
VMware vCenter Server 6.7U3w (安全更新) - ESXi 集中管理软件
|
人工智能 运维 Serverless
DeepSeek 模型云上部署评测:零门槛实现智能升级
DeepSeek 模型云上部署评测:零门槛实现智能升级
905 2
|
12月前
|
人工智能 程序员 API
iOS|记一名 iOS 开发新手的前两次 App 审核经历
啥,这玩意也有新手保护期?
386 0