logstash问题

#logstach配置文件填写用户模式,输入格式无效。

输出的格式截图

img

logstash启动过程中的截图

img

配置文件路径:
/usr/local/logstash/config/first-pipelines.conf

配置文件内容:

img

logstash版本:7.13.2

预想测试出来的效果:

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/242858
  • 这篇博客你也可以参考下:解决Logstash安装插件失败的问题
  • 除此之外, 这篇博客: LogStash的安装与使用教程中的 文件输入配置选项 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    设置输入类型是否必须
    close_oldernumber or string_durationNO
    delimiterstringNO
    discover_intervalnumberNO
    excludearrayNO
    file_chunk_countnumberNO
    file_chunk_sizenumberNO
    file_completed_actionstring, one of [“delete”, “log”, “log_and_delete”]NO
    file_completed_log_pathstringNO
    file_sort_bystring, one of [“last_modified”, “path”]NO
    file_sort_directionstring, one of [“asc”, “desc”]NO
    ignore_oldernumber or string_durationNO
    max_open_filesnumberNO
    modestring, one of [“tail”, “read”]NO
    patharrayYes
    sincedb_clean_afternumber or string_durationNO
    sincedb_pathstringNO
    sincedb_write_intervalnumber or string_durationNO
    start_positionstring, one of [“beginning”, “end”]NO
    stat_intervalnumber or string_durationNO
    1. close_older
    • 值类型是number或string_duration
    • 默认值是“1 hour”

    文件输入将关闭上次读取指定持续时间的任何文件(如果指定了数字,则为秒)。这具有不同的含义,具体取决于文件是否被加尾或读取。如果拖尾,并且传入数据中存在大的时间间隔,则可以关闭文件(允许打开其他文件),但是在检测到新数据时将排队等待重新打开。如果读取,文件将在从最后一个字节被读取后的closed_older秒后关闭。

    1. delimiter
    • 值类型是字符串
    • 默认值是“\n”

    设置新行分隔符,默认为“\ n”。请注意,在读取压缩文件时,不使用此设置,而是使用标准的Windows或Unix行结尾。

    1. discover_interval
    • 值类型是数字
    • 默认值是15

    我们多长时间扩展path选项中的文件名模式以发现要观看的新文件。该值是倍数stat_interval,例如,如果stat_interval是“500 ms”,则可以每15 X 500毫秒 - 7.5秒发现新文件文件。在实践中,这将是最好的情况,因为需要考虑阅读新内容所花费的时间。

    1. exclude
    • 值类型是数组
    • 此设置没有默认值

    排除(与文件名匹配,而不是完整路径)。文件名模式在这里也是有效的。
    例如,如果你有path =>“/ var / log / *”

    在Tail模式下,您可能希望排除gzip压缩文件:
    exclude =>“* .gz”

    1. file_chunk_count
    • 值类型是数字
    • 默认值是4611686018427387903

    当与file_chunk_size组合时,该选项设置在移动到下一个活动文件之前从每个文件读取多少块(带或条纹)。例如,file_chunk_count为32和file_chunk_size 32KB将处理每个活动文件中的下一个1MB。由于默认值非常大,因此在移动到下一个活动文件之前,该文件被有效地读入EOF。

    1. file_chunk_size
    • 值类型是数字
    • 默认值为32768(32KB)

    以块或块的形式从磁盘读取文件内容,并从块中提取行。请参见file_chunk_count以了解为什么以及何时从默认设置更改此设置。

    1. file_completed_action
    • 值可以任何的:delete;log;log_and_delete
    • 默认是delete

    在read模式下,完成文件时应执行什么操作。如果删除指定那么该文件将被删除。如果指定了log,则文件的完整路径将记录到file_completed_log_path设置中指定的文件中 。如果log_and_delete指定,则执行上述两个操作。

    1. file_completed_log_path
    • 值类型是字符串
    • 此设置没有默认值

    应该将完全读取的文件路径添加到哪个文件中。只有当file_completed_action是log或log_and_delete时,才将此路径指定到文件。重要提示:此文件仅追加到-它可以变得非常大。你负责文件的轮换

    1. file_sort_by
    • 值可以是任何的:last_modified,path
    • 默认是last_modified

    应该使用“监视”文件的哪个属性对其进行排序。可以按修改日期或完整路径字母对文件进行排序。以前,已发现并因此“监视”的文件的处理顺序取决于操作系统。

    1. file_sort_direction
    • 值可以是任何的:asc;desc
    • 默认是asc

    在排序“监视”文件时,在升序和降序之间进行选择。如果最早的数据首先是重要的,那么默认值last_modified+ asc是好的。如果最新的数据首先更重要,那么选择last_modified+ desc。如果对文件完整路径使用特殊命名约定,则可能 path+ asc将有助于控制文件处理的顺序。

    1. ignore_older
    • 值类型是number或string_duration
    • 此设置没有默认值。

    当文件输入发现在指定持续时间之前最后修改的文件(如果指定了数字,则为秒),将忽略该文件。在发现之后,如果修改了被忽略的文件,则不再忽略它,并且读取任何新数据。默认情况下,禁用此选项。注意这个单位是几秒钟。

    1. max_open_files
    • 值类型是数字
    • 此设置没有默认值

    此输入在任何时候消耗的最大file_handles数是多少。如果需要处理的文件多于此数字,请使用close_older关闭某些文件。这不应该设置为OS可以执行的最大值,因为其他LS插件和OS进程需要文件句柄。内部设置默认值4095。

    1. mode
    • 值可以值Tail或者read
    • 默认值为tail

    您希望文件输入在什么模式下运行。删除几个文件或读取许多内容完整的文件。读取模式现在支持gzip文件处理。如果指定“read”,则忽略以下其他设置:

    • start_position (始终从头开始读取文件)
    • close_older(达到EOF时文件会自动关闭)
      如果指定“read”,则注意以下设置:
    • ignore_older (不处理旧文件)
    • file_completed_action (处理文件时应采取什么行动)
    • file_completed_log_path (应该将完成的文件路径记录到哪个文件)
    1. path
    • 这是必须设置
    • 值类型是数组
    • 此设置没有默认值

    要用作输入的文件的路径。您可以在这里使用文件名模式,例如/var/log/.log。
    如果您使用类似/var/log/**/
    .log的模式,将对所有*执行/var/log的递归搜索。日志文件。路径必须是绝对的,不能是相对的。

    您还可以配置多个路径。请参阅

    Logstash配置页面的示例。
    1. sincedb_clean_after
    • 值类型是number或string_duration
    • 此设置的默认值为“2 weeks”。
    • 如果指定了数字,则将其解释为天数,并且可以是十进制,例如0.5是12小时。

    sincedb记录现在有一个与之关联的最后一个活动时间戳。如果在过去N天内未在跟踪文件中检测到任何更改,则其sincedb跟踪记录将过期,并且不会保留。此选项有助于防止inode回收问题。

    1. sincedb_path
    • 值类型是字符串
    • 此设置没有默认值

    将写入磁盘的sincedb数据库文件的路径(跟踪受监视日志文件的当前位置)。默认情况下会将sincedb文件写入<path.data>/plugins/inputs/file 注意:它必须是文件路径而不是目录路径

    1. sincedb_write_interval
    • 值类型是number或string_duration
    • 默认值是“15 seconds”

    使用受监视日志文件的当前位置编写自动数据库的频率(以秒为单位)。

    1. start_position
    • 值可以是任何的:beginning,end
    • 默认值是“end”

    选择Logstash最初开始读取文件的位置:开头或结尾。默认行为将文件视为实时流,因此从最后开始。如果您要导入旧数据,请将其设置为开头。

    此选项仅修改文件是新的且之前未见过的“初次接触”情况,即Logstash读取的sincedb文件中没有记录当前位置的文件。如果之前已经看过文件,则此选项无效,并且将使用sincedb文件中记录的位置。

    1. stat_interval
    • 值类型是number或string_duration
    • 默认值是“1 second”

    我们统计文件的频率(以秒为单位)以查看它们是否已被修改。增加此间隔将减少我们进行的系统调用次数,但会增加检测新日志行的时间。

    注意:发现新文件并检查它们是否已经增长/缩小发生在循环中。此循环将stat_interval在再次循环之前休眠几秒钟。但是,如果文件增长,则会读取新内容并将行排队。在所有增长的文件中读取和排队可能需要一些时间,尤其是在管道拥挤的情况下。因此整个循环时间是stat_interval文件读取时间的组合 。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^