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

如何在Splunk XML仪表板中使用<eval>提取Token

Splunk Token提取与XML查询应用实现方案

一、编写正确的Token提取Eval语句

首先修正Eval语法,Splunk中引用token必须前后加$,提取逻辑要符合SPL规则,举两个常见示例:

  • 字符串分割提取:如果$name$格式是前缀_目标值_后缀,用分割取中间值
<eval token="new_name">mvindex(split($name$, "_"), 1)</eval>
  • 正则匹配提取:如果$name$是类似user:john的格式,用正则捕获目标值
<eval token="new_name">rex mode=sed field=$name$ "s/^user:(.*)$/\1/"</eval>

二、将Eval语句放置到合适位置

根据使用场景,选择以下两种放置方式:

1. 全局初始化提取(仪表盘加载时生成Token)

把Eval放在仪表盘的<init>节点下,仪表盘启动时自动生成new_name,适用于$name$是全局变量或预设值的场景:

<dashboard>
  <init>
    <!-- 从$name$提取值生成new_name Token -->
    <eval token="new_name">mvindex(split($name$, "_"), 1)</eval>
  </init>
  
  <row>
    <panel>
      <title>Name</title>
      <table>
        <title>Name</title>
        <search>
          <query>
             <!-- 在查询中引用new_name Token -->
             index=your_target_index username=$new_name$ | stats count by username, action
          </query>
        </search>
      </table>
    </panel>
  </row>
</dashboard>

2. 基于搜索结果提取(搜索完成后生成Token)

如果$name$来自某个前置搜索的结果,要把Eval放在该搜索的<done>节点中,确保搜索完成后再生成Token:

<dashboard>
  <row>
    <!-- 前置搜索生成$name$ Token -->
    <panel>
      <search>
        <query>index=user_logs | head 1 | eval name="admin_john_smith" | fields name</query>
        <done>
          <!-- 从搜索结果的name字段提取生成new_name -->
          <eval token="new_name">mvindex(split($result.name$, "_"), 1)</eval>
        </done>
      </search>
    </panel>

    <!-- 使用new_name Token的查询面板 -->
    <panel>
      <title>Name</title>
      <table>
        <title>Name</title>
        <search>
          <query>
             index=access_logs user=$new_name$ | stats count by request_path
          </query>
        </search>
      </table>
    </panel>
  </row>
</dashboard>

三、验证与注意事项

  • 确认查询中Token引用格式为$new_name$,少写或多写$都会导致失效
  • 如果$name$是用户输入的表单值,建议用$name|s$做安全转义,避免查询注入
  • 可以通过仪表盘预览功能,查看Token调试面板确认new_name是否正确生成

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 05:05:38