问题标签 [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.
arrays - 如何使用 Logstash 剪切和删除数组中的元素
我在一个数组中有 Json 日志,如下所示:
我想从数组中删除前 3 个元素,并使用过滤器保留最后 4 个元素。
我有这个作为我的过滤器:
但是 Logstash 让自己陷入了错误
jdbc - 如何打印logstash执行的日志
我一直试图在网上搜索这个,但无法获得任何线索。有没有办法我们可以将logstash执行输出打印到日志文件?例如,我正在使用 jdbc 插件按照 sql_last_start 读取数据。我想知道查询执行的时间、响应的记录数以及下一次执行的时间。
假设一个表测试有以下列 [id,name,updated_on] 代码:
filter - 使用 Logstash 过滤器创建新字段
我已经开始编写自己的 Logstash-filter,基于 Github 上提供的示例过滤器:
我的新过滤器从名为Classficiation.jar
. 我想获取来自text
并基于它的值,对这些文本进行分类。这将需要创建一个新字段并在其中添加分类。
该操作应导致以下结果:
输入
输出
但是......我不确定我应该如何创建这个新领域。如您所见,该类采用一个参数,即文本。
我非常感谢有关如何为此 logstash 过滤器的输出创建新字段的指导。
谢谢你。
更新
我已按照@hurb 提供给我的说明进行操作,并编辑了我的文件,使其看起来像这样:
但是,这开始给我错误:
当我尝试包含t = Java::classficiation::Classficiation.new
在 中时filter
,它给了我错误:
dynamic constant assignment
这是为什么???
logstash - 将 FOR 语句与 Logstash 一起使用
我可以在 Logstash 中使用 For 语句吗?
如果是这样,怎么办?
我知道我们可以使用 IF 语句并且我一直在成功使用它
elasticsearch - Logstash-ES 数据检查
我目前正在使用 logstash-jdbc-plugin 从 DB 中提取数据并将其放入 ES 中的索引。如何检查从数据库中提取的全部数据是否已插入 Elastic Search 索引。
提取的数据以百万计,因此无法继续手动检查
logstash - 似乎 Logstash 在写入下一个事件之前不会处理最后一个事件/行
我是 logstash 的新手,在我动手的过程中,我可以看到 logstash 不处理日志文件的最后一行。
我的日志文件很简单,只有 10 行,我已经配置了过滤器来处理一个/两个字段并将 json 结果输出到一个新文件。
因此,当 logstash 运行时,我打开受监控的文件并在文件末尾添加一行并保存。没发生什么事。现在我再添加一行,前一个事件显示在输出文件中,下一个事件也是如此。
如何解决这种行为?我的用例/配置有问题吗?
elasticsearch - 无法使用绝对路径在 logstash 中侦听文件
我在路径上安装了 logstash:D:\WORK\ElasticSearch\logstash-2.0.0\bin,我的应用程序在路径上写入日志:D:\Logs
当我使用 logstash 路径通过此脚本加载日志“D:\WORK\ElasticSearch\logstash-2.0.0\bin”时,我能够阅读它。
input
{
file
{
path => ["\PlatformTest_*"]
#discover_interval - How often (in seconds) we expand the filename patterns in the path option to discover new files to watch
discover_interval => 20
#start_position - Choose where Logstash starts initially reading files: at the beginning or at the end
start_position => "beginning"
#stat_interval - How often (in seconds) we stat files to see if they have been modified.
stat_interval => 2
}
}
但是当我使用这个日志的真实路径时,它不起作用:
input
{
file
{
path => ["D:\Logs\PlatformTest_*"]
#discover_interval - How often (in seconds) we expand the filename patterns in the path option to discover new files to watch
discover_interval => 20
#start_position - Choose where Logstash starts initially reading files: at the beginning or at the end
start_position => "beginning"
#stat_interval - How often (in seconds) we stat files to see if they have been modified.
stat_interval => 2
}
}
另外,当我尝试相对路径时,它也不起作用:
input
{
file
{
path => ["\..\..\..\..\Logs\PlatformTest_*"]
#discover_interval - How often (in seconds) we expand the filename patterns in the path option to discover new files to watch
discover_interval => 20
#start_position - Choose where Logstash starts initially reading files: at the beginning or at the end
start_position => "beginning"
#stat_interval - How often (in seconds) we stat files to see if they have been modified.
stat_interval => 2
}
}
任何想法?
logstash - 如何让 Logstash Grok Fliter 查看换行符和回车符?
我正在尝试解析我们的日志文件并将它们发送到 elasticsearch。问题是我们的 S3 客户端将行注入到包含回车符 (\r) 而不是换行符 (\n) 的文件中。文件输入过滤器的配置使用 '\n' 作为分隔符,与 99% 的数据一致。当我针对这些数据运行 logstash 时,它错过了我真正想要的最后一行。这是因为文件输入过滤器将“\r”字符视为普通文本而不是换行符。为了解决这个问题,我尝试使用变异过滤器将“\r”字符重写为“\n”。mutate 有效,但 Grok 仍将其视为一条大线。和 _grokparsefailure。
我的“正常”日志文件按预期行 Grok。
配置
输入
输入文件中的这个示例说明了这个问题。^M 字符是 vim 显示 '\r' 回车的方式('more' 隐藏了大部分)。我保留了这一行,因此您可以看到整个内容在 linux 和 File Plugin 中显示为单行文本。
输出
我需要 grok 来解析这一行,因为它是换行符 '\n'。有人知道怎么修这个东西吗?
logstash - 如何根据动态标识符为来自不同进程线程的交错日志行编写logstash多行
虚拟日志文件:
多行合并具有相同 ID 的行并视为单个事件的预期结果。
logstash - 如何使 Logstash 以实时方式将新添加/记录的内容解析为文件输入
我正在阅读Logstash 参考 [1.5] 的 Logstash 配置示例部分中的处理 Apache 日志示例。其中一句话是:
“记录到此文件的任何其他行也将被捕获,由 Logstash 作为事件处理,并存储在 Elasticsearch 中。”
我正在尝试通过在 Logstash 关闭尚未完成时向正在监视的日志文件中再添加一行来实现它。这基本上就是我在问题标题中所说的“实时”的意思。
以下是我实际尝试过的方法:
步骤 1. 将 logstash-apache.conf 传递给 Logstash
我使用的 Logstash 版本是 1.5.4。logstash-apache.conf的代码是:
conf 文件与示例几乎相同。但是,根据阅读网站上的说明,“apache_access”的类型被添加到文件输入插件中,而不是被放入 mutate 过滤器插件中。请将文件输入插件中的路径替换为您的。
为方便起见,此处提供了示例日志:
经过Logstash的处理,standard out有3个rubydebug格式的结果,在上传的图片中可以看到(当然这3个在Elasticsearch中也有索引): rubydebug格式的standard out中出现的3个结果的图片Logstash 的处理
请注意,此时 conf 文件生成的管道尚未关闭。
步骤 2. 使用服务器中的文本编辑器在文件中再添加一行日志并保存更改
这是我添加的行,应该是日志文件中的第 4 行:
完成此操作后,我希望在标准输出中显示更多结果,因为我相信文件输入插件可以配置为这样做,因为同一参考中的文件输入插件部分说:
该插件旨在跟踪更改的文件并在附加到每个文件时发出新内容。
不幸的是,什么也没发生。
我是在错误的轨道上,并且做错了整个事情吗?如果没有,这里的任何人都可以帮助我实现我打算做的事情,并可能解释其背后的机制吗?任何帮助将不胜感激。