公司业务需要将应用的日志(json格式)写入到es中,使用kafka做缓冲,logstash进行字段过滤
自己造的json格式:

{"date":"2019-07-31 10:09:16.674","level":"INFO7","userCode":"3434343","clientIp":"192.168.200.57","clientId":"12","hostName":"192.168.210.57","requestURL":"http://","logger":"Sample","msg":{"我是":"address","birthday3":"天气真好","birthda1":"2019-02-03","birthda3":"2019-03-05","birthda2":"2019-12-05","content":"<s>sdfjdki</s><sdfd>
</sdfd>
dfdfdfd"}}

json有换行,进入到kafka中时显式的是\n,实际日志中是看不到\n的,在logstash的filter中gsub 使用的\n 、\x0a等多种方式都没有成功,最后无意中发现一种方式可以解决:

logstash采用的是6.8.0
情况一: 日志中有显式的\n

filter {
 mutate {
          gsub => ["message","\\n",""] 
          # 显式的采用此种方法替换

情况二: 日志中无显式的\n 仅仅是显示换行(肉眼看不到)

filter {
 mutate {
          gsub => ["message","
",""] 
#此处特别注意 !!! 您没有看错,这个地方不是写错了,是一个真真正正的换行符(直接在双引号中间敲了一个回车)
#替换\n ,采用\\n是不行的,需要在这里输入一个回车,因为原始log文档里没有显式的出现\n 而是看不见的回车,所以这里也要采用看不见的回车进行处理

#此处特别注意 !!! 您没有看错,这个地方不是写错了,是一个真真正正的换行符(直接在双引号中间敲了一个回车) 执行后替换成功!!

替换\n ,采用\n是不行的,需要在这里输入一个回车,因为原始log文档里没有显式的出现\n 而是看不见的回车,所以这里也要采用看不见的回车进行处理

由于logstash内存占用较大,灵活性相对没那么好,ELK正在被EFK逐步替代.其本文所讲的EFK是Elasticsearch+Fluentd+Kfka,实际上K应该是Kibana用于日志的展示,这一块不做演示,本文只讲述数据的采集流程. docker docker-compose apache kafka服务 数据采集流程 数据的产生使用cadvisor采集容器的监控数据并将数据传输到Kafka. 数据的传输链路是这样: Cadvisor->Kafka->Fluentd->elasticsearch 每一个服务都可以横向扩展,添加服务到日志系统. 1.filebeat收集需要提取的日志文件,将日志文件转存到kafka集群logstash处理kafka日志,格式化处理,并将日志输出到elasticsearch,前台页面通过kibana展示日志。 2.使用kafka集群做缓存层,而不是直接将filebeat收集到的日志信息写入logstash,让整体结构更健壮,减少网络环境,导致数据丢失。filebeat负责将收集到的数据写入kafkalogstash取出数据并处理。 kibana又如何用直观的显示我们希望看到的日志报表? 根据数据显示看板,大致三步, 第一步是设置数据源,根据我们之前推送给elasticsearch的日志数据,使用management标签创建索引模式; 第二步根据第一步创建的索引模式,使用Visualize 标签页用来设计可视化图形; 第三步根据第二步做好的可视化图形,使用Dashboard标签来配置我们的看板 一、下面我们开始做第一步,创建索引: 目前有两天的数据,我们创建一个能包含这两天数据的索引模式:  创建好索引模式后,点击“Discover”标签后就可以看到我们创建的“errinfo-scm” Elasticsearch使用手册,使用Elasticsearch进行基础查询,高级查询,使用Python调用Elasticsearch,同步数据库的数据到Elasticsearch,使用第三方服务将将Elasticsearch与数据库日志关联,若数据库改变则Elastic search数据同步变化 本次我们搭建的目标是通过ELK来收集微服务的日志。本期主要以实操、快速搭建为主进行讲解,部分基础概念不做过多描述,后续会再单独出几期博客说明 首先我们要部署的架构如下图所示,需要收集两个微服务的日志,并且最终在kibana可视化呈现出来。 可以看出日志的传输路线是:微服务产生日志,并将日志数据保存到磁盘的.log文件filebeat监听log文件,将其数据收集并结构化后传输到logstash上,logstash将日志进行过滤收集,再传输到elasticsearch上,elast 哈喽,everybody,这是go-elastic学习系列教程第二篇文章。上一篇我们学习了ElasticSearch基础,如果还不懂基础的,可以先看一看上一篇文章,传送门。这一篇我们开始实战,写了一个小demo,带你们轻松入门ElasticSearch实战开发,再也不用担心es部分的需求开发了。代码已上传github,可自行下载学习。如果能给一个小星星就好啦。好啦,废话不多说,直接开始吧。 github地址:https://github.com/asong2020/Golang_Dream/tree 官网:https://www.elastic.co/cn 官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html 官方文:https://www.elastic.co/guide/cn/elasticsearch/guide/current/foreword_id.html 社区文: https://es.xiaoleilu.com/index.html http://doc.codingdict.c POST mall/_doc/_bulk { "index":{} } { "goods_name":"苹果","goods_price":10.0,"goods_description":"新鲜苹果,10元一斤" } { "index":{} } { "goods_name":"梨子"...