logstash的使用

背景:想要通过logstash将以txt结尾的文件数据导入到es中,这种TXT文件每天都会生成,然后将增量的TXT文件加载到es中,之前没用过,做个记录

ES中的表结构如下
{"user_name" : {"aliases" : { },"mappings" : {"properties" : {"@timestamp" : {"type" : "date"},"@version" : {"type" : "text","fields" : {"keyword" : {"type" : "keyword","ignore_above" : 256}}},"age" : {"type" : "keyword"},"height" : {"type" : "text","index" : false},"hobby" : {"type" : "text","index" : false},"host" : {"type" : "text","fields" : {"keyword" : {"type" : "keyword","ignore_above" : 256}}},"message" : {"type" : "text","fields" : {"keyword" : {"type" : "keyword","ignore_above" : 256}}},"name" : {"type" : "text"},"path" : {"type" : "text","fields" : {"keyword" : {"type" : "keyword","ignore_above" : 256}}},"tags" : {"type" : "text","fields" : {"keyword" : {"type" : "keyword","ignore_above" : 256}}},"weight" : {"type" : "text","index" : false}}},"settings" : {"index" : {"routing" : {"allocation" : {"include" : {"_tier_preference" : "data_content"}}},"number_of_shards" : "1","provided_name" : "user_name","creation_date" : "1706495322364","number_of_replicas" : "1","uuid" : "kUQ4w30sSN-clEGZg4YaQg","version" : {"created" : "7100299"}}}}
}
原始文件的格式如下
[root@hcss-ecs-04be data_to_es]# cat data.txt
{"name":"wzx","age":"37","weight":"70kg","height":"175cm","hobby":"basketball"}
{"name":"lhc","age":"50","weight":"80kg","height":"180cm","hobby":"dugujiujian"}
{"name":"rwx","age":"60","weight":"85kg","height":"165cm","hobby":"xixingdafa"}
logstash.conf的配置文件如下
input {file {path => "/usr/local/soft/data_to_es/data.txt"start_position => "beginning"sincedb_path => "/dev/null"codec => json {charset => "UTF-8"}}
}filter {json {source => "message"}
}output {elasticsearch {hosts => ["localhost:9200"]user => "elastic"password => "es123!@#"index => "user_name"}
}
执行logstash,结果显示如下,可以看到数据不是按es创建的索引结构加载进来的,而是都加载到了message 这个字段
"hits" : [{"_index" : "user_name","_type" : "_doc","_id" : "t71VU40BV6_zhd5-n9uY","_score" : 1.0,"_source" : {"message" : """{"name":"wzx","age":37","weight":"70kg","height":"175cm","hobby":"basketball"}""","@timestamp" : "2024-01-29T03:48:56.645Z","tags" : ["_jsonparsefailure"],"path" : "/usr/local/soft/data_to_es/data.txt","@version" : "1","host" : "hcss-ecs-04be"}},
修改logstash.conf的配置文件如下

主要是加了JSON格式的类型type=》json

input {file {path => "/usr/local/soft/data_to_es/data.txt"start_position => "beginning"sincedb_path => "/dev/null"type => "json"codec => json {charset => "UTF-8"}}
}filter {json {source => "message"}
}output {elasticsearch {hosts => ["localhost:9200"]user => "elastic"password => "es123!@#"index => "user_name"}
}
再次去看es中添加的数据,已经没问题了
   {"_index" : "user_name","_type" : "_doc","_id" : "u71ZU40BV6_zhd5-GdvK","_score" : 1.0,"_source" : {"hobby" : "xixingdafa","@version" : "1","@timestamp" : "2024-01-29T03:52:44.571Z","path" : "/usr/local/soft/data_to_es/data.txt","weight" : "85kg","height" : "165cm","name" : "rwx","host" : "hcss-ecs-04be","age" : "60"}},
数据看着是进来了,但是有些字段,我们是用不到的,例如@version、path、host,怎么去掉呢?在conf中配置如下
filter {json {source => "message"}mutate{#删除无效的字段remove_field => ["@version","message","host","path"]}
}
数据进来了,字段也格式化好了,现在的问题是,怎么实时的监听增量的文件

在conf中配置如下,这样就实现自动更新数据到es集群上了
#可选项,logstash多久检查一下path下有新文件,默认15s
discover_interval => 30
#可选项,logstash多久检查一次被监听文件的变化,默认1s;
stat_interval => 5

input {file {path => "/usr/local/soft/data_to_es/data*.txt"start_position => "beginning"sincedb_path => "/dev/null"type => "json"codec => json {charset => "UTF-8"}#可选项,logstash多久检查一下path下有新文件,默认15sdiscover_interval => 30#可选项,logstash多久检查一次被监听文件的变化,默认1s;stat_interval => 5}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/656465.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大模型学习与实践笔记(十四)

使用 OpenCompass 评测 InternLM2-Chat-7B 模型使用 LMDeploy 0.2.0 部署后在 C-Eval 数据集上的性能 步骤1:下载internLM2-Chat-7B 模型,并进行挂载 以下命令将internlm2-7b模型挂载到当前目录下: ln -s /share/model_repos/internlm2-7b/ ./ 步骤2&…

git Filename too long

git Filename too long 原因: 文件名限制260长度 解决:全局配置git git config --system core.longpaths true查看: git config --get core.longpaths

音频分离软件有哪些?这些软件轻松分离

音频分离软件有哪些?随着音频处理需求的日益增长,音频分离软件成为了许多人的必备工具。为了满足这些需求,市面上涌现出了许多优秀的音频分离软件。本文将为您介绍5款知名的音频分离软件,让您轻松实现音频处理。 1.口袋视频转换器…

SQL盲注漏洞

在进行SQL注入攻击时,若确定有注入点但因页面没有回显位来显示数据, 导致无法获取有效信息时,就要进行SQL盲注。 5.3.1 简介 目前常用的SQL盲注主要分以下两类: 基于布尔的盲注:当页面没有回显位、不会输出SQL语句报…

股票是什么

一、证券是什么 有价证券,简称证券,是一种表示财产权的有价凭证,持有者可以依据此凭证,证明其所有权或债权等私权。例如:股票、债券等。 二、股票概念 (一)股票是什么? 股票是一种…

前端网站website

​1. 翻页组件 翻页参考网址 中国电影电视技术学会 插件地址 http://www.turnjs.com/ 2.人机验证组件 vue-puzzle-vcode https://gitee.com/beeworkshop/vue-puzzle-vcode?_fromgitee_search 3.图片剪裁 图片裁剪 官网:https://github.xyxiao.cn/vue-cropper/ …

Linux ---- Shell编程之正则表达式

一、正则表达式 ​ 由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能,类似于增强版的通配符功能,但与通配符不同,通配符功能是用…

Boost.Test-如何将测试套件(源码文件)组织成工程、并执行测试

Boost.Test资源及示例的续篇 1.测试套件TestSuite的源码文件组织如下图 2.CMakeLists.txt需要自己编写,本例内容如下 cmake_minimum_required(VERSION 3.5.0 FATAL_ERROR) project(mytestmodule) enable_testing()# indicates the location of the boost instal…

OAK深度相机主机时钟同步提升10倍!

编辑:OAK中国 首发:oakchina.cn 喜欢的话,请多多👍⭐️✍ 内容可能会不定期更新,官网内容都是最新的,请查看首发地址链接。 ▌前言 Hello,大家好,这里是OAK中国,我是Ash…

近期作业总结(函数,递归,二进制)

二分查找函数 写一个二分查找函数 功能&#xff1a;在一个升序数组中查找指定的数值&#xff0c;找到了就返回下标&#xff0c;找不到就返回-1。 int bin_search(int arr[], int left, int right, int key) {int mid 0;while (left < right) {mid (right left) / 2;if…

【JavaScript】两种方法实现继承

JS继承-ES6-基于 class 实现继承 mdn 类 阮一峰 ES6-class mdn-super ES6中推出了class类,是用来创建对象的模板。 class可以看作是一个语法糖,它的绝大部分功能&#xff0c;ES5 都可以做到&#xff0c;新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已…

【pytest系列】- assert断言的使用

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

【AI视野·今日Robot 机器人论文速览 第七十六期】Fri, 12 Jan 2024

AI视野今日CS.Robotics 机器人学论文速览 Fri, 12 Jan 2024 Totally 12 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Robotics Papers Topology-Driven Parallel Trajectory Optimization in Dynamic Environments Authors Oscar de Groot, Laura Ferranti, Dari…

WPOpenSocial实现WordPress的QQ登录

个人建站不可避免的需要自己搭建用户数据库的问题&#xff0c;可用户却往往因为注册繁琐而放弃浏览您的网站&#xff0c;由此可见&#xff0c;一个社交账号一键登录方式尤为重要。选择适合您网站需求的社交插件&#xff0c;可以提升用户互动&#xff0c;增加社交分享&#xff0…

分布式场景怎么Join

背景 最近在阅读查询优化器的论文&#xff0c;发现System R中对于Join操作的定义一般分为了两种&#xff0c;即嵌套循环、排序-合并联接。 考虑到我的领域是在处理分库分表或者其他的分区模式&#xff0c;这让我开始不由得联想我们怎么在分布式场景应用这个Join逻辑&#xff…

《Linux C编程实战》笔记:管道

从这节开始涉及进程间的通信&#xff0c;本节是管道。 管道是一种两个进程间进行单向通信的机制。因为管道传递数据的单向性&#xff0c;管道又称之为半双工管道。。管道的这一特点决定了其使用的局限性。 数据只能由一个进程流向另一个进程&#xff1b;如果要进行全双工通信…

计算机组成原理学习| Day1

学习目标&#xff1a; 博主介绍: 27dCnc 专题 : 计算机组成原理 &#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d; ☆*: .&#xff61;. o(≧▽≦)o .&#x…

分享4款不能错过的修改照片尺寸的软件!

在当今这个数字化时代&#xff0c;照片已经成为我们分享生活、表达观点的重要方式。但是&#xff0c;你是否曾遇到过这样的问题&#xff1a;一张精美的照片因为尺寸不合适而无法在朋友圈中展现出最佳效果&#xff1f;不用担心&#xff0c;今天我们就来聊聊那些可以帮助你轻松修…

获取鼠标点击图片时候的坐标,以及利用html 中的useMap 和area 实现图片固定位置的点击事件

一 编写原因 应项目要求&#xff0c;需要对图片的固定几个位置分别做一个点击事件&#xff0c;响应不同的操作&#xff0c;如下图&#xff0c;需要点击红色区域&#xff0c;弹出不同的提示框&#xff1a; 二 获取点击图片时候的坐标 1. 说明 实现这以上功能的前提是需要确定需…

JVM-类的生命周期

类的生命周期概述 类的生命周期描述了一个类加载、使用、卸载的整个过程。整体可以分为&#xff1a; 加载 连接&#xff0c;其中又分为验证、准备、解析三个子阶段 初始化 使用 卸载 加载阶段 加载(Loading)阶段第一步是类加载器根据类的全限定名通过不同的渠道以二进制流的方…