《Splunk智能运维实战》——1.4 使用脚本输入-阿里云开发者社区

开发者社区> 华章出版社> 正文

《Splunk智能运维实战》——1.4 使用脚本输入

简介:

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

1.4 使用脚本输入

智能运维所需的数据并非全部来自日志文件或网络端口。Splunk也可获取命令或脚本的输出,并将其与其他数据一起索引。

脚本输入是针对较难获取数据的一种有效方法。如果收集第三方提供的命令行程序输出的数据,Splunk可定期运行该命令来索引结果。通常来说,脚本输入常用于从某个源抓取信息,而网络输入则等待数据从某个源不断推送。

本节将介绍如何配置Splunk,使其每隔一段时间执行命令并将输出的数据导入Splunk。

做好准备

要进行本节的操作,需要运行Splunk Enterprise服务器,及本书提供的适用于当前操作环境的输入脚本。如果是Windows系统,使用cp01_scripted_input.bat文件。这个脚本应放至$SPLUNK_HOME/bin/scripts目录。

如何操作

按照下列步骤配置脚本输入。

  1. 登录Splunk服务器。
  2. 从右上角的主启动器,单击“添加数据”按钮。
    screenshot
  3. 在“或选择一个数据源”列表,单击“运行并收集一个脚本的输出”链接。
    screenshot
  4. 出现“添加新”界面,上面有许多需要输入的字段。在“源”部分,输入要运行命令的完整路径,包括任何命令行参数。所有脚本必须置于Splunk bin目录,可放至$SPLUNK_ HOME/bin/scripts或Splunk 应用程序的其他合适的bin目录中。
  5. 在“间隔”字段输入脚本运行的间隔值(用秒表示),默认值为60.0秒。
  6. 在“源类型”部分,可选择预定义的源类型,或选择“手动”并输入需要的值。出于本节的需要,在源类型中选择“手动”,并输入cp01_scripted_input作为源类型的值。
    screenshot

数据将被索引到Splunk的默认索引,也就是主索引。要想改变目标索引,勾选“更多设置”复选框并从下拉菜单中选择所需的索引。

  1. 点击“保存”,在下一个界面,点击“开始搜索”。Splunk现已配置好,可按照设定的间隔,每60秒执行一次我们提供的脚本输入。输入下列命令搜索“全部时间”的脚本输入返回的数据:
    screenshot

工作原理

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

创建完脚本输入后,Splunk创建了间隔计时器并按照设定的间隔执行指定命令。有一点需要注意,Splunk每次只能运行脚本的一个实例,若脚本因为某种原因被阻塞,Splunk就无法再执行脚本,直到障碍被排除。

从Splunk 4.2版本开始,脚本转入中任何指向stderr(导致错误)的输出都会被收集在splunkd.log文件中,在调试脚本执行情况时这会很有帮助。因为Splunk默认会索引自身的数据,所以可以搜索脚本输入错误并在必要时发出警报。

出于安全考虑,Splunk不会执行先前提到的bin目录以外的脚本。为了突破这一限制,可使用包装器脚本 (比如Linux中的shell脚本或Windows中的批处理文件)来调用机器上的其他脚本。

另参见

screenshot

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

华章出版社

官方博客
官网链接