三,调试篇
3.1 添加Mapping template
默认logstash发送到elasticsearch的字段,都被定义为字符串格式
这样的格式可以被搜索,但是无法进行二次计算
所以需要手动指定各个字段的格式,也就是mapping
一共有两种方法
一,添加logstash模板,指定字段格式
二,添加elasticsearch模板,指定字段格式
这里仅详细说明在elasticsearch中添加模板
3.2 elasticsearch添加mapping模板
访问Kibana首页
http://xxx.xxx.xxx.xxx:5601
点开左侧菜单,选择[Dev Tools]
控制台中可以通过输入命令,建立mapping模板
在控制台中输入以下命令,然后点击第一行之后,同时按下ctrl+Enter执行命令,就建立好模板了
put /_template/sg_toelk_template
{
//指定套用此模板的index。需跟logstash配置文件中的index相匹配
"index_patterns":"sg_toelk-*",
"settings":{
"index.refresh_interval":"5s"
},
"mappings" : {
"properties" : {
"@timestamp" : {
"type" : "date"
},
"@version" : {
"type" : "keyword"
},
"ClientIP" : {
"type" : "ip"
},
"Date" : {
"type" : "keyword"
},
"DstIP" : {
"type" : "ip"
},
"RecvBytes" : {
"type" : "long"
},
}
}
}
以下是比较常用的字段的数据类型
string
text and keyword
Numeric
long, integer, short, byte, double, float, half_float, scaled_float
Date
date
Date nanoseconds
date_nanos
Boolean
boolean
Binary
binary
Range
integer_range, float_range, long_range, double_range, date_range, ip_range
还有很多,在官网有详细说明
https://www.elastic.co/guide/en/elasticsearch/reference/7.8/mapping-types.html
3.2 Kibana添加索引模式
点开左侧菜单,选择[Stack Management]
点击[索引模式]->[创建索引模式]
输入之前在logstash中output中指定的index名
sg_toelk-*
选择@timestamp为时间筛选字段名称
然后,创建索引模式
3.3 数据的聚合
统计一段时间内某个数据的总和
例如,某个月份,各个IP总流量的排名
这就需要使用数据的聚合了
点击[Visualize]进入可视化页面
点击按钮[创建可视化]
选择[条形图]
选择数据源的index名,在索引模式中定义的索引名称
例如sg_toelk*
Y轴指定数据聚合
X轴指定ClientIP,并依据Y轴的数据进行降序排序
[大小]栏输入希望列出的值的数量,途中为前五名
点击右下角[更新],完成可视化数据的建立