splunk搜索基本语法学习记录(基本概念)(不定时更新中) 您所在的位置:网站首页 搜索引擎使用语法是什么意思 splunk搜索基本语法学习记录(基本概念)(不定时更新中)

splunk搜索基本语法学习记录(基本概念)(不定时更新中)

2024-07-17 01:53| 来源: 网络整理| 查看: 265

本文只包含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,ip

  table:在查询结果中只展示对应的字段

 例:|table 字段1,字段2,字段3

  stats:将查询结果进行聚合统计,类似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=now

   replace:将字段中的值替换为新值。可以使用通配符*进行模糊匹配

语法: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=1

   regex  :将删除与指定正则表达式不匹配的结果

语法: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 实验室设备网 版权所有