相关文章推荐
愉快的夕阳  ·  mongodb查询不重复的数据_mob64c ...·  6 月前    · 
痛苦的帽子  ·  CoreWebView2.CapturePr ...·  9 月前    · 
卖萌的烤地瓜  ·  mysql前缀索引及其选择「建议收藏」-腾讯 ...·  1 年前    · 
奔跑的鸭蛋  ·  如何在使用 Vue.js 的网站上安装 ...·  1 年前    · 
眉毛粗的豆浆  ·  数据透视表-切片器:实现多个透视表联动·  1 年前    · 
Code  ›  Elasticsearch 进阶篇(二十八)Logstash讲解与实战开发者社区
elasticsearch 时间戳 logstash
https://cloud.tencent.com/developer/article/1597183
安静的柚子
1 年前
作者头像
南非骆驼说大数据
0 篇文章

腾讯云 Elasticsearch 进阶篇(二十八)Logstash讲解与实战

原创
前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 南非骆驼说大数据 > 正文

腾讯云 Elasticsearch 进阶篇(二十八)Logstash讲解与实战

原创
修改 于 2020-03-13 23:47:52
1.2K 0
举报

本节我们接着上一节主题的来讲,在上面的章节中,我们将日志标准输入--标准输出后,发现日志,按照我们lostash配置文件的内容将Message日志分成了5个字段。那么我们来分析一下这个过滤输出结果:

输入 :日志内容 “192.168.1.111 [07/Feb/2019:16:24:19 +0800] \"GET / HTTP/1.1\" 403 5039”

输出结果如下:

logstash输出

那么我们分析一下这个字段内容,以及这段内容有没有什么问题??

1,我们发现这个字段内容里有message字段,而实际这个字段内容已经被分成了5个字段进行存储了,那么我们就不需要这个字段了。

2,从上面的输出内容中我们发现,还有一个问题,就是有两个时间戳问题。@timestamp 和 timestamp,这两个名词我们诠释一下: @timestamp表示logstash收集到这条信息的时间。就是说Logstash收集到日志后进行过滤开始的时间。而timestamp表示输入日志产生的时间,就是指这条日志产生的真实时间。那么,这两个时间我们需要哪条呢?显然,我们需要日志产生的时间。而不是收集日志的时间。但是我们在es上进行数据分析排序的时候,我们的字段是根据@timestamp来进行排序的。所以,我们要把timestamp里的时间字段的内容赋予给@timestamp时间字段。

所以,我们需要改一下配置文件 。如下

修改配置文件

接下来,我们再次启动Logstash服务,输入日志,再次输出,看结果:

日志输出

但是我们发现还有问题,就是@timestamp与timestamp时间现在相同了,所以,要去掉一个字段。怎么删除呢?还是需要改配置文件。如下:

移除字段

那么这样,我们就将时间字段给删除了。我们看一下效果

输出结果

那么以上,就是一个比较正确的结构化日志信息了。

二、时间插件(Date)

date插件是对于排序事件和回填旧数据尤其重要,它可以用来转换日志记录中的时间字段,变成LogStash::Timestamp对象,然后转存到 @timestamp 字段里,这在之前已经做过简单的介绍。我们的ELK系统中的时间信息是通过@timestamp来流转的。也就是说只有这个字段才是被认可的。

filter {

grok {

match => ["message", "%{HTTPDATE:timestamp}"]-------》将message字段的时间信息根据匹配模式分出时间为timestamp。

}

date {

match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"]----》将timestamp字段经过右边的时间格式化后传给@timestamp字段

}

}

提供时间格式内容表 重点关注ZZ格式的意义

时间插件的格式含义

三、数据修改(Mutate)

(1)正则表达式替换匹配字段 关于mutate插件中gsub插件的示例

filter {

mutate {

gsub => ["filed_name_1", "/" , "_"]

}

}

这个示例表示将filed_name_1字段中所有"/"字符替换为"_"。

对message中的内容中的所有/下划线全部换成_.我们看一下结果:

(2)分隔符分割字符串为数组

split可以通过指定的分隔符分割字段中的字符串为数组,下面是一个关于mutate插件中split的示例(仅列出filter部分):

filter {

mutate {

split => ["filed_name_2", "|"]

}

}

这个示例表示将filed_name_2字段以"|"为区间分隔为数组。

好,看一下配置文件:

配置文件

我们接下来输入这个日志: 192.168.1.111 |[07/Feb/2019:16:24:19 +0800]| \"GET| / HTTP/1.1\" |403 5039

看输出:

这就是分隔符的功能。对字段的内容进行分隔,形成数组。

(3)rename重命名

filter {

mutate {

rename => { "old_field" => "new_field" }

}

}

(4)删除字段

remove_field可以实现删除某个字段的功能,下面是一个关于mutate插件中remove_field的示例(仅列出filter部分):

filter {

mutate {

remove_field => ["timestamp"]

}

}

(5)GeoIP 地址查询归类

GeoIP是最常见的免费IP地址归类查询库,当然也有收费版可以使用。GeoIP库可以根据IP 地址提供对应的地域信息,包括国别,省市,经纬度等,此插件对于可视化地图和区域统计非常有用。

下面是一个关于GeoIP插件的简单示例(仅列出filter部分)::

filter {

geoip {

source => "ip_field"

}

}

其中,ip_field字段是输出IP地址的一个字段。

四、总结

那么本节我们讲了Logstash filter插件的 Date Mutate插件,包括前面的grok插件,我们已经讲完了3个最实际常用的插件。那么,希望大家多去动手实际操作一下,非常重要。

点击展开阅读全文

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

unix
tcp/ip
http
网站
javascript
登录 后参与评论
关于作者
0
文章
0
累计阅读量
0
获赞
前往专栏
关注 - 腾讯云 开发者 公众号
将获得
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
扫码关注腾讯云开发者
NEW
切换旧版
领券
  • 社区

    • 专栏文章
    • 阅读清单
    • 互动问答
    • 技术沙龙
    • 技术视频
    • 团队主页
    • 腾讯云TI平台
  • 活动

    • 自媒体分享计划
    • 邀请作者入驻
    • 自荐上首页
    • 技术竞赛
  • 资源

    • 技术周刊
    • 社区标签
    • 开发者手册
    • 开发者实验室
  • 关于

    • 社区规范
    • 免责声明
    • 联系我们
    • 友情链接

腾讯云开发者

扫码关注腾讯云开发者

扫码关注腾讯云开发者

领取腾讯云代金券

热门产品

  • 域名注册
  • 云服务器
  • 区块链服务
  • 消息队列
  • 网络加速
  • 云数据库
  • 域名解析
  • 云存储
  • 视频直播

热门推荐

  • 人脸识别
  • 腾讯会议
  • 企业云
  • CDN加速
  • 视频通话
  • 图像分析
  • MySQL 数据库
  • SSL 证书
  • 语音识别

更多推荐

  • 数据安全
  • 负载均衡
  • 短信
  • 文字识别
  • 云点播
  • 商标注册
  • 小程序开发
  • 网站监控
  • 数据迁移

Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有

深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569

腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287

问题归档 专栏文章 快讯文章归档 关键词归档 开发者手册归档 开发者手册 Section 归档
 
推荐文章
愉快的夕阳  ·  mongodb查询不重复的数据_mob64ca12e51ecb的技术博客_51CTO博客
6 月前
痛苦的帽子  ·  CoreWebView2.CapturePreviewAsync Method (Microsoft.Web.WebView2.Core) | Microsoft Learn
9 月前
卖萌的烤地瓜  ·  mysql前缀索引及其选择「建议收藏」-腾讯云开发者社区-腾讯云
1 年前
奔跑的鸭蛋  ·  如何在使用 Vue.js 的网站上安装 Matomo 跟踪代码?-腾讯云开发者社区-腾讯云
1 年前
眉毛粗的豆浆  ·  数据透视表-切片器:实现多个透视表联动
1 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号