Splunk 删除索引数据

17 Mar 2025 | 6 分钟阅读

在本节中,我们将学习如何删除索引和索引数据,从搜索中删除事件,谁可以删除,我们如何删除,删除操作和索引器的集群等。

删除索引和索引数据

我们可以从索引器或整个索引中删除索引数据。 它们是关键的可能性

  • 从后面的搜索中删除事件。
  • 从单个索引或更多索引中删除所有数据。
  • 删除或停用整个索引。
  • 根据养老金政策删除较旧的数据。

注意:删除数据是不可逆转的。 如果我们希望在使用本节中描述的任何技术删除数据后取回数据,则必须重新索引相关数据源。

从后面的搜索中删除事件

delete 命令由 Splunk 搜索语言提供,用于从后续搜索中删除事件数据。

Delete 命令仅适用于已索引的事件。 我们不能用索引指标来做到这一点。

我们无法在实时搜索中执行 delete 命令。 如果我们尝试在实时扫描期间使用 delete,Splunk Enterprise 上将出现错误。

注意:Splunk 中的 delete 命令仅从后面的搜索中删除事件。 数据保留在索引本身中。

谁可以删除?

只有具有 capability "delete by keyword" 的用户才能执行 delete 命令。 Splunk Enterprise 附带一个特殊功能 "can delete",它具有该(且没有其他)能力。 实际上,admin 功能不具备此功能。 当我们打算删除索引数据时,建议我们创建一个要登录的特殊用户。

如何删除

首先,运行一个搜索,返回我们想要删除的事件。 确保搜索仅返回我们要删除的某些事件。 之后,将搜索结果导向删除按钮。

例如,如果我们想删除从源 /fflanda / incoming / cheese.log 索引的事件,以便它们不再出现在搜索中,请执行

1. 禁用或删除源以防止其被索引。

2. 在我们的索引中检查来自该源的事件

3. 查看结果以确认我们要删除的数据是这些数据。

4. 一旦我们确认这些是我们想要删除的数据,就将查询导向 delete

注意:在 Windows 下运行 Splunk 时,将正斜杠 (/) 替换为反斜杠 (\)。

将搜索导向 delete 命令标记由该搜索返回的所有事件,以便后续搜索不会检索到它。 搜索时,任何用户(即使具有管理员权限)都无法查看该数据。

注意:删除管道不会回收磁盘空间。 实际上,数据不会从索引中删除;搜索只是不可见。

delete 命令不会更改事件元数据,并且对元数据的任何搜索仍将包含事件,但它们不可搜索。 关键 所有已索引数据 仪表板仍将显示已删除的源、主机或源类型的事件计数。

删除操作和索引器的集群

删除操作的效果会在集群中的所有存储桶副本中迅速传播,通常在几秒钟或几分钟内。 这取决于集群负载和受删除操作影响的数据量和存储桶数量。 在此传播间隔期间,搜索可能会返回已经删除的结果。

此外,如果在删除过程发生时,拥有存储桶主副本的对等体在结果传播之前关闭,则会丢失一些删除操作。 在这种情况下,在从已关闭的对等体重新分配主副本后,我们将重新运行该过程。

从一个索引中删除任何或更多数据

要永久删除磁盘上的索引数据,请使用 CLI Clean 按钮。 该命令完全删除一个或多个索引中的数据,具体取决于我们是否有 < 索引名称 > 的依据。 我们通常在重新索引所有详细信息之前运行 clean。

注意:在集群索引上,clean 命令无效。

如何使用 clean 命令

以下是使用 Clean 命令的关键方法

  • 要访问 Clean 帮助页面,请键入
  • 要永久删除所有索引中的数据,请键入命令
  • 并且要永久删除 单个索引 中的数据,请键入

其中 <index_name> 是指定给目标索引的名称。

重要提示: 在运行 Clean 命令之前,我们必须停止索引器。

注意:在 pre-5.0 版本的 Splunk Enterprise 中运行 clean 命令会导致索引器将下一个存储桶 ID 值重置为索引的 0。 从版本 5.0 开始,不再是这种情况。 因此,在运行 Clean 命令后,如果新存储桶 ID 为 3,则下一个存储桶 ID 将为 4,而不是 0。

示例

以下示例从所有索引中删除数据

它从内部索引中删除数据,并导致 Splunk 跳过确认提示

在 Splunk 平台中完全删除索引

我们可以使用 Splunk Web 或 CLI 从非集群索引器中完全删除索引(而不仅仅是其中存储的数据)。 我们也可以直接编辑 indexes.conf

在删除索引之前,通过索引器上的所有 inputs.conf 文件以及将数据发送到索引器的任何转发器进行检查,并确保没有任何节段将数据引导到我们要删除的索引。 例如,如果我们想删除一个 nogood 索引,请确保以下属性/值对未出现在任何 input 节段中:index=nogood。 删除索引后,索引器将丢弃仍然发送到该索引的任何数据。

导航到“设置”>“索引”以在 Splunk Internet 中删除索引,然后单击要禁用的索引右侧的“删除”。 干预消除了索引的数据目录,并从 indexes.conf 中消除了索引的节段

要通过 CLI 删除索引,请执行命令 Splunk delete index

该命令删除索引的数据目录,并从 indexes.conf 中删除索引的节段。

当索引器运行时,我们也可以运行 splunk delete index。 我们不需要在指令完成后重新启动索引器。

索引删除过程通常很快,但持续时间取决于几个因素

  • 将要删除的数据量。
  • 如果我们在同一磁盘上对其他索引进行大量写入操作。
  • 我们正在删除索引中大量的小 .tsidx 文件。

我们也可以通过编辑 indexes.conf,并删除索引的节段来直接删除索引。 重新启动索引器,然后删除索引的目录。

要从索引器集群中删除索引,我们需要编辑 indexes.conf,并提取索引的节段。 我们不能使用 Splunk 页面或 CLI。 我们首先在主节点上编辑文件,就像在索引器集群上进行所有此类更改一样,然后将更改应用于对等节点。

配置索引器集群中的对等索引,在我们将更改应用于 indexes.conf 并且对等节点已重新启动后,从每个对等节点中删除索引目录。

在不删除索引的情况下禁用它

一旦索引被停用,索引器将不再接受定向到它的数据。 但是,禁用索引不会删除索引数据,并且此过程是可逆的。

在 Splunk Web 中,我们还可以停用索引。 为此,导航到 “设置”>“索引”,然后单击 “禁用”,我们可以看到我们想要停用的索引位于窗口的右侧。 要重新启用索引,请按右侧的 索引 按钮。

我们也可以使用 splunk disable index for CLI 命令停用索引

splunk enable index 命令重新启用该索引。

根据退休政策删除较旧的数据。

当索引中的存储桶达到指定年龄或当索引扩展到指定大小时,该存储桶将滚动到“frozen”状态,此时索引器会将其从索引中删除。 根据我们配置的退休政策,索引器将在删除存储桶之前将其转移到存档中。


下一个主题Splunk 监控文件