logo资料库

splunk操作手册中文版.pdf

第1页 / 共45页
第2页 / 共45页
第3页 / 共45页
第4页 / 共45页
第5页 / 共45页
第6页 / 共45页
第7页 / 共45页
第8页 / 共45页
资料共45页,剩余部分请下载后查看
Splunk 5.0 搜索手册 搜索手册 生成时间: 2012 年 10 月 31 日,下午 2:37 版权所有 © 2012 Splunk, Inc. 保留所有权利。 Copyright (c) 2013 Splunk, Inc. All Rights Reserved
Table of Contents 简介简介 欢迎使用搜索手册 搜索概述 搜索概述 关于搜索 关于搜索管道 关于搜索语言 关于 search 语言语法 关于搜索助理 使用搜索任务查看器查看搜索属性 设置搜索模式以调整搜索体验 对正在运行的搜索执行操作 编写更好的搜索 检索事件 检索事件 关于检索事件 使用搜索命令 使用字段检索事件 从索引和分布式搜索节点中检索事件 分类和分组类似事件 使用时间线调查事件模式 指定时间范围 指定时间范围 关于搜索中的时间范围 选择要应用于搜索的时间范围 在搜索中指定时间调节器 在搜索中指定实时时间范围窗口 报告搜索结果 报告搜索结果 关于报表命令 创建基于时间的图表 创建(不一定)基于时间的图表 直观显示高低字段值 创建用于显示摘要统计信息的报表 在搜索结果中查找关联、统计相关性和差异 构建多数据系列图表 比较多天中每小时的总和 实时搜索和报表 实时搜索和报表 关于实时搜索和报表 Splunk 网站中的实时搜索和报表 CLI 中的实时搜索和报表 实时搜索和报表的预期性能和已知限制 如何限制实时搜索的使用情况 计算统计信息 计算统计信息 关于计算统计信息 4 4 4 4 5 5 6 7 7 10 11 12 13 13 14 15 15 16 18 19 19 19 20 22 23 23 24 24 24 25 25 25 26 27 27 27 28 28 29 30 30
使用 stats 命令和函数 将 stats 与 eval 表达式和函数配合使用 将迷你图添加到搜索结果 评估和操作字段 评估和操作字段 关于评估和操作字段 使用 eval 命令和函数 使用查找从查找表中添加字段 使用搜索命令提取字段 操作和评估多值字段 关联事件 关联事件 关于事件相关性 使用时间确定事件之间的关系 关于子搜索 使用子搜索关联事件 更改子搜索结果的格式 关于交易 确定事件并将其分组为交易 预测将来事件 预测将来事件 关于 Splunk 的预测分析 更多搜索方法 更多搜索方法 创建和使用搜索宏 编写自定义搜索命令 编写自定义搜索命令 关于本章 搜索命令样式指南 编写搜索命令 将自定义命令添加到 Splunk 控制对自定义命令的访问 自定义搜索命令示例 外部化搜索错误字符串 外部化搜索错误 30 30 30 32 32 32 33 33 34 35 35 35 35 36 36 37 38 39 39 39 39 40 40 41 42 43 43 44 44 44
简介简介 欢迎使用搜索手册 欢迎使用搜索手册 现在,您已得到了系统中的所有数据...那么您想用它来做什么?首先使用 Splunk 的强大搜索功能来查找任何内容, 而不只是少数预先确定的字段。结合使用时间和术语搜索。在 IT 基础结构的每个层之间查找错误,并追踪在系统发 生故障之前的极短时间内的配置更改。 本手册介绍搜索语言以及如何在 Splunk 中编写搜索。 在您开始阅读相关搜索内容之前,请确保以下几点: 您有权访问本地计算机或远程服务器中的数据。阅读《数据导入手册》中有关如何将数据导入 Splunk 的更多 信息。 了解 Splunk 中索引的运作方式。阅读《管理索引器手册》中有关 Splunk 如何处理数据的详细信息。 了解字段和知识对象,如来源类型和事件类型。阅读《知识管理器手册》中有关 Splunk 知识对象的更多信 息。 熟悉搜索应用程序以及搜索和报表仪表板。如果您初次使用 Splunk,“Splunk 教程”是最佳的起点,它会引导您 完成添加数据、搜索数据以及构建简单的报表和仪表板。 如果您只是对可在 Splunk 搜索中使用的搜索命令和参数的列表感兴趣,请参考《搜索参考手册》。 制作制作 PDF 将搜索手册下载为 PDF。即会为您动态生成手 如果您需要本手册的 PDF 版本,请单击本页左侧目录下方的红色链接将搜索手册下载为 册的 PDF 版本,您可以将其保存或打印出来以便之后阅读。 搜索概述 搜索概述 关于搜索 关于搜索 本章介绍搜索、Splunk 搜索的结构、搜索语言及其语法、一些可帮助构建搜索并故障排除搜索问题的工具以及对于 更好地编写搜索的一些提示。 搜索类型 搜索类型 在深入研究搜索的语言和语法之前,您应该先问自己要试图实现什么目标。通常,在将数据导入到 Splunk 之后,您 会希望: 进行调查,以了解有关刚刚创建索引的数据的详细信息或找出问题的根源。 将搜索结果汇总为报表(表格形式或其他可视化形式均可)。 有鉴于此,您可能会听到我们提到以下两种搜索类型:原始事件搜索和报表生成搜索。 原始事件搜索 原始事件搜索 原始事件搜索 原始事件搜索是只从一个或多个索引中检索事件,通常适用于需要分析问题的情况的搜索。此类搜索的一些示例包 括:检查错误代码、相关事件、调查安全问题和分析故障。这些搜索通常并不包含搜索命令(search 命令本身除 外),而且结果通常是一个原始事件的列表。 阅读本手册的“检索事件”一章中有关原始事件搜索的更多信息,从“关于检索事件”开始。 报表生成搜索 报表生成搜索 报表生成搜索 报表生成搜索是对一组结果执行某种类型的统计计算的搜索。在此类搜索中,首先从索引中检索事件,然后将这些事 件传递一个或多个搜索命令。这些搜索始终要求字段和至少一组统计命令之一。一些示例如下:获取错误事件的每日 数量、计算特定用户的登录次数或计算字段值的 95%。 阅读“关于搜索管道”中有关搜索结构的更多信息。 阅读“关于搜索语言”中有关使用搜索命令可以完成的工作的更多信息。 阅读本手册的“报告搜索结果”一章中有关生成报表的更多信息,从“关于报表命令”开始。 搜索和知识 搜索和知识 当您进行搜索时,您可以开始识别模式和更多的信息作为非常有用的可搜索字段。您可在创建索引新数据时对 Splunk 进行配置以使其识别这些新字段,也可以在搜索期间创建新字段。无论您了解的事物为何,您都可以在事件 数据中使用、添加和编辑关于该知识的字段、事件和交易。捕获此类知识将有助于您构建更有效的搜索并生成更详细 的报表。 4
使用使用 Splunk 网站、网站、CLI 或或 REST API 搜索搜索 有何区别?您最终会如何选择? 关于搜索管道 关于搜索管道 您可能听说过用来描述 Splunk 搜索的“搜索管道”这个术语。“搜索管道”是指 Splunk 搜索的结构,在此结构中,多个 连续命令通过管道符 "|" 链接在一起。管道符指示 Splunk 使用一个命令(位于管道符左侧)的输出或结果作为下一 个命令(位于管道符右侧)的输入。这样,您就能够沿着管道限制或增加每一步的数据,直至获得所需的结果。 Splunk 搜索从管道开头的搜索术语开始执行。这些搜索术语包括关键字、短语、布尔表达式、键/值对等,用于指定 要从索引中检索的事件。 阅读“关于检索事件”的更多信息。 之后可以使用管道符将检索的事件以输入形式传递搜索命令。搜索命令会指示 Splunk 在从索引中检索到事件之后如 何处理它们。例如,您可能使用命令筛选不需要的信息、提取更多的信息、评估新字段、计算统计信息、重新排序结 果或创建图表。有些命令拥有与其关联的函数和参数。您可以利用这些函数及其参数来指定命令如何操作结果以及要 操作哪些字段;例如,如何创建图表、要计算何种类型的统计信息以及要评估哪些字段。有些命令还允许您使用子句 来指定对搜索结果的分组方式。 有关使用搜索命令可以完成的工作的更多信息,请阅读“关于搜索语言”。 有关搜索命令的完整列表,请参考《搜索参考手册》和各个搜索命令参考主题,以了解其语法和用法。 关于搜索语言 关于搜索语言 搜索语言组件 搜索语言组件 Splunk 搜索语言包括所有搜索命令及其函数、参数和子句。搜索命令会指示 Splunk 如何处理从索引中检索到的事 件。例如,您需要使用某一命令筛选不需要的信息、提取更多的信息、评估新字段、计算统计信息、重新排序结果或 创建图表。 有些搜索命令拥有与其关联的函数和参数。您可以利用这些函数及其参数来指定命令如何操作结果和/或命令操作哪 些字段。例如,您使用函数来设置图表中的数据格式、描述要计算的统计信息类型以及指定要评估的字段。有些命令 还允许您使用子句来指定对搜索结果的分组方式。 有关搜索剖析的更多信息 有关搜索剖析的更多信息 它可帮助您以表格形式直观地显示所有索引的数据,以便更好地了解搜索命令操作数据的方法。每个搜索命令都会重 新定义表格的形状。 例如,让我们来看看下面的搜索。 sourcetype=syslog ERROR | top user | fields - percent Disk 表示全部索引数据,它是一个特定大小的表格,其中的列表示字段,行表示事件。第一个中间结果表显示的行 较少,表示从索引中检索到的与搜索术语 "sourcetype=syslog ERROR" 匹配的事件的子集。第二个中间结果表显示 的列较少,表示最高命令(即 "top user")的结果,此命令将事件汇总为一个包含前 10 位用户的列表并显示用户、 计数和百分比。然后,"fields - percent" 会删除显示百分比的列,因此,剩下的最终结果表就变得更小了。 在开头或其他地方搜索 在开头或其他地方搜索 您可以在搜索命令管道中的任何点进行搜索。搜索结果是一个较小的表格,其中列数保持不变,只是去掉了与搜索条 件不匹配的事件所对应的行。搜索不会更改任何单元格值。 搜索命令: crawl, savedsearch, search. 搜索命令: 筛选不需要的信息 筛选不需要的信息 筛选命令与搜索生成的结果相同:一个较小的表格。但是,视搜索命令而定,表格越小,所包含的行或列越少。筛选 命令也不会更改任何单元格值。 筛选命令: dedup、fields、head、localize、regex、search、set、tail、where。 筛选命令: 5
评估数据评估数据 评估命令可以更改特定列名称或单元格值。视具体命令而定,评估命令可能添加列,也可能不添加列。 评估命令: abstract, addtotals, bucket, cluster, collect, convert, correlate, diff, eval, eventstats, format, fillnull, format, 评估命令: kmeans, makemv, mvcombine, mvexpand, nomv, outlier, overlap, replace, strcat, transaction, typelearner, xmlunescape. 重新排序结果 重新排序结果 重新排序命令可根据指定列名称的值对整个表格中的行进行排序。这些命令不会添加或删除行,也不会更改任何单元 格值。 重新排序命令: reverse, sort. 重新排序命令: 提取更多信息 提取更多信息 提取命令可根据在每行的 _raw 列中找到的信息创建新的行或列。 提取命令: addinfo, extract/kv, iplocation, multikv, rex, top, typer, xmlkv. 提取命令: 示例:示例: 使用 extract/kv 从事件中的键/值对创建新列。 示例:示例: 使用 multikv 从在多行事件或表格形式的事件中找到的信息创建新行。 计算统计信息转换结果 计算统计信息转换结果 统计命令会转换或创建全新的数据表。这些命令会将每个事件的指定单元格值更改为数字值,以便 Splunk 用这些值 来进行统计。 转换命令: chart, contingency, highlight, rare, stats, timechart, top. 转换命令: 关于关于 search 语言语法 语言语法 search 由一系列命令组成,并用管道符 (|) 分隔。每个管道符之后的第一个用空白分隔的字符串用于控制所使用的命 令。每个命令的其余文本会以特定于给定的命令方式进行处理。 引号和转义字符 引号和转义字符 通常,需要在含有空格、逗号、管道符、引号和/或方括号的短语和字段值两边加上引号。 通常,需要在含有空格、逗号、管道符、引号和 后必须跟随非转义结束引号。例如: 或方括号的短语和字段值两边加上引号。引号必须平衡,起始引号 error | stats count 搜索将找到含有字符串错误的事件的数量。 ... | search "error | stats count" 搜索将按顺序返回含有 error、管道符、stats 和 count 的原始事件。 另外,如果您不想搜索关键字和短语的默认含义(例如布尔运算符和字段/值对),请在这些关键字和短语两侧加上 引号。例如: 搜索不表示布尔运算符的关键字 AND: error "AND" 搜索此字段/值短语: error "startswith=foo" 反斜杠字符 (\) 用于转义引号、管道符及其本身。 反斜杠字符 用于转义引号、管道符及其本身。仍可在引号内部扩展反斜杠转义序列。例如: 如果在搜索中使用 \| 序列,则会将管道符发送到命令,而不是用管道符来拆分各个命令。 \" 序列将向命令发送引号字符,例如,搜索引号字符或使用 rex 将引号字符插入字段中。 \\ 序列可在命令中用作反斜杠字符。 无法识别的反斜杠序列不会改变: 例如,搜索字符串中的 \s 可以 \s 形式发送给命令,因为 \s 属于未知的转义序列。 但是,在搜索字符串中,\\s 可以 \s 形式发送给命令,因为 \\ 属于已知的转义序列,它将被转换为 \。 示例示例 示例示例 1:: 创建值为 6 的 myfield。 ... | eval myfield="6" 示例示例 2:: 创建值为 " 的 myfield。 ... | eval myfield="\"" 示例示例 3:: 创建值为 \ 的 myfield。 6
... | eval myfield="\\" 示例示例 4::由于引号不平衡,此示例会产生错误。 ... | eval myfield="\" 字段字段 流经 Splunk 搜索管道的事件和结果以字段集合的形式存在。字段基本上来自 Splunk 索引(如表示事件时间的 _time、表示文件名的来源数据等),字段也可能源自搜索时广泛的数据来源(如事件类型、标记、使用 rex 命令提 取的正则表达式、来自 stats 命令的总计等)。 对于给定事件,给定字段名称可能存在,也可能不存在。如果存在,它可能包含单个值或多个值。每个值都是一个文 本字符串。值的长度可能为正值(字符串或文本)或为零(空字符串或 "")。 例如,数字是只包含数字的字符串。 例如,含有数字值 10 的字段包含字符 1 和 0:"10"。 从值中获取数字的命令会 自动在内部将这些值转换为用于计算的数字。 我们在 Splunk 文档和消息中使用以下术语来代表这些情况。 对于特定结果或事件,不存在空值字段。在同一搜索中,其他事件或结果的此字段可能具有值。例如,fillnull 搜索命令用于向事件或结果添加字段和默认值,这些事件或结果缺少搜索中其他事件或结果中存在的字段。 空值字段 空字段 空值 空字段仅是包含单个值(即空字符串)的字段的缩略名。 空字符串或 "" 的值;一个长度为零的字符串。 多值字段 具有多个值的字段。所有非空值字段都包含一个有序的字符串列表。通常情况下,这是含有一个值的列表。如 果列表中包含多个条目,我们称其为多值字段。有关更多信息,请参阅《搜索手册》中的“操作和评估多值字 段”。 关于搜索助理 关于搜索助理 Splunk 的搜索语言非常广泛,包括许多搜索命令、参数和函数。您可能会在形成搜索方面遭遇困难,因为您不熟悉 所有命令,而且不知道已经从数据中提取了哪些信息。 在构建搜索时使用搜索助理查看数据 在构建搜索时使用搜索助理查看数据 当您构建搜索时,您不需要知道使用哪些搜索命令和参数来形成搜索,因为搜索助理将为您提供相应的建议。 当您在搜索栏中键入每个关键字时,搜索助理会向您显示键盘缓冲或每个关键字的上下文匹配项和完成项。这些上下 文匹配项基于数据内容。匹配的术语 搜索助理还会显示搜索术语的匹配项数量。通过这个数字,您便可以了解 Splunk 将返回多少搜索结果。如果术语或 短语并不存在于数据之中,搜索助理就不会列出该术语或短语。 匹配的术语下的条目将随着您的键入而更新,因为术语的可能完成项也会更改。 更改搜索助理的设置 更改搜索助理的设置 搜索助理是一个由搜索栏调用的 Python 端点,它将返回 html 并将其显示在从搜索栏下滑即可找到的面板中。搜索助 理从 searchbnf.conf(用于定义所有 Splunk 搜索命令及其语法)获取其描述和语法信息。但是,它还使用 fields.conf 来建议自动完成的字段,以及使用 savedsearches.conf 通知用户其搜索与一个现有已保存的搜索相似。 您可以通过 SearchBar 模块中的 UI 设置来控制搜索助理的行为。这些设置定义是否默认打开搜索助理 (autoOpenAssistant)、是否使用键盘缓冲 (useTypeahead)、是否显示命令帮助 (showCommandHelp)、是否显示搜索历史 (showCommandHistory) 以及是否显示字段信息 (showFieldInfo)。有关其中每个模块的更多信息,请参考“模块参考”。 使用搜索任务查看器查看搜索属性 使用搜索任务查看器查看搜索属性 搜索任务查看器工具可让您进一步了解搜索任务,并了解 Splunk 大部分时间都花在什么地方。本主题介绍如何使用 搜索任务查看器 搜索任务查看器进行搜索性能问题的故障排除,并了解搜索中的事件类型、标记、查找等知识对象的行为。 使用搜索任务查看器 使用搜索任务查看器 只要搜索项目仍存在(即搜索尚未过期),您就可以访问搜索任务查看器来查看某搜索任务任务。搜索不需为运行中。 检查搜索: 检查搜索: 1. 运行该搜索。 2. 从操作操作下拉菜单中选择检查搜索任务 这将在一个新的浏览器窗口中打开“搜索任务查看器”。 检查搜索任务... 7
查看搜索项目的属性: 查看搜索项目的属性: 如果您有任务项目的搜索 ID (SID),您可以使用 URL 来检查搜索任务项目。您可以在任务管理器中查找搜索的 SID(单击右上角的任务任务链接),也可以在 Splunk 的 dispatch 目录 $SPLUNK_HOME/var/run/splunk/dispatch 中找到。有 关“任务管理器”的更多信息,请参阅《知识管理器手册》中的“使用任务管理器管理搜索任务”。 如果您查看搜索任务查看器窗口的 URI 路径,您将会在字符串的末尾看到类似如下所示的内容: .../inspector?sid=1299600721.22&namespace=search sid 和 namespace 为 SID 号和其所属的应用程序的名称。此处,SID 为 1299600721.22。 在 URI 路径的 sid= 后面键入搜索项目的 SID,然后敲击返回。只要您具有查看搜索所需的所有权权限,您就能够检 查该搜索。 现在,您看到了什么? 任务查看器显示的内容 任务查看器显示的内容 执行成本列出了有关搜索组件以及每个组件对整体搜索性能的影响程度 在运行搜索时,任务查看器会显示两个面板。执行成本 的信息。搜索任务属性 搜索任务属性列出了任务的其他特性。当搜索完成时,任务查看器会告诉您它找到的结果数量及其完成搜索 所花费的时间。搜索完成之后,任务查看器还会在屏幕顶部显示错误消息。大部分信息很容易理解,但本部分将介绍 这两个面板的详细信息。 执行成本执行成本 利用执行成本 执行成本面板,您可以通过减小与搜索时间事件处理操作关联的特定组件的性能影响,进行搜索效率问题的故障 排除。该面板显示一个表格,其中包含组件、其个别持续时间(以秒为单位)、每个组件在搜索运行期间被调用的次 数以及每个组件的输入和输出事件数量。组件按字母顺序列出,您看到的组件数量将会增加或减少,具体取决于运行 的搜索。下表描述了每个搜索命令和分布式搜索组件的意义。(如果您只运行关键字搜索,您将会看到这些组件。) 搜索命令组件名称 搜索命令组件名称 描述描述 command.search 一旦 Splunk 确定包含与搜索匹配的索引字段的事件,它就会查看这些事件本身,以确定与其他条 件匹配的事件。这些是并发操作,不是连续操作。 command.search.index - 指示其在 TSIDX 文件中查找要在原始数据中读 取的位置需要的时间。 command.search.rawdata - 指示其从原始数据文件读取实际事件需要的时 间。 command.search.typer - 指示其确定事件类型需要的时间。 command.search.kv - 指示其对事件应用字段提取需要的时间。 command.search.fieldalias - 指示其根据 props.conf 重命名字段需要的时 间。 command.search.lookups - 指示其根据现有字段创建新字段(执行字段查 找)需要的时间。 command.search.filter - 指示其筛选出不匹配事件(例如,字段和短语) 需要的时间。 command.search.typer - 指示其为事件分配事件类型需要的时间。 command.search.tags - 指示其为事件分配标记需要的时间。 使用的命令类型与您要查看的“调用”、“输入计数”和“输出计数”数字之间存在一定的关系。对于生成事件的搜索,您希 望输入计数为 0 且输出计数为某一数量的事件 (X)。如果搜索既是一个生成搜索,又是一个筛选搜索,筛选搜索将具 有输入(等于生成搜索的输出,即 X),且 output=X。因而总计数为 input=X,output=2*X,调用计数也会加倍。 分布式搜索组件名称 分布式搜索组件名称 描述描述 dispatch.createProviderQueue 连接到所有搜索节点的时间。 dispatch.evaluate dispatch.fetch dispatch.preview 参数分析和子搜索评估需要的时间。这是对使用的每个搜索命令进一步拆分而来的一个组件。 dispatch.evaluate.search - 指示 search 命令已运行。 等待事件或从搜索节点获取事件需要的时间。 生成预览结果需要的时间。 dispatch.process_remote_timeline 对搜索节点生成的时间线信息进行解码需要的时间。 dispatch.stream.local dispatch.timeline 搜索任务属性 搜索任务属性 搜索头在搜索的流部分花费的时间。 生成时间线和字段挑选器信息需要的时间。 8
分享到:
收藏