最常问的 50 个 Splunk 面试题及答案

2025年3月17日 | 阅读13分钟

1) 什么是 Splunk?

Splunk 是一种软件技术和平台,用于搜索、可视化和监控机器生成的大数据。它使用户能够分析机器生成的数据(这些数据可以来自硬件设备、网络、服务器、物联网设备等)。这就是为什么它被称为机器生成数据的“Google”。

Splunk 接收有价值的机器数据,并对其进行处理和分析,通过提供精确的可视化、图表、警报、报告等实时洞察,将机器数据转化为强大的运营智能。它主要用于搜索、可视化、监控和报告企业数据。Splunk 可以监控不同类型的日志文件并将数据存储在 Indexers 中。


2) 为什么 Splunk 用于分析机器数据?

Splunk 用于分析机器数据的原因如下:

  • Splunk 提供业务洞察: Splunk 接收有价值的机器数据。在处理后,它会理解数据中隐藏的模式,并将其转化为实时的业务洞察,有助于做出明智的业务决策。
  • 它提供主动监控: Splunk 使用机器数据实时监控系统,以识别系统问题和漏洞。这些漏洞可能是外部或内部的泄露和攻击。
  • 它提供运营可见性: Splunk 通过利用机器数据提供运营可见性,从而对公司运营获得端到端的可见性,然后将其分解到整个基础设施。

3) 什么是 Splunk Indexer?Splunk 索引阶段有哪些?

Splunk Indexer 是一个 Splunk Enterprise 组件,用于创建和管理索引。Indexer 的主要功能是:

  • 索引传入数据
  • 搜索已索引的数据
  • 图片 (Picture)

4) Splunk 架构包含哪些组件?

Splunk 架构由以下组件构成:

  • Search Head: 用于提供搜索的 GUI。
  • Indexer: 用于索引机器数据。
  • Forwarder: 用于将日志转发到 Indexer。
  • Deployment server: 管理分布式环境中的 Splunk 组件并分发配置应用。

5) 有哪些不同类型的 Splunk 许可证?

以下是不同类型 Splunk 许可证的列表:

  • 免费许可证
  • Beta 许可证
  • 企业许可证
  • Forwarder 许可证
  • Search heads 许可证(用于分布式搜索)
  • Cluster members 许可证(用于索引复制)

6) 什么是 Splunk Forwarder?Splunk Forwarder 有哪些类型?

Splunk Forwarder 或 Splunk Universal Forwarder 是 Splunk Enterprise 的免费专用版本,仅包含转发数据所需的关键组件。它设计用于在生产服务器上运行,CPU 和内存占用最少。它用于从各种输入收集数据,并将数据转发到 Splunk Indexer。之后,数据即可用于搜索。

Splunk Forwarder 主要有两种类型:

  • Universal Forwarder (UF): 用于本地收集数据。它无法解析或索引数据。
  • Heavyweight Forwarder (HWF): 它具有高级功能,通常用作远程收集器、中间转发器以及可能的数据过滤器。它可以解析数据,因此不建议在生产系统中使用。

7) Splunk 中最重要的配置文件有哪些?

以下是 Splunk 中最重要的配置文件列表:

  • props.conf
  • indexes.conf
  • inputs.conf
  • transforms.conf
  • server.conf

8) Splunk 使用的常用端口号有哪些?

以下是 Splunk 使用的常用端口号列表:

  • Splunk Web 端口:8000
  • Splunk Management 端口:8089
  • Splunk 索引复制端口:8080
  • Splunk 网络端口:514(用于从网络端口获取数据,即 UDP 数据)
  • Splunk 索引端口:9997
  • KV store:8191

9) 您对 Splunk App 有何理解?

在 Splunk 中,Splunk App 是一个包含配置、搜索、仪表板等的容器或目录。


10) Splunk Free 版本有哪些功能不可用?

以下是 Splunk Free 版本中不可用功能的列表:

  • 身份验证和计划搜索/警报
  • 部署管理
  • 分布式搜索
  • 转发到 TCP/HTTP(到非 Splunk)

11) Splunk 中有哪些不同类型的 Splunk 仪表板?

以下是 Splunk 中三种不同类型的 Splunk 仪表板:

  • 实时仪表板
  • 动态表单仪表板
  • 计划报告仪表板

12) 如果 License Master 在 Splunk 中不可达,会发生什么?

在 Splunk 中,如果许可证主节点不可用或无法访问,许可证从节点将启动一个 24 小时的计时器,之后在该许可证从节点上将阻止搜索(尽管索引仍在继续)。之后,用户将无法在该从节点上搜索数据,直到它能够再次访问许可证主节点。


13) Splunk 支持哪些搜索模式?

Splunk 支持以下三种类型的仪表板:

  • 快速模式
  • 智能模式
  • 详细模式

14) Splunk 默认配置存储在哪里?

$splunkhome/etc/system/default


15) 通过 Splunk Forwarders 将数据馈送到 Splunk 实例有什么好处?

通过 Splunk Forwarders 将数据馈送到 Splunk 实例的最大好处是,您可以获得三个主要优势:

  • TCP 连接
  • 带宽限制
  • 加密的 SSL 连接,用于从 Forwarder 传输数据到 Indexer。

Splunk 的架构设计使得转发到 Indexer 的数据默认是负载均衡的。在这种情况下,如果由于某种原因一个 Indexer 宕机,数据可以通过另一个 Indexer 实例快速重新路由。另一个优点是 Splunk Forwarders 在转发事件之前会在本地缓存这些事件,从而创建数据的临时备份。


16) 什么是 Splunk 中的许可证违规?

在 Splunk 中,许可证违规是在超出数据限制时发出的警告错误。此警告错误会持续 14 天。如果您拥有商业许可证,您可能会在一个月滚动窗口内看到 5 次警告,之后您的 Indexer 搜索结果和报告将停止触发。如果您拥有免费的 Splunk 版本,您将看到 3 次许可证违规警告。


17) Splunk DB Connect 的用途是什么?

Splunk DB Connect 是一个通用的 SQL 数据库插件,专为 Splunk 设计。它方便用户将数据库信息与 Splunk 查询集成,并无缝获取报告。


18) 为什么 License Master 在 Splunk 中很重要?

License Master 在 Splunk 中很重要,因为它确保正确数量的数据被索引。它还确保环境保持在购买的量范围内。Splunk 许可证取决于在 24 小时窗口内进入平台的数据量。


19) Splunk 中的“Summary Index”是什么?它的优点是什么?

在 Splunk 中,Summary Index 指定了一个默认的 Splunk 索引,用于存储从计划搜索中检索到的数据。如果用户没有指定或指示其他索引,Splunk Enterprise 默认使用 Summary Index。

Summary Index 的最大优点是,它方便用户在数据过期后仍然保留分析和报告。


20) Splunk Indexer 的主要功能是什么?

顾名思义,Splunk Indexer 用于创建和管理索引。

Splunk Indexer 的两个主要功能是:

  • 它用于将原始数据索引到索引中。
  • 它用于搜索和管理已索引的数据。

21) Splunk 许可证指定什么?

Splunk 许可证指定我们每天(24 小内)可以索引多少数据。


22) Splunk 许可证如何确定一天?

Splunk 许可证确定一天是从许可证主节点的时钟的午夜到午夜。


23) Splunk 与 Spark 有何区别?

以下是 Splunk 与 Spark 之间主要区别的列表:

标准SplunkSpark
部署领域Splunk 用于收集大量机器生成的数据。Spark 用于迭代式应用程序和内存处理。
工具性质它是专有软件。它不是开源的。它是开源软件。
工作模式它在流模式下工作。它在流模式和批处理模式下都工作。

24) 使用 Splunk 工具的缺点是什么?

以下是使用 Splunk 工具的一些缺点列表:

  • Splunk 不是开源软件。如果您想要完整的 Splunk IT 解决方案,则必须支付特定费用,因此对于大量数据来说可能很昂贵。
  • Splunk 仪表板功能性尚可,但不如某些其他监控工具有效。
  • Splunk 具有多层架构,学习曲线陡峭。因此,您需要投入大量时间来学习此工具。您必须接受 Splunk 培训才能有效地使用它。
  • 在 Splunk 中,搜索很难理解,尤其是正则表达式和搜索语法。

25) 通过 forwarders 将数据获取到 Splunk 实例有什么优势?

通过 forwarders 将数据获取到 Splunk 的一些关键优势是:

  • TCP 连接
  • 带宽限制
  • 用于从 forwarder 到 indexer 传输重要数据的安全 SSL 连接。

26) Splunk 工具中使用了一些重要的 Splunk 搜索命令?

以下是 Splunk 工具中使用的一些重要 Splunk 搜索命令列表:

  • 摘要
  • Addtotals
  • Accum
  • Anomalies
  • Erex
  • Filldown
  • 重命名
  • Typer 等。

27) Splunk 中 Transaction 和 Stats 命令的用途是什么?

在 Splunk 中,transaction 和 stats 命令用于不同的目的。transaction 命令主要在两种特定情况下使用:

  • 当唯一 ID(来自一个或多个字段)不足以区分两个事务时,使用 transaction 命令。在这种情况下,我们必须重用标识符。当我们必须重用标识符时,例如在 DHCP 日志中,特定的消息用于识别事务的开始或结束。例如,Web 会话由 cookie/客户端 IP 标识。在这种情况下,时间或停顿也用于将数据分段为事务。
  • 当我们要查看合并后的事件的原始文本,而不是对事件的组成字段进行分析时,也会使用它。

在其他情况下,首选使用 stats 命令。stats 命令的性能更高,因此最适合分布式搜索环境。我们也可以在有唯一 ID 的情况下使用 stats 命令。


28) 使用了一些重要的配置文件?

一些重要且最常用的 Splunk 配置文件是:

  • Inputs 文件
  • Transforms 文件
  • Server 文件
  • Indexes 文件
  • Props 文件

29) 您对 Buckets 有何理解?解释 Splunk 的 Bucket 生命周期。

在 Splunk 中,buckets 是用于存储已索引数据的目录。它是一个记录特定时间段事件的物理目录。bucket 会随着时间经历以下转换阶段。

  • Hot Bucket: hot bucket 存储新索引的数据。它对写入和新添加的内容是开放的。一个索引可以有一个或多个 hot buckets。
  • Warm Bucket: warm bucket 用于存储从 hot bucket 滚动的(rolled out)数据。
  • Cold Bucket: cold bucket 用于存储从 warm bucket 滚动的(rolled out)数据。
  • Frozen Bucket: frozen bucket 存储从 cold bucket 滚动的(rolled out)数据。默认情况下,Splunk Indexer 会删除 frozen 数据。但是,Splunk 提供了一个归档数据的选项。您必须记住的一点是,frozen 数据是不可搜索的。

30) 索引时间和搜索时间有什么区别?

在 Splunk 中,索引时间是数据被消耗并写入磁盘的时期。另一方面,搜索时间发生在运行搜索时,事件由搜索组成。


31) stats 和 eventstats 命令有什么区别?

Stats Command: stats 命令生成搜索结果中所有现有字段的摘要统计信息。生成摘要统计信息后,它将其保存为新字段中的值。

Eventstats: eventstats 与 stats 命令类似,但它会在每个事件中内联聚合结果并添加,如果聚合与该事件相关。eventstats 命令像 stats 命令一样计算请求的统计信息,但将其聚合到原始原始数据中。


32) 如何重置 Splunk 管理员密码?

我们可以通过执行以下步骤重置管理员密码:

  • 首先,登录到安装了 Splunk 工具的服务器。
  • 现在,重命名密码文件,然后再次启动 Splunk 工具。
  • 在此步骤中,您可以使用管理员或 admin 用户名登录到服务器,密码为“change me”。

33) Splunk 工具的主要竞争对手是谁?

Splunk 工具的主要竞争对手是 Logstash、Loggly、LogLogic、Sumo Logic 等。


34) 如何排除 Splunk 性能问题?

您应执行以下步骤来排除 Splunk 性能问题:

  • 首先,检查 splunkd.log 以查找任何错误。
  • 然后,检查服务器性能问题(CPU/内存使用率、磁盘 I/O 等)。
  • 之后,检查后台运行的已保存搜索的数量及其系统资源消耗。
  • 安装 SOS (Splunk on Splunk) 应用,并检查仪表板是否显示任何警告或错误。
  • 然后,安装一个名为 Firebug 的 Firefox 扩展程序并在您的系统上启用它。
  • 现在,使用 Firefox 登录 Splunk,打开 Firebug 的面板,然后转到“Net”面板启用它。Net 面板显示 HTTP 请求和响应以及每个请求/响应花费的时间。在这里,您将看到哪些请求正在减慢 Splunk 的速度并影响整体性能。
  • 通过遵循以上步骤,您可以排除 Splunk 性能问题并提高性能。

35) 使用哪个命令重启 Splunk Web 服务器?

您应使用以下命令重启 Splunk Web 服务器:


36) 使用哪个命令重启 Splunk Daemon?

使用以下命令重启 Splunk Daemon:


37) 什么是 Splunk 中的 Sourcetype?

在 Splunk 中,Sourcetype 指定一个默认字段,用于识别传入事件的数据结构。我们必须在 forwarder 级别设置 Sourcetype,以便 indexer 提取器轻松识别不同的数据格式。它还决定了 Splunk Enterprise 在索引过程中如何格式化数据。为此,我们必须正确地为数据分配 Sourcetype。如果您为索引数据提供准确的时间戳和事件边界,就可以使数据搜索更加容易。


38) Splunk Alert 的用途是什么?设置 Splunk Alerts 时有哪些选项?

Splunk Alerts 用于通知用户其系统中的任何错误状况。例如,您可以设置 Splunk Alerts,以便在 24 小内有超过三次登录失败时收到电子邮件通知。

以下是在设置 Splunk Alerts 时提供的不同类型的选项:

  • 它方便我们创建一个 webhook,可用于编写 HipChat 或 GitHub。
  • 我们可以向一组机器发送电子邮件,其中包含我们的主题、优先级和邮件正文。
  • 它还方便我们将结果以 CSV 或 pdf 格式或内联到邮件正文中。这有助于收件人理解警报的位置和情况。
  • 它还可以用于创建工单,并根据特定条件(如机器名称或 IP 地址)进行警报限流。

39) 您对 Splunk 中的 Btool 有何理解?

在 Splunk 中,Btool 是一个用于排除配置文件问题的命令行工具。它也用于检查用户现有的 Splunk Enterprise 安装在当前环境中使用了哪些值。


40) 知识对象在 Splunk 中的一些用例是什么?

以下是 Splunk 中知识对象的一些用例列表:

  • 物理安全: 在 Splunk 中,我们可以使用知识对象来处理物理漏洞。如果您的组织从事物理安全工作,您可以使用知识对象来利用包含有关地震、火山、洪水等信息的数据,以获取有价值的信息。
  • 网络安全: 知识对象提供查找(lookups),可用于通过阻止特定 IP 进入您的网络来增强您系统的安全性。
  • 应用程序监控: 知识对象方便我们实时监控我们的应用程序。我们还可以配置警报,以便在应用程序崩溃或发生任何停机时收到通知。
  • 员工管理: 它还可以监控正在办理离职手续的人员的活动。通过这样做,我们可以创建这些人员的列表,并创建一个规则来阻止他们滥用组织的任何敏感数据。
  • 简化数据搜索: 知识对象方便我们标记信息、创建事件类型、在开头创建搜索约束,并缩短它们,以便它们易于记忆、关联和理解,而不是编写冗长的搜索查询。

这些是我们使用知识对象可以执行的一些操作。


41) 在 Unix/Linux 上使用什么命令检查正在运行的 Splunk 进程?

我们可以使用以下命令在 Unix/Linux 上检查正在运行的 Splunk Enterprise 进程:


42) Splunk App 和 Add-on 有什么区别?

Splunk Apps 指定了报告、仪表板、警报、字段提取和查找的完整集合。另一方面,Splunk Add-ons 只包含内置配置。它没有仪表板或报告。


43) 您对 Fishbucket 有何理解?它的索引是什么?

Fishbucket 是一个位于默认位置的索引目录,即:

Fishbucket 包含已索引文件的搜索指针和 CRC。如果您想访问 Fishbucket,应使用 GUI 进行搜索。


44) 停止和启动 Splunk 服务的命令是什么?

以下是停止和启动 Splunk 服务的命令:

使用以下命令启动 Splunk 服务:

使用以下命令停止 Splunk 服务:


45) 使用哪个命令清除 Splunk 搜索历史?

以下命令用于从 Splunk 服务器清除 Splunk 搜索历史:


46) Splunk 中的配置文件优先级是什么?

以下是 Splunk 中配置文件的优先级:

  • System Local Directory(最高优先级)
  • App Local Directories
  • App Default Directories
  • System Default Directory(最低优先级)

47) 您对 Splunk 中的 deployer 有何理解?

Deployer 是一个 Splunk Enterprise 实例,用于将应用程序部署到集群头(cluster head)。它提供了配置应用程序和用户信息的设施。


48) stat 命令的用途是什么?

stat 命令用于以表格格式组织报告数据。


49) Splunk 如何避免重复索引日志?

Splunk Indexer 在目录中跟踪所有已索引的事件。例如,Fishbuckets 目录包含我们当前索引的所有文件的搜索指针和 CRC。

因此,如果它发现任何已读取的搜索指针或 CRC,它将指出。


50) input lookup 命令的用途是什么?

input lookup 命令在搜索结果中返回查找表。