网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts盘古助手
华为云Astro大屏应用
计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
云手机服务器 CPH
专属主机 DeH
弹性伸缩 AS
镜像服务 IMS
函数工作流 FunctionGraph
云耀云服务器(旧版)
VR云渲游平台 CVR
Huawei Cloud EulerOS
云化数据中心 CloudDC
网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
CDN与智能边缘
内容分发网络 CDN
智能边缘云 IEC
智能边缘平台 IEF
CloudPond云服务
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
可信智能计算服务 TICS
推荐系统 RES
云搜索服务 CSS
数据可视化 DLV
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
湖仓构建 LakeFormation
智能数据洞察 DataArts Insight
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
开天aPaaS
应用平台 AppStage
开天企业工作台 MSSE
开天集成工作台 MSSI
API中心 API Hub
云消息服务 KooMessage
交换数据空间 EDS
云地图服务 KooMap
云手机服务 KooPhone
组织成员账号 OrgID
云空间服务 KooDrive
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
区块链
区块链服务 BCS
数字资产链 DAC
华为云区块链引擎服务 HBS
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
价格
成本优化最佳实践
专属云商业逻辑
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
其他
管理控制台
消息中心
产品价格详情
系统权限
客户关联华为云合作伙伴须知
公共问题
宽限期保留期
奖励推广计划
活动
云服务信任体系能力说明
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts盘古助手
华为云Astro大屏应用
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
存储容灾服务 SDRS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
云存储网关 CSG
专属分布式存储服务 DSS
数据工坊 DWR
地图数据 MapDS
键值存储服务 KVS
容器
云容器引擎 CCE
云容器实例 CCI
容器镜像服务 SWR
云原生服务中心 OSC
应用服务网格 ASM
华为云UCS
数据库
云数据库 RDS
数据复制服务 DRS
文档数据库服务 DDS
分布式数据库中间件 DDM
云数据库 GaussDB
云数据库 GeminiDB
数据管理服务 DAS
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
AI开发平台ModelArts
华为HiLens
图引擎服务 GES
图像识别 Image
文字识别 OCR
自然语言处理 NLP
内容审核 Moderation
图像搜索 ImageSearch
医疗智能体 EIHealth
企业级AI应用开发专业套件 ModelArts Pro
人脸识别服务 FRS
对话机器人服务 CBS
语音交互服务 SIS
人证核身服务 IVS
视频智能分析服务 VIAS
城市智能体
自动驾驶云服务 Octopus
盘古大模型 PanguLargeModels
IoT物联网
设备接入 IoTDA
全球SIM联接 GSL
IoT数据分析 IoTA
路网数字化服务 DRIS
IoT边缘 IoTEdge
设备发放 IoTDP
企业应用
域名注册服务 Domains
云解析服务 DNS
企业门户 EWP
ICP备案
商标注册
华为云WeLink
华为云会议 Meeting
隐私保护通话 PrivateNumber
语音通话 VoiceCall
消息&短信 MSGSMS
云管理网络
SD-WAN 云服务
边缘数据中心管理 EDCM
云桌面 Workspace
应用与数据集成平台 ROMA Connect
ROMA资产中心 ROMA Exchange
API全生命周期管理 ROMA API
政企自服务管理 ESM
视频
实时音视频 SparkRTC
视频直播 Live
视频点播 VOD
媒体处理 MPC
视频接入服务 VIS
数字内容生产线 MetaStudio
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
专属云
专属计算集群 DCC
开发者工具
SDK开发指南
API签名指南
DevStar
华为云命令行工具服务 KooCLI
Huawei Cloud Toolkit
CodeArts API
云化转型
云架构中心
云采用框架
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
客户运营能力
国际站常见问题
支持计划
专业服务
合作伙伴支持计划
我的凭证
华为云公共事业服务云平台
工业软件
工业数字模型驱动引擎
硬件开发工具链平台云服务
工业数据转换引擎云服务

ICAgent结构化解析规则说明

更新时间:2025-01-24 GMT+08:00
分享

云日志服务LTS支持通过ICAgent采集方式进行日志上报。在创建日志接入时设置采集配置策略,例如解析规则、白名单规则、黑名单规则、上传原始日志等参数,实现定制化的采集策略。ICAgent采集配置定义了如何在服务器上采集同类日志并解析、发送到指定的日志流上。

功能优势

  • 基于日志文件,无侵入式采集日志。您无需修改应用程序代码,且采集日志不会影响您的应用程序运行。
  • 稳定处理日志采集过程中的各种异常。当遇到网络异常、服务端异常等问题时会采用主动重试、本地缓存数据等措施保障数据安全。
  • 基于日志服务的集中管理能力。安装ICAgent后,只需要在日志服务上配置主机组、ICAgent采集配置等信息即可。
  • 完善的自我保护机制。为保证运行在服务器上的ICAgent,不会明显影响您服务器上其他服务的性能,ICAgent在CPU、内存及网络使用方面都做了严格的限制和保护机制。

日志接入前,您可以提前了解ICAgent采集的结构化解析规则,方便您快速操作。支持组合解析,一个日志流的每个采集配置可以配置不同的结构化解析规则。

支持以下日志结构化解析规则:

  • 单行-全文日志:采集的日志文件中,如果您希望每一行日志在LTS界面中都显示为一条单独的日志数据,则选择单行日志。
  • 多行-全文日志:采集的日志中包含像java异常的日志,如果您希望多行异常的日志显示为一条日志,正常的日志则每一行都显示为一条单独的日志数据,则选择多行日志,方便您查看日志并且定位问题。
  • JSON:适用JSON格式的日志,通过提取JSON字段将其拆分为键值对。
  • 分隔符:适用于固定符号(例如空格/逗号/冒号)分隔的日志。
  • 单行-完全正则:适用任意格式的单行日志,使用正则表达式提取字段。填写正则匹配规则后,单击验证按钮,支持校验确保正则表达式的正确性。
  • 多行-完全正则:适用任意格式的多行日志,使用正则表达式提取字段。首行正则表达式支持自动生成和手动输入,填写正则匹配规则后,单击验证按钮,支持校验确保正则表达式的正确性。
  • 组合解析:适用于多格式嵌套的日志(例如:分隔符+JSON)。当您的日志结构太过复杂,涉及多种解析模式,单种解析模式(如 Nginx 模式、完整正则模式、JSON 模式等)无法满足日志解析需求时,您可以使用组合解析格式解析日志,此模式支持用户在控制台输入代码(json 格式)用来定义日志解析的流水线逻辑。您可添加一个或多个插件处理配置,ICAgent会根据处理配置顺序逐一执行。

时间范围有三种方式,分别是相对时间、整点时间和自定义。您可以根据自己的实际需求,选择时间范围。
  • 相对时间:表示查询距离当前时间1分钟、5分钟、15分钟等时间区间的日志数据。例如当前时间为19:20:31,设置相对时间1小时,表示查询18:20:31~19:20:31的日志数据。
  • 整点时间:表示查询最近整点1分钟、15分钟等时间区间的日志数据。例如当前时间为19:20:31,设置整点时间1小时,表示查询18:00:00~19:00:00的日志数据。
  • 自定义:表示查询指定时间范围的日志数据。

单行-全文日志

采集的日志文件中,如果您希望每一行日志在LTS界面中都显示为一条单独的日志数据,则选择单行日志。

  1. 选择单行-全文日志。
  2. 日志过滤默认关闭,可根据需要打开日志过滤,进行添加白名单规则或黑名单规则,白名单规则或黑名单规则添加上限为20个。
    图1 日志过滤规则
    • 开启日志过滤才需要设置,添加白名单规则。

      您可以添加过滤规则筛选出有价值的日志数据,过滤规则为正则表达式,应用到指定Key的Value。所创建的过滤规则为命中规则,即匹配上正则表达式的日志才会被采集上报。

      1. 单击“添加”,填写Key值和过滤规则(正则表达式)。单行/多行全文模式下,默认使用content作为全文的键{key}名,多条过滤规则之间关系是“或”逻辑。例如采集日志源文件中包含hello的日志,可配置采集规则为.*hello.*
      2. 单击操作列的可以进行规则校验,输入字段值,单击“校验”,提示校验成功。
        图2 校验
    • 开启日志过滤才需要设置,添加黑名单规则。

      您可以添加过滤规则筛选出有价值的日志数据,过滤规则为正则表达式,应用到指定Key的Value。所创建的过滤规则为丢弃规则,即匹配上正则表达式的日志会被丢弃。

      1. 单击“添加”,填写Key值和过滤规则(正则表达式)。单行/多行全文模式下,默认使用content作为全文的键{key}名,多条过滤规则之间关系是“或”逻辑。例如不采集日志源文件中包含test的日志,可配置采集规则为.*test.*
      2. 单击操作列的可以进行规则校验,输入字段值,单击“校验”,提示校验成功。

多行-全文日志

采集的日志中包含像java异常的日志,如果您希望多行异常的日志显示为一条日志,正常的日志则每一行都显示为一条单独的日志数据,则选择多行日志,方便您查看日志并且定位问题。

  1. 选择多行-全文日志。
  2. 从“从已有日志中选择”或“从剪切板中粘贴”选择日志样例。
    • 从已有日志中选择:单击“从已有日志中选择”,在弹出框中根据业务需求选择待操作的日志,单击“确定”。通过选择不同时间段筛选日志。
    • 从剪切板中粘贴:单击“从剪切板中粘贴”,可直接自动将您剪切的日志内容复制到示例日志框中。

  3. 在“首行正则表达式”下方支持自动生成或手动输入正则表达式。首行正则表达式需要匹配首行完整内容,注意并非首行的开头内容。
    图3 首行正则表达式
  4. 日志过滤默认关闭,可根据需要打开日志过滤,进行添加白名单规则或黑名单规则,白名单规则或黑名单规则添加上限为20个。
    图4 日志过滤规则
    • 开启日志过滤才需要设置,添加白名单规则。

      您可以添加过滤规则筛选出有价值的日志数据,过滤规则为正则表达式,应用到指定Key的Value。所创建的过滤规则为命中规则,即匹配上正则表达式的日志才会被采集上报。

      1. 单击“添加”,填写Key值和过滤规则(正则表达式)。单行/多行全文模式下,默认使用content作为全文的键{key}名,多条过滤规则之间关系是“或”逻辑。例如采集日志源文件中包含hello的日志,可配置采集规则为.*hello.*
      2. 单击操作列的可以进行规则校验,输入字段值,单击“校验”,提示校验成功。
        图5 校验
    • 开启日志过滤才需要设置,添加黑名单规则。

      您可以添加过滤规则筛选出有价值的日志数据,过滤规则为正则表达式,应用到指定Key的Value。所创建的过滤规则为丢弃规则,即匹配上正则表达式的日志会被丢弃。

      1. 单击“添加”,填写Key值和过滤规则(正则表达式)。单行/多行全文模式下,默认使用content作为全文的键{key}名,多条过滤规则之间关系是“或”逻辑。例如不采集日志源文件中包含test的日志,可配置采集规则为.*test.*
      2. 单击操作列的可以进行规则校验,输入字段值,单击“校验”,提示校验成功。

JSON

适用JSON格式的日志,通过提取JSON字段将其拆分为键值对。

  1. 选择JSON格式。
  2. 日志过滤默认关闭,可根据需要打开日志过滤,进行添加白名单规则或黑名单规则,白名单规则或黑名单规则添加上限为20个。
    图6 日志过滤规则
    • 开启日志过滤才需要设置,添加白名单规则。

      您可以添加过滤规则筛选出有价值的日志数据,过滤规则为正则表达式,应用到指定Key的Value。所创建的过滤规则为命中规则,即匹配上正则表达式的日志才会被采集上报。

      1. 单击“添加”,填写Key值和过滤规则(正则表达式)。Key值为日志字段名称,多条过滤规则之间关系是“或”逻辑。例如采集日志源文件中包含hello的日志,可配置采集规则为.*hello.*
      2. 单击操作列的可以进行规则校验,输入字段值,单击“校验”,提示校验成功。
        图7 校验
    • 开启日志过滤才需要设置,添加黑名单规则。

      您可以添加过滤规则筛选出有价值的日志数据,过滤规则为正则表达式,应用到指定Key的Value。所创建的过滤规则为丢弃规则,即匹配上正则表达式的日志会被丢弃。

      1. 单击“添加”,填写Key值和过滤规则(正则表达式)。Key值为日志字段名称,多条过滤规则之间关系是“或”逻辑。例如不采集日志源文件中包含test的日志,可配置采集规则为.*test.*
      2. 单击操作列的可以进行规则校验,输入字段值,单击“校验”,提示校验成功。
  3. 上传原始日志。

    打开上传原始日志开关后,原始日志将作为content字段的值上传到日志服务。

  4. 上传解析失败日志。

    打开上传解析失败日志开关后,原始日志将作为_content_parse_fail_字段的值上传到日志服务。

  5. 自定义日志时间

    开启后可指定某一字段作为日志时间,或关闭此项使用日志被采集时间作为日志时间。

  6. json解析层数。增加json解析层数配置,取值范围为1~4,只能整数,默认值为1。

    将json格式日志的字段展开,例如原始日志为{"key1":{"key2":"value"}},解析1层日志为:{"key1":{"key2":"value"}},解析2层日志为:{"key1.key2":"value"}。

分隔符

使用分隔符(例如:逗号、空格或字符)提取字段。

  1. 选择分隔符。
  2. 根据原始日志内容选择分隔符,或自定义其他需要的特殊字符作为分隔符。
  3. 从“从已有日志中选择”或“从剪切板中粘贴”选择日志样例,单击“验证”,在提取结果下方查看结果。
    • 从已有日志中选择:单击“从已有日志中选择”,在弹出框中根据业务需求选择待操作的日志,单击“确定”。通过选择不同时间段筛选日志。
    • 从剪切板中粘贴:单击“从剪切板中粘贴”,可直接自动将您剪切的日志内容复制到示例日志框中。
    图8 分隔符
  4. 日志过滤默认关闭,可根据需要打开日志过滤,进行添加白名单规则或黑名单规则,白名单规则或黑名单规则添加上限为20个。
    图9 日志过滤规则
    • 开启日志过滤才需要设置,添加白名单规则。

      您可以添加过滤规则筛选出有价值的日志数据,过滤规则为正则表达式,应用到指定Key的Value。所创建的过滤规则为命中规则,即匹配上正则表达式的日志才会被采集上报。

      1. 单击“添加”,填写Key值和过滤规则(正则表达式)。Key值为日志字段名称,多条过滤规则之间关系是“或”逻辑。例如采集日志源文件中包含hello的日志,可配置采集规则为.*hello.*
      2. 单击操作列的可以进行规则校验,输入字段值,单击“校验”,提示校验成功。
        图10 校验
    • 开启日志过滤才需要设置,添加黑名单规则。

      您可以添加过滤规则筛选出有价值的日志数据,过滤规则为正则表达式,应用到指定Key的Value。所创建的过滤规则为丢弃规则,即匹配上正则表达式的日志会被丢弃。

      1. 单击“添加”,填写Key值和过滤规则(正则表达式)。Key值为日志字段名称,多条过滤规则之间关系是“或”逻辑。例如不采集日志源文件中包含test的日志,可配置采集规则为.*test.*
      2. 单击操作列的可以进行规则校验,输入字段值,单击“校验”,提示校验成功。
  5. 上传原始日志。

    打开上传原始日志开关后,原始日志将作为content字段的值上传到日志服务。

  6. 上传解析失败日志。

    打开上传解析失败日志开关后,原始日志将作为_content_parse_fail_字段的值上传到日志服务。

  7. 自定义日志时间

    开启后可指定某一字段作为日志时间,或关闭此项使用日志被采集时间作为日志时间。

单行-完全正则

适用任意格式的单行日志,使用正则表达式提取字段。

  1. 选择单行-完全正则。
  2. 从“从已有日志中选择”或“从剪切板中粘贴”选择日志样例。
    • 从已有日志中选择:单击“从已有日志中选择”,在弹出框中根据业务需求选择待操作的日志,单击“确定”。通过选择不同时间段筛选日志。
    • 从剪切板中粘贴:单击“从剪切板中粘贴”,可直接自动将您剪切的日志内容复制到示例日志框中。
  3. 在“提取正则表达式”下方输入要提取日志的正则表达式,单击“验证”,在提取结果下方查看结果。

    或者单击“正则表达式自动生成”,在新打开的页面根据日志样例提取字段,输入key值,单击“确定”即可自动生成正则表达式,设置完成后,单击“确定”。

    图11 提取正则表达式
  4. 日志过滤默认关闭,可根据需要打开日志过滤,进行添加白名单规则或黑名单规则,白名单规则或黑名单规则添加上限为20个。
    图12 日志过滤规则
    • 开启日志过滤才需要设置,添加白名单规则。

      您可以添加过滤规则筛选出有价值的日志数据,过滤规则为正则表达式,应用到指定Key的Value。所创建的过滤规则为命中规则,即匹配上正则表达式的日志才会被采集上报。

      1. 单击“添加”,填写Key值和过滤规则(正则表达式)。Key值为日志字段名称,多条过滤规则之间关系是“或”逻辑。例如采集日志源文件中包含hello的日志,可配置采集规则为.*hello.*
      2. 单击操作列的可以进行规则校验,输入字段值,单击“校验”,提示校验成功。
        图13 校验
    • 开启日志过滤才需要设置,添加黑名单规则。

      您可以添加过滤规则筛选出有价值的日志数据,过滤规则为正则表达式,应用到指定Key的Value。所创建的过滤规则为丢弃规则,即匹配上正则表达式的日志会被丢弃。

      1. 单击“添加”,填写Key值和过滤规则(正则表达式)。Key值为日志字段名称,多条过滤规则之间关系是“或”逻辑。例如不采集日志源文件中包含test的日志,可配置采集规则为.*test.*
      2. 单击操作列的可以进行规则校验,输入字段值,单击“校验”,提示校验成功。
  5. 上传原始日志。

    打开上传原始日志开关后,原始日志将作为content字段的值上传到日志服务。

  6. 上传解析失败日志。

    打开上传解析失败日志开关后,原始日志将作为_content_parse_fail_字段的值上传到日志服务。

  7. 自定义日志时间

    开启后可指定某一字段作为日志时间,或关闭此项使用日志被采集时间作为日志时间。

多行-完全正则

适用任意格式的多行日志,使用正则表达式提取字段。

  1. 选择多行-完全正则。
  2. 从“从已有日志中选择”或“从剪切板中粘贴”选择日志样例。
    • 从已有日志中选择:单击“从已有日志中选择”,在弹出框中根据业务需求选择待操作的日志,单击“确定”。通过选择不同时间段筛选日志。
    • 从剪切板中粘贴:单击“从剪切板中粘贴”,可直接自动将您剪切的日志内容复制到示例日志框中。
  3. 在“首行正则表达式”下方支持自动生成或手动输入正则表达式。首行正则表达式需要匹配首行完整内容,注意并非首行的开头内容。

    “首行正则表达式”用于识别多行日志的行首,例如以下日志示例:

    2024-10-11 10:59:07.000 a.log:1 level:warn
      no.1 log
    2024-10-11 10:59:17.000 a.log:2 level:warn
      no.2 log

    完整的多行是:

    2024-10-11 10:59:07.000 a.log:1 level:warn
    no.1 log

    首行则是:

    2024-10-11 10:59:07.000 a.log:1 level:warn

    首行正则示例:^(\d+-\d+-\d+\s+\d+:\d+:\d+\.\d+),由于每个首行的日期是唯一的,因此可以根据日期来生成首行正则。

  4. 在“提取正则表达式”下方输入要提取日志的正则表达式,单击“验证”,在提取结果下方查看结果。

    或者单击“正则表达式自动生成”,在新打开的页面根据日志样例提取字段,输入key值,单击“确定”即可自动生成正则表达式,设置完成后,单击“确定”。

    提取结果显示的是“提取正则表达式”执行的结果,而不是“首行正则表达式”执行的结果,“首行正则表达式”执行的结果需要到目标日志流查看。

    如果“首行正则表达式”手动输入的正则表达式有误,则会导致无法查看上报的日志流数据。

    图14 设置正则表达式
  5. 日志过滤默认关闭,可根据需要打开日志过滤,进行添加白名单规则或黑名单规则,白名单规则或黑名单规则添加上限为20个。
    图15 日志过滤规则
    • 开启日志过滤才需要设置,添加白名单规则。

      您可以添加过滤规则筛选出有价值的日志数据,过滤规则为正则表达式,应用到指定Key的Value。所创建的过滤规则为命中规则,即匹配上正则表达式的日志才会被采集上报。

      1. 单击“添加”,填写Key值和过滤规则(正则表达式)。Key值为日志字段名称,多条过滤规则之间关系是“或”逻辑。例如采集日志源文件中包含hello的日志,可配置采集规则为.*hello.*
      2. 单击操作列的可以进行规则校验,输入字段值,单击“校验”,提示校验成功。
        图16 校验
    • 开启日志过滤才需要设置,添加黑名单规则。

      您可以添加过滤规则筛选出有价值的日志数据,过滤规则为正则表达式,应用到指定Key的Value。所创建的过滤规则为丢弃规则,即匹配上正则表达式的日志会被丢弃。

      1. 单击“添加”,填写Key值和过滤规则(正则表达式)。Key值为日志字段名称,多条过滤规则之间关系是“或”逻辑。例如不采集日志源文件中包含test的日志,可配置采集规则为.*test.*
      2. 单击操作列的可以进行规则校验,输入字段值,单击“校验”,提示校验成功。
  6. 上传原始日志。

    打开上传原始日志开关后,原始日志将作为content字段的值上传到日志服务。

  7. 上传解析失败日志。

    打开上传解析失败日志开关后,原始日志将作为_content_parse_fail_字段的值上传到日志服务。

  8. 自定义日志时间

    开启后可指定某一字段作为日志时间,或关闭此项使用日志被采集时间作为日志时间。

组合解析

适用于多格式嵌套的日志(例如:分隔符+JSON),根据语法自定义配置解析规则。

  1. 选择组合解析。
  2. 从“从已有日志中选择”或“从剪切板中粘贴”选择日志样例,在插件配置下方输入配置内容。
  3. 您可以根据日志内容参考以下插件语法自定义设置:
    • processor_regex
      表1 正则提取

      参数

      类型

      说明

      source_key

      string

      原始字段名。

      regex

      string

      正则表达式()中为提取字段

      keys

      string

      为提取的内容指定字段名。

      keep_source

      boolean

      是否保留原始字段。

      keep_source_if_parse

      boolean

      解析错误是否保留原始字段。

    • processor_split_string
      表2 分隔符解析

      参数

      类型

      说明

      source_key

      string

      原始字段名。

      split_sep

      string

      分隔符字符串。

      keys

      string

      为提取的内容指定字段名。

      keep_source

      boolean

      被解析后的日志中是否保留原始字段。

      split_type

      char/special_char/string

      分隔类型,支持char-单字符、special_char-不可见字符、string-字符串。

      keep_source_if_parse_error

      boolean

      解析错误是否保留原始字段。

    • processor_split_key_value
      表3 键值对分割

      参数

      类型

      说明

      source_key

      string

      原始字段名。

      split_sep

      string

      键值对之间的分隔符,默认值为制表符\t。

      expand_connector

      string

      单个键值对中键与值之间的分隔符,默认值为半角冒号(:)。

      keep_source

      boolean

      被解析后的日志中是否保留原始字段。

    • processor_add_fields
      表4 添加字段

      参数

      类型

      说明

      fields

      json/object

      待添加的字段名和字段值。键值对格式,支持添加多个。

    • processor_drop
      表5 丢弃字段

      参数

      类型

      说明

      drop_keys

      string

      丢弃的字段列表。

    • processor_rename
      表6 重命名字段

      参数

      类型

      说明

      source_keys

      string

      待重命名的原始字段

      destkeys

      string

      重命名后的字段

    • processor_json
      表7 json展开提取

      参数

      类型

      说明

      source_key

      string

      原始字段名。

      keep_source

      string

      被解析后的日志中是否保留原始字段。

      expand_depth

      int

      json展开的深度。默认值为0,表示不限制。1表示当前层级,以此类推。

      expand_connector

      string

      json展开时的连接符,默认值为下划线(_)。

      prefix

      string

      json展开时,对字段名附加的前缀。

      keep_source_if_parse_error

      boolean

      解析错误是否保留原始字段。

    • processor_filter_regex
      表8 过滤器

      参数

      类型

      说明

      include

      json/object

      key为日志字段,value为匹配的正则表达式。

      exclude

      json/object

      key为日志字段,value为匹配的正则表达式。

    • processor_gotime
      表9 提取时间

      参数

      类型

      说明

      source_key

      string

      原始字段名。

      source_format

      string

      原始时间的格式。

      source_location

      int

      原始时间的时区。参数值为空时,表示logtail所在主机或容器的时区。

      dest_key

      string

      解析后的目标字段。

      dest_format

      string

      解析后的时间格式。

      dest_location

      int

      解析后的时区。参数值为空时,表示本机时区。

      set_time

      boolean

      是否将解析后的时间设置为日志时间。

      keep_source

      boolean

      被解析后的日志中是否保留原始字段。

  4. 参考示例:
    [
            {
                "type": "processor_regex",
                "detail": {
                    "source_key": "content",
                    "regex": "*",
                    "keys": [
                        "key1",
                        "key2"
                    ],
                    "multi_line_regex": "*",
                    "keep_source": true,
                    "keep_source_if_parse_error": true
                }
            },
            {
                "type": "processor_split_string",
                "detail": {
                    "split_sep": ".",
                    "split_type": ".",
                    "split_keys": [
                        "key1",
                        "key2"
                    ],
                    "source_key": "context",
                    "keep_source": true,
                    "keep_source_if_parse_error": true
                }
            },
            {
                "type": "processor_add_fields",
                "detail": {
                    "fields": [
                        {
                            "key1": "value1"
                        },
                        {
                            "key2": "value2"
                        }
                    ]
                }
            },
            {
                "type": "processor_drop",
                "detail": {
                    "drop_keys": [
                        "key1",
                        "key2"
                    ]
                }
            },
            {
                "type": "processor_rename",
                "detail": {
                    "source_key": [
                        "skey1",
                        "skey2"
                    ],
                    "dest_keys": [
                        "dkey1",
                        "dkey2"
                    ]
                }
            },
            {
                "type": "processor_json",
                "detail": {
                    "source_key": "context",
                    "expand_depth": 4,
                    "expand_connector": "_",
                    "prefix": "prefix",
                    "keep_source": true,
                    "keep_source_if_parse_error": true
                }
            },
            {
                "type": "processor_gotime",
                "detail": {
                    "source_key": "skey",
                    "source_format": "ydm",
                    "source_location": 8,
                    "dest_key": "dkey",
                    "dest_format": "ydm",
                    "dest_location": 8,
                    "set_time": true,
                    "keep_source": true,
                    "keep_source_if_parse_error": true
                }
            },
            {
                "type": "processor_filter_regex",
                "detail": {
                    "include": {
                        "ikey1": "*",
                        "ikey2": "*"
                    },
                    "exclude": {
                        "ekey1": "*",
                        "ekey1": "*"
                    }
                }
            }
        ]

自定义日志时间

开启自定义日志时间开关,参考表10设置参数。

  • 若时间格式填写错误或指定字段不存在,将使用日志被采集时间作为日志时间。
  • 对结构化解析进行字段名称修改、字段删除、字段类型修改等操作,都需要重新校验时间字段。
表10 参数配置表

参数

说明

示例

时间字段key名称

已提取字段的名称。单击下拉框选择已提取的字段,该字段为string或long类型。

test

字段value

已提取的字段value,选择字段key后,将自动填充。

2023-07-19 12:12:00

时间格式

请参考常见日志时间格式

yyyy-MM-dd HH:mm:ss

操作

单击校验图标,提示“时间格式和字段value匹配成功”则表示校验成功。

-

常见日志时间格式

常见日志时间格式如下表11

默认情况下,云日志服务LTS中的日志时间戳精确到秒,因此时间格式只需配置到秒,无需配置毫秒、微秒等信息。

表11 时间格式

时间格式

说明

示例

EEE

星期的缩写。

Fri

EEEE

星期的全称。

Friday

MMM

月份的缩写。

Jan

MMMM

月份的全称。

January

dd

每月第几天,十进制,范围为01~31。

07, 31

HH

小时,24小时制。

22

hh

小时,12小时制。

11

MM

月份,十进制,范围为01~12。

08

mm

分钟,十进制,范围为00~59。

59

a

AM或PM。

AM、PM

hh:mm:ss a

12小时制的时间组合。

11:59:59 AM

HH:mm

小时和分钟组合。

23:59

ss

秒数,十进制,范围为00~59。

59

yy

年份,十进制,不带世纪,范围为00~99。

04、98

yyyy

年份,十进制。

2004、1998

d

每月第几天,十进制,范围为1~31。

7、31

DDD

一年中的天数,十进制,范围为001~366。

365

u

星期几,十进制,范围为1~7,1表示周一。

2

w

每年的第几周,星期天是一周的开始,范围为00~53。

23

W

每月的第几周,范围为0~5。

2

U

星期几,十进制,范围为0~6,0代表周日。

5

EEE MMM dd HH:mm:ss yyyy

标准的日期和时间。

Tue Nov 20 14:12:58 2020

EEE MMM dd yyyy

标准的日期,不带时间。

Tue Nov 20 2020

HH:mm:ss

标准的时间,不带日期。

11:59:59

%s

Unix时间戳。

147618725

提示

您即将访问非华为云网站,请注意账号财产安全

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容