问题标签 [logstash-file]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
logstash - logstash 如何识别和解析新创建的日志文件?
我是 ELK 的新手,目前我面临以下问题。我希望 logstash 解析一些服务器日志文件。每天,都会创建一个新的日志文件,它具有以下命名格式:file160629.log(其中 160629=当前日期)这是我的配置输入:
但看起来,它无法识别新的日志文件。有人能告诉我我做错了什么吗?
先感谢您。
logstash - Logstash 始终在 PipeLine 中保留一条消息
我正在使用 Logstash 从文件中读取和解析日志,并将它们发送到基于 Rest 的 API。我的托运人工作正常,但我遇到了一种奇怪的行为。
问题:
当 Logstash shipper 解析第一个日志条目时,它不会发送它,而是将它保存在管道中。当它解析第二个日志条目时,它会将第一个日志条目发送到 API。因此,一条消息始终保留在管道中,并且不会发送到我的 API。
每当我停止我的 Logstash 托运人进程时,它也会发送最后一条剩余的消息。所以,从某种意义上说,没有信息丢失,但托运人总是落后一条信息。
问题: 为什么 Logstash 无法在收到消息后立即刷新其管道并将消息发送到 API。
logstash - 日期的 Grok 模式
我的日志中有日期:
2016 年 7 月 8 日 08:58:07,258 ...
目前我正在使用:
解析它。
如何将其转换为日期类型。当我们有一个现有的 grok 模式时,我知道如何使用“日期”来做到这一点,但在我的情况下如何做到这一点?
logstash - grok过滤器在logstash中是如何工作的
我正在编写一个 Logstash 配置文件。
我有一个 grok 过滤器。我想知道 grok 过滤器中的匹配是如何工作的。
我参考了logstash方面的一个例子,看到了以下内容:
防爆日志:55.3.244.1 GET /index.html 15824 0.043
使用以下过滤器解析:
这意味着我们正在尝试按顺序匹配整个日志行?我的日志行不同。它们并不总是在适当的框架中。
它就像下面的那些:
我想捕获所有三种类型的行所以我应该编写不同的匹配过滤器吗?还是可以在一个匹配中分别捕获 source、destination、somedata 字段?
寻求这方面的信息。
是的,我确实了解正则表达式和 grok 模式的基础知识。但我仍然对如何为以下内容编写匹配块感到困惑。
假设我的日志文件中有这 3 行,我想捕获具有 b 和 g 值的行。我的匹配块会是什么样子?
这会捕获所有带有 b 和 g 的行吗?对于 b 它应该捕获 1 和 2 行。对于 g 它必须捕获 3。所以我的输出应该包含所有三行?这是它的工作原理还是会引发 grokparse 错误?
logstash - Logstash 中大型字典文件 (>10MB) 的错误文件描述符错误
我正在使用 logstash 过滤器插件处理的文件中有多个日志消息。然后,过滤后的日志将被发送到 elasticsearch。
日志消息中有一个名为 addID 的字段。我想删除所有存在特定 addID 的日志消息。这些特定的 addIDS 存在于 ID.txt 文件中。
如果日志消息的 addID 与 ID.txt 文件中存在的任何 addID 匹配,则应删除该日志消息。我正在使用红宝石过滤器来实现这一点。
场景:问题是,如果我使用的字典文件以 MB 为单位,那么当我手动停止管道时,logstash 挂起并且我收到错误的文件描述符错误。但是,如果我在 KB 中使用文件,一切正常。
我尝试将 LS_HEAP_SIZE 更改为 4g。没有什么对我有用。
谁能帮助我实现这一目标?
下面是我的配置文件。
json - Logstash:解析通过 twitter / facebook 等 Web 服务接收的 Json 数据时解析失败
我正在接收来自 Twitter 的 Web 服务数据,并记录到文件中,然后我需要将该数据发送到 Logstash,以便将这些数据编入 Elasticsearch 的索引。
我正在使用下面的配置,这给 jsonparsefailure 异常为
JSON 解析失败。回退到纯文本 {:error=>#> LogStash::Json::ParserError: Unexpected character (':' (code 58)): 期望 >valid 值(数字、字符串、数组、对象、'true' , '假' 或 '空')
我的 logstash conf 文件如下所示:
events.json 中的数据可以从https://dev.twitter.com/rest/reference/get/search/tweets引用,示例如下:
events.json
logstash - 从 logstash 中的旋转日志文件中读取
根据logstashfile
插件的文档,文件轮换部分说明如下:
要支持在旋转发生后一段时间内写入旋转文件的程序,请在文件名模式中包含原始文件名和旋转文件名(例如 /var/log/syslog 和 /var/log/syslog.1)观看(路径选项)。
如果有人可以阐明如何在path
配置中指定两个文件名,那将有很大帮助,因为我没有找到确切的示例。一些示例建议使用通配符,例如/var/log/syslog*
,但是我正在寻找一个能够完全实现文档中所述内容的示例 -path
选项中有两个文件名。
jdbc - 如何从 logstash 输出插件通过 JDBC 连接到 cockroachDB?
我正在使用 logstash 创建从 Postgres 到 CockroachDB 的管道。下面是配置。
输入插件(源是 postgres)工作正常。但我无法使用 JDBC 在输出插件(cockroachDB)中建立连接。我面临以下错误。
Destination(cockroachDB) 在指定的 ip 和端口打开连接。
由于 cockroachDB JDBC 连接字符串与 postgres 非常相似,我尝试了以下连接字符串,但仍然出现相同的错误。
如何从 logstash 输出插件通过 JDBC 连接到 cockroachDB?
logstash - 使用 logstash 从给定路径读取日志文件
现在运行 logstash 后,我无法在 logstash 命令窗口上看到任何输出。那就是给定文件中的日志没有获取。
我的 localhost_access_log.2016-08-24 日志文件中的一些示例日志如下:
输入代码或日期过滤代码有问题吗?谁能帮我在哪里犯错?
logstash - logstash 通用输出文件名
我想在一个logstash节点上收集多台服务器的日志。作为输出,我想为每台服务器存储一个文件。在日志中,我有一个“source_host”字段,它指示哪个服务器生成了日志。
作为输出,我想得到一堆以“source_host”命名的文件。源主机经常更改,所以我需要一个通用配置
例如,来自服务器“foo”的日志应该保存在 /logs/foo 中,来自服务器“bar”的日志应该保存在 /logs/bar
我尝试了这样的配置,但文件被命名为“%{source_host}”。使用 %{host} 时,文件获取收集服务器的主机名。