【问题标题】:Logstash API configuration httpLogstash API 配置 http
【发布时间】:2020-01-11 20:35:29
【问题描述】:

我正在尝试在 Logstash 中创建 API 连接并将数据推送到 elasticsearch。 Elasticsearch 和 Logstash 版本都是 7.1.0。 下面是logstash文件的id:

input {
          http_poller {
            urls => {
              test2 => {
                method => get
        user => "readonly"
            password => "mypass@123"
                url => "https://nfr.saas.appdynamics.com/controller/rest/applications?output=JSON
                headers => {
                  Accept => "application/json"
                }
             }
            }
            request_timeout => 60
            # Supports "cron", "every", "at" and "in" schedules by rufus scheduler
            schedule => { cron => "* * * * * UTC"}
            codec => "json"
            # A hash of request metadata info (timing, response headers, etc.) will be sent here
            metadata_target => "http_poller_metadata"
          }
        }

        output {
          elasticsearch { hosts => ["localhost:9200"] }
          stdout { codec => rubydebug }
        }

我收到一个错误:

An unexpected error occurred! {:error=>java.nio.file.AccessDeniedException: D:\logstash-7.1.0\logsta
        sh-7.1.0\data\.lock, :backtrace=>["sun.nio.fs.WindowsException.translateToIOExce
        ption(sun/nio/fs/WindowsException.java:83)", "sun.nio.fs.WindowsException.rethro
        wAsIOException(sun/nio/fs/WindowsException.java:97)", "sun.nio.fs.WindowsException

编辑 1:发布对@apt-get_install_skill 建议的数据文件夹的权限,以下是我收到的超时错误:

    [0] "_http_request_failure"
    ],
    "http_request_failure" => {
                "request" => {
             "method" => "get",
                "url" => "https://nfr.saas.appdynamics.com/controller/rest/applications?output=JSON",
            "headers" => {
                "Accept" => "application/json"
            },
               "auth" => {
                 "user" => "readonly",
                 "pass" => "mypass@123",
                "eager" => true
            }
        },
        "runtime_seconds" => 10.004,
                   "name" => "test2",
                  "error" => "connect timed out",
              "backtrace" => nil
    }
}

我是 API 新手,我不确定如何简单地从 URL 中获取输出。你能帮我纠正这个问题吗? 当我在浏览器上点击它时,该 URL 有效。

【问题讨论】:

    标签: elasticsearch logstash


    【解决方案1】:

    问题不在于elasticsearch的输出,而在于文件的权限

    D:\logstash-7.1.0\logstash-7.1.0\data\.lock
    

    如堆栈跟踪中所述:

    error=>java.nio.file.AccessDeniedException: D:\logstash-7.1.0\logstash-7.1.0\data\.lock, :backtrace=>["sun.nio .fs.WindowsException.translateToIOExce ption(sun/nio/fs/WindowsException.java:83)", "sun.nio.fs.WindowsException.rethro wAsIOException(sun/nio/fs/WindowsException.java:97)", "sun.nio.fs.WindowsException

    你需要确保执行logstash的用户有读写这个文件的权限。

    【讨论】:

    • 我确实设法纠正了这一点,谢谢,但我的 API 仍然面临连接超时错误。我已将错误添加为问题中的更新。 @apt-get-install-skill,
    • 刚刚做了@apt-get_install_skill
    • 嗯,运行logstash的机器似乎无法在60秒内连接到指定的URL。是否有阻止请求的防火墙?你能从 logstash 实例中对该 URL 做一个 curl 吗?
    • 这是一台 Windows 机器,所以我尝试在浏览器中运行 URL,它运行良好。 URL 上只有 2 个 json 输入。 @apt-get_install_skill
    • 那不一样。您需要检查是否可以使用 logstash 用户/服务访问 URL。您可以在此页面上下载适用于 windows 的 curl curl.haxx.se/windows
    猜你喜欢
    • 2015-05-30
    • 1970-01-01
    • 1970-01-01
    • 2017-03-20
    • 2019-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多