本节书摘来自华章计算机《Splunk智能运维实战》一书中的第1章,第1.5节,作者 [美]乔史·戴昆(Josh Diakun),保罗R.约翰逊(Paul R. Johnson),德莱克·默克(Derek Mock),译 宫鑫,康宁,刘法宗 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.5 使用模块输入
从Splunk 5.0以后,可以扩展已有的数据输入功能,比如创建并分享自定义输入类型,而且仍可进行小的定制。
模块输入建立在脚本输入模型之上。用户需要的任何附加功能都必须包含在脚本中。但这就会出现一个问题,因为Splunk本身无法自定义这个脚本。比如,当我们想从一个源为两个不同的用户名获取数据时,可能需要两份脚本,或者需要在脚本输入配置中改变命令行参数。
利用模块输入功能,开发者现在可以将代码封装到可复用的应用程序中,这样它在Splunk中能显示各种参数,并允许Splunk管理员通过熟悉的方式来进行配置。
本节将介绍如何安装命令模块输入,它可以周期性执行命令并索引该命令输出的数据。我们将对输入进行配置,来收集Linux中的vmstat命令或Windows中的systeminfo命令输出的数据。
做好准备
要进行本节的操作,仅需运行Splunk服务器并连接网络。
如何操作
按照下列步骤配置模块输入:
1 . 登录Splunk服务器。
2 . 从主页面左上角的“应用程序”菜单点击“查找更多应用程序”。
3 . 在搜索字段中,输入command modular input并单击搜索图标。
4 . 在搜索结果中单击“命令模块输入”的“免费安装”按钮。
5 . 输入Splunk.com的证书并单击“登录”。Splunk将显示信息,提示应用程序安装成功。
6 . 从右上角的主启动器单击“设定”菜单,并点击“数据输入”链接。
7 . 在“数据输入”页面,点击“类型”下的“命令”链接。
8 . 点击“新建”。
9 . 在“模块输入名称”字段,输入SystemInfo。
如使用Linux系统,在“命令名称”字段输入/usr/bin/vmstat。
如使用Windows系统,在“命令名称”字段输入C:WindowsSystem32systeminfo.exe。
如果要执行的命令无法从系统路径找到,需要使用完整路径。
10 . 在“命令参数”字段中,输入的任何参数都会被传到“命令名称”字段列出的命令中。在“命令执行间隔”字段,以秒为单位输入值,设定命令执行的频率(在这一例子中,设定为60秒)。如以流的方式输出,直接勾选“流输出”字段。
11 . 在“源类型”部分,可选择预定义的源类型,也可选择“手动”并输入需要的值。出于本节的需要,在源类型选择“手动”,并输入cp01_modular_input作为源类型的值。
12 . 点击“保存”。Splunk现已配置好,可以按照设定的间隔每隔60秒来执行提供的模块输入。输入下列命令搜索“全部时间”的脚本输入返回的数据:
工作原理
模块输入被捆绑为Splunk的应用程序,安装后,它包含所有必需的配置和编码,在Splunk的“数据输入”部分能看到。本节中,安装了一个可周期性执行命令的模块输入应用程序。为其配置命令,使其每分钟执行并索引每次命令的结果,指定结果的源类型为cp01_modular_input。
模块输入可以用多种语言编写。它需要遵循一套界面,显示配置选项和运行时行为。根据输入的设定,它们可以持续运行也可以间隔运行,并在接收数据后发送数据到Splunk。
可从Splunk Apps网站(http://apps.splunk.com)找到其他模块输入,包括REST API、SNMP和 PowerShell。
更多内容
要了解如何创建属于自己的模块输入,参考《Developing Views and Apps for Splunk Web》手册中的Modular Inputs部分,网址为http://docs.splunk.com/ Documentation/Splunk/latest/AdvancedDev。
另参见