一、简介
1. Machine Data
一般公司中,机器数据占了大概90%以上,包含如应用数据,监控数据,脚本数据等;
机器数据的数据结构各种各样;
处理数据繁琐且难度大,因此引入工具来提升数据分析效率;
2. Splunk
用来处理数据的,主要包含5个功能
2.1 Index Data
将所有数据进行处理,索引,将数据包装成一个个的event,并存储在指定的位置中;
在检索的时候,通过输入的检索条件,从指定的位置中去读取数据;
2.2 Search & Investigate
在搜索框中输入指定的条件,从而实现数据搜索功能;
2.3 Add Knowledge
对于已经存储好的event数据,可以再对event数据加上一些定制化的标签,从而方便后续数据处理;
2.4 Monitor & Alert
对于有些错误数据,可以进行设定,从而在这种数据刚刚产生的时候,就报警显示出来;
2.5 Report & Analyze
将event数据处理,变为可视化的dashboard;
二、Splunk
1. 三个主要组件
1.1 Indexer
将机器数据整理成为event,并存放在指定的,不同的目录中,按照日期进行排列;
可以将数据保存在不同的indexer中,实现提高效率,保存不同时间,开启不同的查看权限功能;
1.2 Search Head
搜索框,提供搜索语法,将搜索指令传递给 Indexer;
Indexer 检索完结果后,将目标event返回给Search Head;
Serach Head 对数据进行处理,可以以列表,图表等各种方式展现出来;
1.3 Forwarder
该应用一般安装在目标应用服务器上,起到对该应用的监控作用,从而将该应用的数据,推送给Indexer来进行处理;
2.安装
单机版和集群版;
官网安装即可: 三种系统以及splunk cloud云环境;
三种角色: admin,power,user;
3. 数据录入
3.1 uploaded
通过将数据文件上传,然后对数据进行分析;
适用于数据文件不变的一些测试用例,不适合于企业用例;
3.2 monitor
监控文件,文件夹
Http Event;
端口;
script脚本;
3.3 forwarder
常用的一种数据录入方式
三、搜索
1. 基本搜索
用时间过滤效率高;
一次查询,10分钟有效,10分钟后就会再次运行该查询
分享的job数据,7天内有效,及其他人查看的结果和本次job次展示的数据相同;
zoom in 和 挑选时间线,是在原有的job结果中过滤,不会再次查询;
zoom out时,是重新运行一次job;
fail * : 通配符搜索
NOT, AND ,OR 几种必须大写,通过() 进行优先级排序;
failed password 和 failed and password相同效果;
2. 检索
2.1 fields
selected fields: 对于搜索作者本人,至关重要的一些字段,可以高亮现实,可以改变哪些字段能成为该类型字段;
interested fields: 少20的event中都包含的字段,可以加入到selected fields中去;
一个字段可以包含多个值,并会显示每个值在所有event中所占数目及比例;
a: 指的是该字段的值是string类型;
#: 指的是该字段的值类型是numrical类型;
字段名称大小写敏感,字段具体的值大小写不敏感;
=,!=,>=, <= ;
in;
2.2 搜索规则
一般先指定时间,然后依次为index, source, host, sourcetype;
inclusion 比 exclusion好;
2.3 搜索语法
commond语法
# 1. pipeline: 将搜索结果通过不同的pipeline进行多次过滤 commond+\ 进行换行
# 同时可以切换search bar的窗口
| content1 | content2 |
# 2. fields 属性
#包含字段: 发生在检索之前,筛选出其中两个字段,提升了效率
index = main | fields firstfield secondfield
# 排除字段: 发生在检索之后,排除其中两个字段,对效率没影响,只是影响了页面展示的字段
index = main | fields - firstfield secondfield
# table 属性: 展示了其中的三个字段
index = main | table field1 field2 field3
# rename 属性: 展示了其中的三个字段
# rename某个字段后,就不能在后续的pipeline中用该字段了,应该用rename后的那个字段
index = main | table field1 field2 field3 | rename field1 as “haha” fields2 as “heihei”
# 去重
index = main | table field1 field2 field3 | dedup fields1
# 排序: + 升序列 - 降序列 limit指定返回行数
index = main | table field1 field2 field3 | sort +(-) fields1 limit = 20
函数
# 1. top rare : top为前多少个, rare为后多少个
index = main | top field1 # 默认为前10个多的
index = main | top field1 limit = 20 # 可以手动设定前多少个
index = main | top field1 limit = 0 # 将该字段从前到后排序
# 2. 函数
# count distinct count sum average min max list
index = main | stats count # 统计总数
index = main | stats count as wholenumber # 统计总数并起别名
index = main | stats count(fields) as number # 统计总数并起别名
四、Data Analyze
1. Report
将当前检索结果以report形式保存下来,其中数据还可以进行再检索;
report可以有权限,具体的查询时间区间等;
2. Visualization
将数据通过可视化的图标表现出来;
————————————————