本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
连接到 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
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 警报
指定警报名称,或将该字段留空以获取所有已触发的警报。支持模板变量。
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')