《Splunk智能运维实战》——1.2 索引文件和目录

简介:

本节书摘来自华章计算机《Splunk智能运维实战》一书中的第1章,第1.2节,作者 [美]乔史·戴昆(Josh Diakun),保罗R.约翰逊(Paul R. Johnson),德莱克·默克(Derek Mock),译 宫鑫,康宁,刘法宗 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.2 索引文件和目录

从文件和目录输入数据是向Splunk导入数据最常用的方法。这种类型的输入主要是为了索引日志文件。几乎每个应用程序或系统都会产生日志文件,当中包括了我们想搜索和制作报表的很多数据。

Splunk能够持续监控写入现有文件的新数据或添加到目录中的新文件,并且能够实时索引这些数据。根据生成日志文件的应用类型不同,可以将Splunk设定为监控单一文件(基于其位置)或扫描整个目录并监控其中的所有文件。当生成的日志文件包含唯一的文件名(比如名字中含有时间戳)时,后一种配置更常使用。

本节将学习如何配置Splunk来持续监控并索引Splunk服务器上的一个日志文件,这个日志文件的内容会不断增加。本节将专门展示如何监控并索引Linux系统上的messages日志文件(/var/log/messages)。然而,同样的方法也适用于Windows系统上的日志文件,本书也提供了一个示例文件。但请不要用这种方法索引Windows事件日志,因为Splunk有专门的Windows事件输入法。

做好准备

要进行本节的操作,需运行Splunk Enterprise服务器并且有权限访问读取Linux上的/var/log/messages文件。没有其他先决条件。如果使用的不是Linux系统,并且/或者没有权限访问 Splunk服务器上的/var/log/messages,要使用本书提供的cp01_messages.log文件并将其加载到Splunk服务器上一个可访问的目录中。

如何操作

按下列步骤监控并索引文件内容。

1 . 登录Splunk服务器。

2 . 从右上角的主启动器,单击“添加数据”按钮。

screenshot

3 . 在“选择数据类型”列表中,单击“文件或文件目录”。
screenshot

4 . 在“索引此Splunk服务器上的所有文件”选项中单击“下一步”按钮。
screenshot

5 . 选择“索引前预览数据”并输入日志文件路径(/var/log/messages或cp01_messages.log文件的位置)并单击“继续”按钮。
screenshot

6 . 选择“开始一个新的源类型”并单击“继续”按钮。
screenshot

7 . 假如你使用本书提供的文件或本地的/var/log/messages文件,数据预览将展示正确分行后的事件及时间戳标志。单击“继续”按钮。

8 . 会弹出“预览设置”框。在源类型输入linux_messages,单击“保存源类型”按钮。
screenshot

9 . 会出现“源类型已保存”的提示框,选择“创建输入”按钮。
screenshot

10 . 在“源”部分,选择“从Splunk本次访问的文件或目录中持续索引数据”,并填写数据路径。
screenshot

如果只是想一次性加载某个文件,可选择“上传并索引文件”。这个选项适合于索引一组数据到Splunk,既可用来回填一些缺失或不完整的数据,也可仅仅为了利用其搜索和报表工具。

11 . 暂且忽略其他设定,直接单击“保存”。然后,在下一个界面中,点击“开始搜索”。在搜索栏,输入下列搜索,时间范围设定为“全部时间”:
screenshot

在本节中,可直接使用常见的系统日志源类型,不过,创建新的源类型往往是更好的选择。根据数据源不同,系统日志格式可能差异很大。因为像提取字段这样的知识对象是建立在源类型之上的,为所有对象使用单一的系统日志源类型可能会较难搜索到所需的数据。

工作原理

当添加一个新的文件或目录来导入数据时,也就是在后台向inputs.conf文件添加新的配置节。Splunk服务器可包含一个或多个inputs.conf文件,它们位于$SPLUNK_HOME/etc/ system/local或Splunk 应用程序的local目录。

Splunk使用的输入类型是监控器,并被设定为指向某个文件或目录。如果设置对一个目录进行监控,目录中的所有文件都会被监控。当Splunk监控文件时,它会首先从头索引所有能读取的数据。完成后,Splunk将保留上次读取数据的位置记录,如有任何新的数据写入文件,它将读取这个数据并继续记录。这个过程几乎和在UNIX操作系统下使用tail命令相同。如需要监控一个目录,Splunk也会提供很多附加的配置选项,比如将不需要Splunk索引的文件列入黑名单。

若想获取Splunk配置文件的更多信息,请访问 http://docs.splunk.com/Documentation/Splunk/latest/Admin/ Aboutconfigurationfiles。

更多内容

除了可按照本节的方法通过Splunk的Web界面添加输入信息来监控文件和目录,还有其他方法来快速地添加多种输入信息。这些方法允许我们自定义Splunk提供的多种配置
选项。

通过CLI(命令行界面)添加文件或目录数据输入

除了通过GUI(图形用户界面)之外,还可通过Splunk CLI(command-line interface)来添加文件或目录输入。进入$SPLUNK_HOME/bin目录并执行下列命令(将需要监控的文件或目录替换成你自己的)。

UNIX系统:

screenshot

Windows系统:

screenshot

许多参数可以随文件位置一起被传送到监控器。参考Splunk技术文档来了解更多CLI数据输入的用法(http://docs.splunk.com/Documentation/Splunk/latest/Data/ MonitorfilesanddirectoriesusingtheCLI)。

通过inputs.conf添加文件或目录输入

另一种添加文件和目录输入的常用方法是手动将其直接添加至inputs.conf配置文件中。该方法常用于大环境中或配置Splunk 转发器来监控终端上的文件或目录。

编辑$SPLUNK_HOME/etc/system/local/inputs.conf并添加输入。添加完输入后,需要重启Splunk来识别更改。

UNIX系统:

screenshot

Windows系统:

screenshot

如需进行多个输入,编辑inputs.conf通常可以更快地添加新文件和目录来监控。编辑inputs.conf时,要确保使用正确的语法,并重启Splunk来使修改生效。此外,在inputs.conf文件中设定源类型是指定源类型的最佳做法。

通过Splunk CLI一次性索引数据文件

除了从Splunk GUI中选择“上传并索引文件”进行操作之外,也可使用很多CLI功能来执行一次性批量加载数据。

使用oneshot命令告知Splunk文件位置及所用参数,比如源类型:

screenshot

另一种方法是将希望索引的文件放入Splunk spool目录,$SPLUNK_ HOME/var/spool/splunk,然后使用spool命令添加文件:

screenshot

如使用Windows系统,应省略Splunk命令前的“./”。

索引Windows事件日志

Splunk针对一些源类型有专门的inputs.conf配置方式,其中包括监控Windows事件日志。通常来说,把Splunk通用转发器(UF)安装在Windows服务器上,配置后可转发Windows事件至Splunk索引器。对inputs.conf进行如下配置来实时监控Windows安全日志、应用程序日志和系统事件日志:

screenshot

除非另外指定索引,否则事件数据默认会进入主索引。

另参见

screenshot

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
23天前
|
机器学习/深度学习 运维 监控
智能监控系统在运维中的应用与优势
传统的运维管理方式在面对日益复杂的IT系统时显得力不从心,智能监控系统的出现为运维工作带来了新的机遇。本文将探讨智能监控系统在运维中的应用与优势,介绍其工作原理以及如何有效地利用智能监控系统提升运维效率和质量。
38 2
|
3月前
|
机器学习/深度学习 人工智能 运维
什么是AIOps智能运维?
AIOps(智能运维)是一种利用人工智能和机器学习技术的软件,用于实时分析和处理业务和运营数据,以提供规范性和预测性答案。它通过收集和汇总大量数据,并使用智能筛选和识别重要事件和模式,帮助团队快速解决问题并避免事件发生。AIOps不依赖于人为指定规则,而是通过机器学习算法自动学习和提炼规则。它可以分析异常告警、故障分析、趋势预测等,并在某些情况下自动解决问题。AIOps的团队包括SRE团队、开发工程师团队和算法工程师团队,他们在AIOps相关工作中扮演不同的角色。
|
4月前
|
运维
电子好书发您分享《应用智能运维实践(试读版)》
电子好书发您分享《应用智能运维实践(试读版)》
63 1
|
4月前
|
运维
电子好书发您分享《应用智能运维实践(试读版)》
电子好书发您分享《应用智能运维实践(试读版)》
50 1
|
1月前
|
机器学习/深度学习 人工智能 运维
《未来智能运维:AI技术的应用与展望》
在当今数字化时代,智能运维正日益成为企业提升效率、降低成本的关键。本文将探讨人工智能技术在运维领域的应用现状与未来发展趋势,展望未来智能运维的发展前景。
74 1
|
18天前
|
机器学习/深度学习 传感器 运维
提升数据中心效能:智能运维策略与实践
【4月更文挑战第6天】在数字化时代,数据中心作为企业信息架构的核心,其稳定性和效率直接影响到业务连续性和客户满意度。随着技术的进步,传统的数据中心运维模式已经不能满足现代高效、智能化的需求。本文将探讨如何通过智能运维(AIOps)策略,结合大数据分析和机器学习技术,实现数据中心的自动化管理、故障预测及快速响应,以提升整体效能并降低运营成本。
|
28天前
|
机器学习/深度学习 存储 人工智能
未来智能运维的发展趋势与挑战
随着信息技术的迅猛发展,智能运维作为关键的技术领域正日益受到重视。本文探讨了未来智能运维的发展趋势和所面临的挑战,从人工智能、自动化运维、数据分析等方面展望了未来智能运维的发展方向,同时也指出了在实践中需要克服的困难和挑战。
50 1
|
28天前
|
机器学习/深度学习 人工智能 运维
未来智能运维:人工智能在云计算运维中的应用
随着云计算技术的不断发展,传统的运维方式已经无法满足日益复杂的系统需求。本文探讨了人工智能在云计算运维中的应用,介绍了未来智能运维的发展趋势和挑战。
16 3
|
30天前
|
机器学习/深度学习 数据采集 运维
《智能监控系统在运维中的应用与优势》
随着技术的发展,智能监控系统在运维领域扮演着越来越重要的角色。本文将探讨智能监控系统在运维中的应用及其带来的优势,揭示其对于提升运维效率和保障系统稳定性的重要意义。
13 0
|
1月前
|
机器学习/深度学习 人工智能 运维
现代化运维管理:智能化的未来
随着信息技术的迅猛发展,现代化运维管理正变得日益重要。本文将探讨智能化运维管理的发展趋势,以及如何利用先进技术提升运维效率和质量。