gpt4 book ai didi

curl - Logstash : send logs using curl

转载 作者:行者123 更新时间:2023-12-01 08:56:08 25 4
gpt4 key购买 nike

我有一个 ELK 服务器来管理我的日志。通常它们会自动发送到。一切正常。
但出于某种原因,有时,我们需要发送日志文件。

我正在尝试这样做:

curl -F "file=@<my_file_path>" http://<ELK_server_host>:5001

服务器端的这个 conf(这里有用的部分):
input {
...
tcp {
port => 5001
type => "curl"
codec => line { charset => "UFT-8" }
}
.....
}

filter {
.....
if "curl" == [type] {
multiline {
pattern => "^%{TIMESTAMP_ISO8601}"
negate => true
what => previous
}
grok {.....}
date {.....}
}
.....
}

output {
stdout { codec => rubydebug }
elasticsearch {
host => localhost
}
}

这部作品真不错 但是 有两个小困难:
  • 文件的最后(非空)行被忽略
  • curl 命令永远不会停止。我必须用 Ctrl+C 杀死。

  • 也许这两点是相连的,但有什么解决办法呢?也许多线过滤器有问题?

    最佳答案

    第 1 部分:

    如果没有更多信息,很难回答这个问题。但是我希望您的日志文件的最后一行不会以换行符结尾? logstash 输入编解码器“行”正在每行末尾寻找换行符。

    在 Windows 中添加一个:

    echo. >> path\to\your_log_file

    第 2 部分:

    cURL 用于与 HTTP 服务器通信。 Logstash 输入“tcp”不是 HTTP 服务器,并且不会在上传结束时发送 cURL 期望的 HTTP 响应。

    你最好使用像 Netcat 这样的工具用于通过 TCP 发送数据。

    附注

    “UFT-8”看起来像是一个错字。

    关于curl - Logstash : send logs using curl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27634127/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com