You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从磁盘利用率告警事件日志中解析FQDN与Aspect Name字段

事件日志字段提取解决方案

核心逻辑

观察待解析行的固定结构:每行均为「FQDN + Aspect Name + 磁盘使用率数值 + %」格式,其中FQDN无空白字符,末尾使用率统一为「数字(可含小数点)+ 空格 + %」,可通过正则分组一次性捕获两类目标字段,同时自动跳过日志中的表头、描述类非数据行。

可用正则表达式

^(\S+)\s+(.*?)\s+\d+\.?\d*\s+%$
  • 第1个捕获组:匹配连续非空白字符,对应完整FQDN(比你之前使用的^[^.]+更精准,可直接拿到完整域名而非仅主机名)
  • 第2个捕获组:非贪婪匹配FQDN后、使用率前的所有内容,对应Aspect Name,支持带空格、特殊字符的卷名场景
  • 末尾固定匹配使用率格式,自动过滤非数据行,避免误匹配

不同环境使用示例

Python 实现

import re

# 可替换为读取本地日志文件的逻辑
log_lines = [
    "Test1.test.local System Reserved 73.2 %",
    "test-stage.test.local \\\\?\\Volume{c2e5b983-0000-0000-0000-006225000000}\\ 83.3 %",
    "test2.test.local E:\\ - Data 62.5 %"
]
pattern = re.compile(r'^(\S+)\s+(.*?)\s+\d+\.?\d*\s+%$')

for line in log_lines:
    match = pattern.match(line)
    if match:
        fqdn = match.group(1)
        aspect_name = match.group(2)
        print(f"FQDN = {fqdn}")
        print(f"Aspect Name = {aspect_name}")

PowerShell 实现

# 替换为你的日志文件实际路径
$logContent = Get-Content "C:\event_log.txt"
$pattern = '^(\S+)\s+(.*?)\s+\d+\.?\d*\s+%$'

foreach ($line in $logContent) {
    if ($line -match $pattern) {
        Write-Host "FQDN = $($matches[1])"
        Write-Host "Aspect Name = $($matches[2])"
    }
}

内容的提问来源于stack exchange,提问作者Brandon Wilson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 10:57:07