广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >windows 下logstash读取文件的坑
  • 854
分享到

windows 下logstash读取文件的坑

2024-04-02 19:04:59 854人浏览 泡泡鱼
摘要

上一篇文章介绍了在windows上搭建简单的elk环境的过程,但是在input的部分只用到了stdin()的功能,我们做elk监视日志肯定不可能这么简单,所以考虑将input的内容改为监视ng的access.log文件。由于网上相关资料比较

上一篇文章介绍了在windows上搭建简单的elk环境的过程,但是在input的部分只用到了stdin()的功能,我们做elk监视日志肯定不可能这么简单,所以考虑将input的内容改为监视ng的access.log文件。由于网上相关资料比较少,踩坑无数, 这篇主要记录在导入数据时候踩到的坑。废话不多说直接进入正题

logstash导入的数据必须是es上已存在的索引

这个是最简单也是最先遇到的问题,解决办法也很简单:直接去es上创建一个索引。至于创建索引我用的是elasticsearch-head插件直接创建索引
image.png
创建完的logstash.conf如下

input {
  file {
      path => ["C:\PHPStudy\phpTutorial\Nginx\logs\error.log"]
  }
}

output {
  elasticsearch {
    hosts => ["Http://localhost:9200"]
    index => "logstash-2020.10.09_errorlogs"
  }
}

windows下文件目录写法问题

第二个问题也很容易想到反正windows环境下文件读取不到一定是你把斜杠写成了反斜杠,做下修改之后的conf文件

input {
  file {
      path => ["C:/phpStudy/PHPTutorial/nginx/logs/error.log"]
  }
}

output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "logstash-2020.10.09_errorlogs"
  }
}

文件读取位置不正确

如果你要读取一个已经有内容的日志文件,然后上面两个方法用过了之后你的索引下还是空的。那么你可以试试在input中加入

 start_position => "beginning"

因为logstash默认设置start_position的值为end,也就是只读取最新的更新内容。加上beginning会让logstash从头读取文件。
修改过后我们的conf文件如下

input {
  file {
      path => ["C:/phpStudy/PHPTutorial/nginx/logs/error.log"]
      start_position => "beginning"
  }
}

output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "logstash-2020.10.09_errorlogs"
  }
}

sincedb通道的问题

这是一个隐藏很深的问题,如果我们的conf文件如上面一样配置完后理论上应该可以执行了,但很多时候logstash依然卡在

 Successfully started Logstash api endpoint {:port=>9600}

然后发现文件内容并没有写入es,这种情况可能导致的原因是:这个管道已经在一个点运行,从而生成一个sincedb 文件。所以当我们重复操作同一个文件进行调试时可以将每次生成的sincedb文件删除。而且当我们启动和关闭logstash时logstash都会为你创建这个文件,所以记得确保当你去启动logstash时这个sincedb文件是不存在的。

读取不到最后一行的问题

在成功读取到了文件后,我尝试对access.log文件做了一些修改操作来查看elk实时监控日志文件的功能是否正常运作然后发现:能成功找到文件.png
但是似乎每次修改完都无法读取最后一条的内容:读取文件无法读取最后一行.png
网上找了很多资料,问题似乎出在logstash并不知道你是否已经更新完最后一行内容,所以解决办法就是在每行最后插入一个换行符。
不过ng的日志好像默认会插入,反正按照正常的操作流程并不会出现读取不到最后一行的问题,所以不再深究

后记

以上是我根据自己的问题整理的一些windows下常见的logstash踩得坑,以后如果还有其他问题我会继续更新,有什么问题可以在评论区讨论。
好了,就这么多了~

--结束END--

本文标题: windows 下logstash读取文件的坑

本文链接: https://www.lsjlt.com/news/99250.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • windows 下logstash读取文件的坑
    上一篇文章介绍了在windows上搭建简单的elk环境的过程,但是在input的部分只用到了stdin()的功能,我们做elk监视日志肯定不可能这么简单,所以考虑将input的内容改为监视ng的access.log文件。由于网上相关资料比较...
    99+
    2022-10-22
  • SpringBoot部署到Linux读取resources下的文件及遇到的坑
    下面看下SpringBoot工程在Linux上运行读取resources资源文件夹下的文件 背景 平时的业务开发中,我们通常会将一些固定不变的资源文件放到resources文件夹下,...
    99+
    2022-11-12
  • Python读取大文件的"坑“与内存占用
    python读写文件的api都很简单,一不留神就容易踩”坑“。笔者记录一次踩坑历程,并且给了一些总结,希望到大家在使用python的过程之中,能够避免一些可能产生隐患的代码。 1.read()与readlines(): 随手搜索pyt...
    99+
    2023-01-30
    大文件 内存 Python
  • 解读classpath读取resources目录下的文件
    目录classpath读取resources目录下文件1、class.getResource()2、getClassLoader().getResource()4、批量读取5、如果配...
    99+
    2023-01-12
    classpath resources 读取resources目录下文件 classpath读取resources下文件
  • springboot如何读取resources下的文件
    今天小编给大家分享一下springboot如何读取resources下的文件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。项...
    99+
    2023-07-02
  • java怎么读取resource下的文件
    在Java中,可以使用以下代码读取`resources`目录下的文件:```javaimport java.io.IOExcepti...
    99+
    2023-09-13
    java
  • SpringBoot 如何读取classpath下的文件
    SpringBoot 读取classpath下文件 开发过程中,必不可少的需要读取文件,对于打包方式的不同,还会存在一些坑,比如以jar包方式部署时,文件都存在于jar包中,某些读取...
    99+
    2022-11-12
  • windows下如何读取Linux分区软件
    这篇文章将为大家详细讲解有关windows下如何读取Linux分区软件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在Linux系统中etx3被广泛使用,被很多Linux版本设置为默认的版本...
    99+
    2023-06-28
  • SpringBoot如何读取Resource下文件
    这篇文章给大家分享的是有关SpringBoot如何读取Resource下文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。SpringBoot读取Resource下文件最近在项目中涉及到Excle的导入功能,通常...
    99+
    2023-06-20
  • vba怎么循环读取文件夹下的文件
    在VBA中,可以使用`Dir`函数来循环读取文件夹下的文件。下面是一个示例代码,演示了如何循环读取文件夹下的文件并输出文件名到Exc...
    99+
    2023-09-15
    vba
  • kettle怎么读取文件夹下所有文件
    要读取文件夹下的所有文件,可以使用python中的os模块和os.walk()函数来实现。以下是一个示例代码:```pythonim...
    99+
    2023-09-20
    kettle
  • java怎么读取zip文件下的照片
    要读取zip文件中的照片,可以使用Java的java.util.zip包中的ZipFile类来操作。 首先,需要使用ZipFile类...
    99+
    2023-10-23
    java
  • SpringBoot读取Resource下文件的4种方法
    SpringBoot读取Resource下文件 最近在项目中涉及到Excle的导入功能,通常是我们定义完模板供用户下载,用户按照模板填写完后上传;这里待下载模板位置为resource...
    99+
    2022-11-12
  • springboot读取resources下文件的方式详解
    项目中很多时候需要读取自定义配置文件,本地开发工具怎么写都成功但是部署到服务其上就出现问题, 异常BOOT-INF/classes!/config.xml (文件名、目录名或卷标语法...
    99+
    2022-11-13
  • 读取android根目录下的文件或文件夹实例
    最近几天真的是各种意义上的忙,忙着考试,还要忙着课程设计,手上又有外包的项目,另一边学校的项目还要搞,自己的东西还在文档阶段,真的是让人想死啊!! 近半个月来,C#这方面的编码...
    99+
    2022-06-06
    Android
  • android文件操作——读取assets和raw文件下的内容
    来自Resources和Assets 中的文件只可以读取而不能进行写的操作。 assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式...
    99+
    2022-06-06
    raw文件 Android
  • Python读取文件夹下的所有文件实例代码
    Python读取文件夹下的所有文件  os.listdir(path)是得到在path路径下所以文件的名称列表。      open...
    99+
    2022-11-12
  • windows如何获取目录下的文件名
    Windows可以使用以下方法来获取目录下的文件名:1. 使用命令行工具:在命令提示符窗口中,使用`dir`命令可以列出当前目录下的...
    99+
    2023-09-28
    windows
  • android读取sdcard路径下的文件的方法
    代码如下:// 读取sdcard文件private void sdcardRead(){String fileName = "/sdcard/my_sdcard.txt";/...
    99+
    2022-06-06
    方法 Android
  • Linux下怎么使用Python读取文件
    这篇文章主要介绍“Linux下怎么使用Python读取文件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux下怎么使用Python读取文件”文章能帮助大家解决问题。不论是数据分析,数据可视化,...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作