连接到 Splunk 数据源 - Amazon Managed Grafana

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

连接到 Splunk 数据源

注意

此数据源仅适用于 Grafana Enterprise。有关更多信息,请参阅 管理对企业插件的访问权限

此外,在支持版本 9 或更高版本的工作空间中,此数据源可能需要您安装相应的插件。有关更多信息,请参阅 使用插件扩展您的工作空间

配置

数据源配置

配置数据源时,请确保 URL 字段使用https并指向您配置的 Splunk 端口。Splunk API 的默认点是 8089,而不是 8000(这是默认的 Web 用户界面端口)。启用基本身份验证并指定 Splunk 用户名和密码。

浏览器(直接)访问模式和 CORS

Amazon Managed Grafana 不支持浏览器直接访问 Splunk 数据源。

高级选项

直播模式

如果您想在搜索结果可用时获得搜索结果,请启用直播模式。这是实验性功能,在你真正需要它之前不要启用它。

民意调查结果

运行搜索,然后定期检查结果。在幕后,此选项在exec_mode设置为search/jobs的情况下运行 API 调用normal。在本例中,API 请求会返回任务 SID,然后 Grafana 会不时检查任务状态以获得任务结果。对于慢速查询,此选项可能很有用。默认情况下,此选项处于禁用状态,Grafana exec_mode 设置oneshot为允许在同一 API 调用中返回搜索结果。在 Splunk 文档中查看有关 search/jobs API 端点的更多信息。

搜索轮询间隔

此选项允许调整 Amazon Managed Grafana 对搜索结果进行轮询的频率。是时候从 [最小、最大) 间隔中随机选择下一次民意调查了。如果你进行大量的搜索,那么增加这些值是有意义的。提示:如果搜索作业执行需要很长时间,则增加 M in;如果您运行大量并行搜索(Grafana 仪表板上有很多 splunk 指标),则增加 Max。默认间隔为 [500, 3000) 毫秒。

自动取消

如果指定,则任务将在闲置这么多秒钟后自动取消(0 表示从不自动取消)。默认值为 30。

状态存储桶

要生成的最多状态桶。0 表示不生成时间轴信息。默认值为 300。

字段搜索模式

使用可视化查询编辑器时,数据源会尝试获取所选源类型的可用字段列表。

  • quick-使用预览中第一个可用的结果

  • full-等待任务完成并获得完整结果。

默认最早时间

某些搜索无法使用仪表板的时间范围(例如模板变量查询)。此选项有助于始终阻止搜索,这可能会减慢 Splunk 的速度。语法是一个整数和一个时间单位[+|-]<time_integer><time_unit>。例如 -1w时间单位可以是s, m, h, d, w, mon, q, y

变量搜索模式

模板变量查询的搜索模式。可能的值:

  • fast-关闭现场发现以进行事件搜索。没有用于统计搜索的事件或字段数据。

  • smart-启用现场发现功能以进行事件搜索。没有用于统计搜索的事件或字段数据。

  • verbose-所有事件和字段数据。

使用量

查询编辑器

编辑器模式

查询编辑器支持两种模式:原始模式和可视模式。要在这些模式之间切换,请选择编辑器右侧的汉堡图标,然后选择切换编辑器模式

原始模式

对时间序列数据使用timechart命令,如以下代码示例所示。

index=os sourcetype=cpu | timechart span=1m avg(pctSystem) as system, avg(pctUser) as user, avg(pctIowait) as iowait index=os sourcetype=ps | timechart span=1m limit=5 useother=false avg(cpu_load_percent) by process_name

查询支持模板变量,如以下示例所示。

sourcetype=cpu | timechart span=1m avg($cpu)

请记住,Grafana 是面向时间序列的应用程序,您的搜索应返回时间序列数据(时间戳和值)或单个值。你可以阅读有关 timechart 命令的信息,也可以在官方 Spl unk 搜索参考中找到更多搜索示例

Splunk 指标和 mstats

Splunk 7.x 提供了用于分析mstats指标的命令。要使图表正常运行mstats,应将其与timeseries命令结合使用,并且必须设置prestats=t选项。

Deprecated syntax: | mstats prestats=t avg(_value) AS Value WHERE index="collectd" metric_name="disk.disk_ops.read" OR metric_name="disk.disk_ops.write" by metric_name span=1m | timechart avg(_value) span=1m by metric_name Actual: | mstats prestats=t avg(disk.disk_ops.read) avg(disk.disk_ops.write) WHERE index="collectd" by metric_name span=1m | timechart avg(disk.disk_ops.read) avg(disk.disk_ops.write) span=1m

Splunk 搜索参考中阅读有关mstats命令的更多信息。

格式化为

有两种支持的结果格式模式—— 时间序列(默认)和表格。表格模式适合在要显示聚合数据时与 “表格” 面板一起使用。这适用于原始事件(返回所有选定的字段)和stats搜索函数,后者返回类似表格的数据。示例:

index="os" sourcetype="vmstat" | fields host, memUsedMB index="os" sourcetype="ps" | stats avg(PercentProcessorTime) as "CPU time", latest(process_name) as "Process", avg(UsedBytes) as "Memory" by PID

结果类似于 Splunk 用户界面中的 “统计” 选项卡。

Splunk 搜索参考中阅读有关stats函数用法的更多信息。

视觉模式

此模式提供 step-by-step搜索创建。请注意,此模式会创建 timechart splunk 搜索。只需选择索引、来源类型和指标,然后根据需要设置按字段分割即可。

指标

您可以通过选择指标行右侧的加号按钮来添加多个指标进行搜索。指标编辑器包含常用聚合列表,但您可以在此处指定任何其他函数。只需选择 agg segment(avg默认情况下),然后键入所需的内容即可。从下拉列表中选择感兴趣的字段(或输入),然后根据需要设置别名。

分割依据和在哪里

如果您设置了分割依据字段并使用时间序列模式,则编辑器将可用。选择加号并选择运算符、聚合和值,例如前十名中的平均值。注意,此 W her e 子句是 Split by 的一部分。在 timechart 文档中查看更多信息。

Options

要更改默认的时间表选项,请选择最后一行的选项

timechart 文档中查看有关这些选项的更多信息。

选择左侧的目标字母可折叠编辑器并显示渲染的 splunk 搜索。

注释

如果您想在图表上显示 Splunk 警报或事件,请使用注释。注释可以是预定义的 Splunk 警报,也可以是常规的 splunk 搜索。

Splunk 警报

指定警报名称,或将该字段留空以获取所有已触发的警报。支持模板变量。

使用 splunk 搜索来获取所需的事件,如以下示例所示。

index=os sourcetype=iostat | where total_ops > 400 index=os sourcetype=iostat | where total_ops > $io_threshold

支持模板变量。

如果要使用字段值作为注释文本,则可以使用事件字段作为文本选项。以下示例显示了来自日志的错误消息文本。

Event field as text: _raw Regex: WirelessRadioManagerd\[\d*\]: (.*)

正则表达式允许提取消息的一部分。

模板变量

模板变量功能支持返回值列表的 Splunk 查询,例如使用stats命令。

index=os sourcetype="iostat" | stats values(Device)

此查询返回iostat源中的Device字段值列表。然后,您可以使用这些设备名称进行时间序列查询或注释。

Grafana 中可以使用两种可能的变量查询类型。第一个是简单的查询(如前所述),它返回一个值列表。第二种类型是可以创建键/值变量的查询。该查询应返回名为_text和的两列_value_text列值应该是唯一的(如果它不是唯一的,则使用第一个值)。下拉列表中的选项将具有文本和值,因此您可以将友好名称作为文本,将ID作为值。

例如,此搜索会返回包含列Name(Docker 容器名称)和Id(容器 ID)的表。

source=docker_inspect | stats count latest(Name) as Name by Id | table Name, Id

要使用容器名称作为变量的可见值并使用 id 作为其实际值,应修改查询,如以下示例所示。

source=docker_inspect | stats count latest(Name) as Name by Id | table Name, Id | rename Name as "_text", Id as "_value"

多值变量

可以在查询中使用多值变量。插值搜索将取决于变量的使用上下文。插件支持许多这样的上下文。假设有一个$container包含选定值的变量foo并且bar

  • search命令的基本过滤器

    source=docker_stats $container => source=docker_stats (foo OR bar)
  • 字段值筛选器

    source=docker_stats container_name=$container => source=docker_stats (container_name=foo OR container_name=bar)
  • 使用IN运算符和函数进行字段值过滤器 in()

    source=docker_stats container_name IN ($container) => source=docker_stats container_name IN (foo, bar) source=docker_stats | where container_name in($container) => source=docker_stats | where container_name in(foo, bar)

多值变量和引号

如果变量用引号(双引号或单引号)包裹,则其值也将被引用,如下例所示。

source=docker_stats container_name="$container" => source=docker_stats (container_name="foo" OR container_name="bar") source=docker_stats container_name='$container' => source=docker_stats (container_name='foo' OR container_name='bar')