splunk篇3-spl

在splunk搜索栏中编辑spl搜索语句,即可检索出已经配置的数据源内容,右边时间栏是选择数据源的变动时间来检索

splunk篇3-spl_第1张图片

 以上篇的http为例,当我的数据发送到splunk后,输出 source="http:httptest" ,其中httptest是我建的http event collector的标记,忘记的可以翻上篇。左侧框中的是字段,字段就是昨天发送数据的body里面的json内容。字段可以支持查询,例如输入

source="http:httptest" assignee |table device,结果是 如下图

{"event": "assignee","sourcetype":"httptest","fields": {"device": "macbook", "users": ["A", "B","C","D"]}}

splunk篇3-spl_第2张图片
splunk篇3-spl_第3张图片

这里table的意思就是类似sql中的select,其他的常用的还有join,类似sql的join,where 类似sql的where,like(key,"%%"),类似sql的like,还有stats类似group等等,常用的还有一些时间函数,字符串函数(len),数学函数,条件(if,case),具体使用的时候还需要参考官方文档,我这里想说的就是你只要把数据源设置好,而且数据是结构化的数据,类似json,csv等,都可以通过spl查询出来。 

上面以http接口发送数据的方式,这种方式适合数据少的一种情况,数据多的话还是推荐监控本地文件,或者监控远程文件(配置转发器的方式)

下面在介绍一种监控本地csv文件的方式,接上篇的配置数据源。监控本地文件/usr/share/distro-info/debian1.csv,然后在搜索栏中键入,

source="/usr/share/distro-info/debian1.csv" |table series,codename  ,结果如下

splunk篇3-spl_第4张图片

同理,转发器接收方式也是类似的spl,只不过需要注意source的路径是发送端的路径,

还有一个特殊的db的spl,上篇中sql explore支持sql直接转为spl。还有一个点,db方式加载数据源的情况,查询会比通过sql gui工具查询的慢的多,主要是因为splunk会在后台启动java进程,然后加载driverjar包,然后跑sql,sql跑完了直接杀进程。慢就慢在了频繁启动java进程杀进行这块。

虽然直接查sql比较灵活,但是速度让人费解,我推荐把每个db的table表映射成一个csv文件,然后splunk监控这个文件,或者集中到一个文件夹中,监控文件夹(如果是本地的直接监控,如果不是本地的需要配置转发器监控),通过定时任务追加更新内容,然后写spl类似sql的查询,把需要的字段查出来。

介绍的比较粗糙,有问题的推荐使用官方文档,百度搜索splunk doc,然后官方文档支持查找,接收的都很详细,像是spl的关键字的用法,一些函数的用法都有。导入了数据源后,最关键的就是找出这个数据源,往往使用的是 source,sourcetype,host,index等等,找出数据之后,配置table,where,stats等就可以查询统计出想要的内容

介绍完了spl剩下的就是通过dashboard展示的问题了,见下篇

 

你可能感兴趣的:(splunk)