splunk搜索基本语法学习记录(基本概念)(不定时更新中) | 您所在的位置:网站首页 › 搜索引擎使用语法是什么意思 › splunk搜索基本语法学习记录(基本概念)(不定时更新中) |
本文只包含splunk搜索关键字和语法的介绍更新,splunk搜索语句的实例在下一个随笔记录更新 关键词含义
1.数据索引和数据采集 index:后面加索引 source:是事件源自的文件,流或其他输入的名称。(对于从文件和目录监视的数据,source的值是完整路径) sourcetype:是其来源的数据输入的格式(sourceType决定了数据的格式化方式) host:是发起事件的网络主机的主机名,IP地址或完全限定域名。(查找源自特定设备的数据)
2.搜索关键字 head:只展示查询结果中的前多少条日志 例:|head 1000 只展示查询结果中的前1000条日志top:显示字段最常见/出现次数最多的值 例:| top 10 id 获取10个出现最多的id rare:显示字段出现次数最少的值 例:| rare 10 id 获取10个出现最少的id limit:限制查询,如:limit 5,限制结果的前5条 例:| top limit=1 ip 获取发生次数最多的ip rename xx as zz : 把xx设置别名为zz,多个之间用 “,”隔开 例:|rename student01 as 小明, student02 as 小芳 student01别名是小明,student02别名是小芳 fields :保留或删除搜索结果中的字段。fiels – xx 删除xx字段,保留则不需要 – 符号 例:|fields userId 保留userId字段 |fields -userId 删除userId字段 table :返回仅由参数中指定的字段所形成的表。 例:|table userId 形成表,表由userId组成 sort:基于某个字段排序(升序、降序),降序的字段前面要使用-号,升序的使用+(可省略) 默认只会返回10000条数据,如果想要返回全部数据,需要在sort命令后面加上0即可 例:|sort 0 age age字段升序排列 eval:评估命令 后面通过表达式进行一些计算 例:|eval test=age+sex |eval 新字段1=if(字段1 in("a","b","c"),"结果1","结果2") eval if in:如果字段1 的值为a,b,c中的任意一个,则新字段1的值为“结果1”,否则新字段1的值为“结果2”iplocation:生成ip对应的地区信息,会在结果中加入Country,City两个字段用来表明日志中ip的所在地 例:|iplocation ip |table Country,City,iptable:在查询结果中只展示对应的字段 例:|table 字段1,字段2,字段3stats:将查询结果进行聚合统计,类似SQL中的group 例:|stats count by 字段1,字段2 将查询结果按字段1和字段2分组,统计记录数量timechart:将查询结果以时间为x轴进行聚合统计 语法:timechart[sep=][format=][partial=][limit=][agg=][...](([By])|()BY) 例:|timechart span=1h count by 字段 将查询结果按字段分组,统计每小时记录数earliest latest:将查询结果控制在某个时间范围,一般用于子查询或动态查询。 现在:now 2小时前:-2h@h 1天前:-1d@d 例:index=* earliest=-2h@h latest=nowreplace:将字段中的值替换为新值。可以使用通配符*进行模糊匹配 语法:replace( WITH)...[IN] 例:|replace "原值" with "新值" in 字段名tstats:对加速数据模型进行统计查询 语法:| tstats [prestats=] [local=] [append=] [summariesonly=][allow_old_summaries=] [chunk_size=] ...[FROM ( | sid= | datamodel= )][WHERE | IN ()][BY [span=] ] 例:|tstats summariesonly=t count from datamodel=数据模型名 where 1=1regex :将删除与指定正则表达式不匹配的结果 语法:regex (= | != | )rex : 使⽤该命令既可以通过以正则表达式命名的群组提取字段,也可以通过 Sed 表达式替换或取代字段中的字符。 语法:rex [field=]([max_match=] [offset_field=])|(mode=sed )
3.对满足条件的事件进行统计 sort -字段, +字段, 先基于clientip降序排列之后,再对这个结果基于status升序 stats count() :括号中可以插入字段,主要作用对事件进行计数 stats dc():distinct count,去重之后对唯一值进行统计 stats values(),去重复后列出括号中的字段内容 stats list(),未去重之后列出括号指定字段的内容 stats avg(),求平均值 chart count(): chart max() [求出最大值] chart min() [求出最小值] chart avg() [根据第一次的结果求出平均值] rex field=待提取数据的字段 "正则表达式" (rex需要用到正则表达式来提取需要的字段) 例:|rex field=_raw "userId\":\"(?\d+)"注意,正则表达式中一定要给提出的字段定义名称, ?表示将新字段命名为ip
|
CopyRight 2018-2019 实验室设备网 版权所有 |