📜  Splunk-快速指南

📅  最后修改于: 2020-11-29 08:19:11             🧑  作者: Mango


Splunk是一种软件,可处理机器数据和其他形式的大数据并从中获取洞察力。该机器数据是由运行Web服务器,IOT设备,移动应用程序日志等的CPU生成的。不必将此数据提供给最终用户,并且没有任何业务意义。但是,它们对于理解,监控和优化机器性能非常重要。

Splunk可以读取此非结构化,半结构化或很少结构化的数据。读取数据后,它允许在这些数据上搜索,标记,创建报告和仪表板。随着大数据的到来,Splunk现在能够从各种来源提取大数据,这些数据可能是也可能不是机器数据,并且可以对大数据进行分析。

因此,从一个简单的日志分析工具开始,Splunk迈出了很长的路要走,成为用于非结构化机器数据和各种形式的大数据的通用分析工具。

产品类别

Splunk提供以下三种不同的产品类别-

  • Splunk Enterprise-具有大型IT基础结构和IT驱动业务的公司使用它。它有助于收集和分析来自网站,应用程序,设备和传感器等的数据。

  • Splunk Cloud-这是具有与企业版相同功能的云托管平台。可以从Splunk本身或通过AWS云平台使用它。

  • Splunk Light-它允许从一个地方实时搜索,报告和警报所有日志数据。与其他两个版本相比,它的功能和特性有限。

Splunk功能

在本节中,我们将讨论企业版的重要功能-

资料撷取

Splunk可以摄取各种数据格式,例如JSON,XML和非结构化机器数据,例如Web和应用程序日志。用户可以根据需要将非结构化数据建模为数据结构。

资料索引

Splunk会为摄取的数据建立索引,以便在不同条件下更快地进行搜索和查询。

资料搜寻

在Splunk中进行搜索涉及使用索引数据来创建指标,预测未来趋势和识别数据中的模式。

使用警报

当在分析的数据中发现某些特定条件时,Splunk警报可用于触发电子邮件或RSS feed。

仪表板

Splunk仪表板可以以图表,报告和数据透视表等形式显示搜索结果。

资料模型

可以将索引数据建模为一个或多个基于专业领域知识的数据集。这使得最终用户在不了解Splunk使用的搜索处理语言的技术知识的情况下,可以更轻松地导航来分析业务案例。

Splunk-环境

在本教程中,我们旨在安装企业版。启用所有功能后,此版本可免费评估60天。您可以使用以下链接下载安装程序,该链接适用于Windows和Linux平台。

https://www.splunk.com/en_us/download/splunk-enterprise.html。

Linux版本

Linux版本是从上面给出的下载链接下载的。我们选择.deb软件包类型,因为安装将在Ubuntu平台上完成。

我们将通过逐步的方法来学习这一点-

第1步

下载.deb软件包,如下面的屏幕快照所示-

Linux安装1

第2步

转到下载目录,并使用上述下载的软件包安装Splunk。

Linux Install2

第三步

接下来,您可以通过将以下命令与accept license参数一起使用来启动Splunk。它将询问您应该提供并记住的管理员用户名和密码。

Linux Install3

第4步

Splunk服务器启动,并提及可以访问Splunk界面的URL。

Linux安装4

第5步

现在,您可以访问Splunk URL,并输入在步骤3中创建的管理员用户ID和密码。

Linux安装5

Windows版本

Windows版本可用作msi安装程序,如下图所示-

安装1

双击msi安装程序将直接安装Windows版本。为成功安装,我们必须做出正确选择的两个重要步骤如下。

第1步

当我们在本地系统上安装它时,请选择本地系统选项,如下所示:

安装2

第2步

输入管理员的密码并记住它,因为它将在以后的配置中使用。

安装3

第三步

在最后一步,我们看到Splunk已成功安装,可以从Web浏览器启动它。

安装4

第4步

接下来,打开浏览器并输入给定的URL http:// localhost:8000 ,然后使用管理员用户ID和密码登录到Splunk。

安装5

Splunk-界面

Splunk Web界面包含搜索,报告和分析所提取数据所需的所有工具。相同的Web界面提供了用于管理用户及其角色的功能。它还提供了数据提取链接和Splunk中可用的内置应用程序。

下图显示了使用管理员凭据登录到Splunk后的初始屏幕。

接口1

管理员链接

管理员下拉菜单提供设置和编辑管理员详细信息的选项。我们可以使用以下屏幕重置管理员电子邮件ID和密码-

接口2

进一步从管理员链接,我们还可以导航到首选项选项,在这里我们可以设置登录后将在其上打开登录页面的时区和家庭应用程序。当前,它在主页上打开,如下所示-

接口3

设定连结

该链接显示了Splunk中可用的所有核心功能。例如,您可以通过选择查找链接来添加查找文件和查找定义。

我们将在后续章节中讨论这些链接的重要设置。

接口4

搜索和报告链接

搜索和报告链接带我们进入功能,在这里我们可以找到可用于搜索报告和为这些搜索创建的警报的数据集。在下面的屏幕截图中清楚地显示了它-

接口5

Splunk-数据提取

Splunk中的数据摄取是通过“添加数据”功能进行的,该功能是搜索和报告应用程序的一部分。登录后,Splunk界面的主屏幕显示“添加数据”图标,如下所示。

摄取1

单击此按钮后,将显示一个屏幕,以选择我们计划推送到Splunk进行分析的数据的来源和格式。

收集数据

我们可以从Splunk的官方网站获取数据进行分析。保存此文件并将其解压缩到本地驱动器中。打开文件夹后,您会找到三个具有不同格式的文件。它们是某些Web应用程序生成的日志数据。我们还可以收集Splunk提供的另一组数据,可从Splunk官方网页上获得。

我们将使用这两组数据来了解Splunk各种功能的工作原理。

上载资料

接下来,我们从上一段落中提到的mailsv文件夹中选择文件secure.log ,该文件夹已保存在本地系统中。选择文件后,我们使用右上角的绿色next按钮进入下一步。

摄取2

选择来源类型

Splunk具有内置功能,可以检测正在摄取的数据的类型。它还为用户提供了选择不同于Splunk选择的数据类型的选项。单击源类型下拉列表后,我们可以看到Splunk可以提取并启用搜索的各种数据类型。

在下面给出的当前示例中,我们选择默认的源类型。

摄取3

输入设定

在数据摄取的这一步骤中,我们配置从中摄取数据的主机名。以下是可供选择的选项,用于主机名-

定值

它是源数据所在的完整主机名。

正则表达式

要使用正则表达式提取主机名时。然后在“正则表达式”字段中输入要提取的主机的正则表达式。

路径段

如果要从数据源路径中的段中提取主机名,请在“段号”字段中输入段号。例如,如果到源的路径是/ var / log /,并且您要将第三段(主机服务器名称)作为主机值,请输入“ 3”。

接下来,我们选择要在输入数据上创建的索引类型以进行搜索。我们选择默认的索引策略。摘要索引仅通过聚合来创建数据摘要,并在历史索引用于存储搜索历史的同时在其上创建索引。下图清楚地描绘了它-

摄取4

查看设置

单击下一个按钮后,我们会看到我们选择的设置的摘要。我们对其进行检查,然后选择“下一步”完成数据的上传。

摄取5

完成加载后,将显示以下屏幕,其中显示了成功的数据提取以及我们可以对数据采取的进一步可能的操作。

摄取6

Splunk-源类型

Splunk的所有传入数据首先由其内置数据处理单元进行判断,并分类为某些数据类型和类别。例如,如果它是来自apache Web服务器的日志,则Splunk能够识别该日志并从读取的数据中创建适当的字段。

Splunk中的此功能称为源类型检测,它使用称为“预训练”源类型的内置源类型来实现此目的。

这使分析变得更容易,因为用户不必手动对数据进行分类,也不必将任何数据类型分配给传入数据的字段。

支持的源类型

通过“添加数据”功能上传文件,然后选择“源类型”下拉列表,可以查看Splunk中受支持的源类型。在下图中,我们上传了CSV文件,然后检查了所有可用选项。

源类型1

来源类型子类别

即使在这些类别中,我们也可以进一步单击以查看受支持的所有子类别。因此,当您选择数据库类别时,您可以找到Splunk可以识别的不同类型的数据库及其支持的文件。

源类型2

预训练源类型

下表列出了Splunk识别的一些重要的预训练源类型-

Source Type Name Nature
access_combined NCSA combined format http web server logs (can be generated by apache or other web servers)
access_combined_wcookie NCSA combined format http web server logs (can be generated by apache or other web servers), with cookie field added at end
apache_error Standard Apache web server error log
linux_messages_syslog Standard linux syslog (/var/log/messages on most platforms)
log4j Log4j standard output produced by any J2EE server using log4j
mysqld_error Standard mysql error log

Splunk-基本搜索

Splunk具有强大的搜索功能,使您可以搜索已摄取的整个数据集。可通过名为“搜索和报告”的应用程序访问此功能,登录到Web界面后即可在左侧栏中看到该功能。

基本搜索1

单击搜索和报告应用程序后,我们会看到一个搜索框,我们可以在其中搜索上一章中上传的日志数据。

我们以如下所示的格式键入主机名,然后单击最右上角显示的搜索图标。这使我们可以突出显示搜索词。

基本搜寻2

组合搜索词

我们可以将搜索词条依次写起来,但将用户搜索字符串双引号括起来,从而组合搜索词条。

基本搜索3

使用通配符

我们可以在搜索选项中将通配符与AND / OR运算符结合使用。在下面的搜索中,我们得到的结果是,日志文件中包含“失败”,“失败”,“失败”等术语,并在同一行中包含“口令”一词。

基本搜索4

优化搜索结果

我们可以通过选择一个字符串并将其添加到搜索中来进一步优化搜索结果。在下面的示例中,我们单击字符串3351并选择选项Add to Search

3351添加到搜索词后,我们得到以下结果,该结果仅显示其中包含3351的日志中的那些行。还要标记我们完善搜索时搜索结果的时间线是如何变化的。

基本搜寻

Splunk-现场搜索

当Splunk读取上载的机器数据时,它将解释数据并将其分为许多字段,这些字段代表有关整个数据记录的单个逻辑事实。

例如,一条信息记录可能包含服务器名称,事件的时间戳记,登录事件的类型(无论是登录尝试还是http响应等)。即使在非结构化数据的情况下,Splunk也会尝试将字段划分为键值根据它们具有的数据类型,数字和字符串等来配对或分离它们。

继续上一章中上传的数据,我们可以通过单击显示字段链接来查看来自secure.log文件的字段,这将打开以下屏幕。我们可以注意到Splunk已从该日志文件生成了字段。

现场搜索

选择领域

我们可以通过从所有字段列表中选择或取消选择字段来选择要显示的字段。单击所有字段将打开一个显示所有字段列表的窗口。其中一些字段带有复选标记,表明它们已被选中。我们可以使用复选框来选择要显示的字段。

除了字段名称之外,它还显示字段具有的不同值的数量,其数据类型以及此字段中出现的事件的百分比。

现场搜索

领域摘要

通过单击字段名称,可以获得每个选定字段的非常详细的统计信息。它显示了该字段的所有不同值,其计数和百分比。

现场搜索

在搜索中使用字段

字段名称也可以与搜索的特定值一起插入搜索框中。在以下示例中,我们旨在查找名为mailsecure_log的主机的日期10月15日的所有记录。我们获得了该特定日期的结果。

现场搜索

Splunk-时间范围搜索

Splunk Web界面显示时间线,该时间线指示事件在一定时间范围内的分布。有预设的时间间隔,您可以从中选择特定的时间范围,也可以根据需要自定义时间范围。

以下屏幕显示了各种预设时间轴选项。选择这些选项中的任何一个都将仅获取特定时间段内的数据,您也可以使用可用的自定义时间轴选项来进行进一步分析。

时间范围搜索1

例如,选择前一个月选项只会为我们提供前一个月的结果,因为您可以在下面看到时间线图的分布情况。

时间范围搜索2

选择时间子集

通过在时间轴上的栏上单击并拖动,我们可以选择已经存在的结果子集。这不会导致重新执行查询。它仅从现有结果集中过滤出记录。

下图显示了从结果集中选择一个子集-

时间范围搜索3

最早和最新

最早和最新的两个命令可以在搜索栏中使用,以指示您过滤结果之间的时间范围。这类似于选择时间子集,但是它是通过命令而不是在特定时间线栏单击的选项。因此,它可以更好地控制您可以为分析选择的数据范围。

时间范围搜索4

在上图中,我们给出了过去7天到最近15天之间的时间范围。因此,将显示这两天之间的数据。

附近活动

通过提及我们希望滤除事件多近,我们还可以找到特定时间附近的事件。我们可以选择间隔的比例,例如–秒,分钟,天和周等。

Splunk-共享导出

运行搜索查询时,结果将作为作业存储在Splunk服务器中。尽管此作业是由一个特定用户创建的,但可以与其他用户共享该作业,以便他们可以开始使用此结果集,而无需再次为其建立查询。结果也可以导出并保存为文件,可以与不使用Splunk的用户共享。

共享搜索结果

查询成功运行后,我们可以在网页的右中间看到一个向上的小箭头。单击此图标将提供一个URL,可以在其中访问查询和结果。需要向将使用此链接的用户授予权限。权限是通过Splunk管理界面授予的。

分享导出1

查找保存的结果

通过在Splunk界面右上角的活动菜单下查找作业链接,可以找到已保存供所有具有适当权限的用户使用的作业。在下图中,我们单击突出显示的名为作业的链接以查找已保存的作业。

分享导出3

单击上面的链接后,我们将获得所有已保存作业的列表,如下所示。他,我们必须注意,有一个有效期过帐,已保存的作业将自动从Splunk中删除。您可以通过选择作业并单击“编辑所选内容”,然后选择“延长到期日”来调整此日期。

分享导出4

导出搜索结果

我们还可以将搜索结果导出到文件中。可以导出的三种不同格式是:CSV,XML和JSON。选择格式后,单击“导出”按钮,将文件从本地浏览器下载到本地系统。下图对此进行了解释-

分享导出2

Splunk-搜索语言

Splunk搜索处理语言(SPL)是一种包含许多命令,函数,参数等的语言,这些命令,函数,参数等被编写为从数据集中获取所需结果。例如,当您获得搜索词的结果集时,您可能还想从结果集中过滤一些更具体的词。为此,您需要将一些其他命令添加到现有命令中。这是通过学习SPL的用法来实现的。

SPL的组成

SPL具有以下组件。

  • 搜索词-这些是您正在寻找的关键字或短语。

  • 命令-您想要对结果集执行的操作,例如格式化结果或对结果计数。

  • 函数-您将对结果应用哪些计算。像求和,平均值等。

  • 子句-如何对结果集中的字段进行分组或重命名。

让我们在下一节中借助图像讨论所有组件-

搜索词

这些是您在搜索栏中提到的术语,用于从数据集中获取符合搜索条件的特定记录。在下面的示例中,我们正在搜索包含两个突出显示的术语的记录。

Spl_1

指令

您可以使用SPL提供的许多内置命令来简化分析结果集中的数据的过程。在下面的示例中,我们使用head命令仅过滤出搜索操作的前3个结果。

Spl_2

功能

与命令一起,Splunk还提供了许多内置函数,这些函数可以从正在分析的字段中获取输入,并在对该字段进行计算后给出输出。在下面的示例中,我们使用Stats avg()函数来计算被用作输入的数字字段的平均值。

Spl_3

条款

当我们想要按某个特定字段分组结果或要在输出中重命名字段时,我们分别使用group by子句和as子句。在下面的示例中,我们获取web_application日志中每个文件的平均字节大小。如您所见,结果显示每个文件的名称以及每个文件的平均字节数。

Spl_4