【问题标题】:How can I get data from Elasticsearch using Logstash and put it into Graphite?如何使用 Logstash 从 Elasticsearch 获取数据并将其放入 Graphite?
【发布时间】:2023-08-07 19:19:01
【问题描述】:

我有 logstash.conf 文件,我从 MySQL 数据库中获取数据。但现在我必须从 Elasticsearch 中获取数据并将其放入 Graphite。有我的logstash.conf的代码:

input {
     jdbc {
            type => "some type"
            jdbc_driver_library => "sqljdbc42.jar"
            jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
            jdbc_connection_string => "jdbc:sqlserver://host:port;databaseName=db name"
            jdbc_user =>  "username"
            jdbc_password => "***"
            jdbc_default_timezone => "Asia/Almaty"
            statement_filepath => "sqlscript.sql"
            schedule => "*/30 * * * *"
     }
}

output {

    stdout { codec => json }

    if [type] == "some type"  {

     graphite {
        host => "some host"
        port => port
        metrics => [some.metric", "%{cnt}"]
     }

    }
}

【问题讨论】:

    标签: elasticsearch logstash graphite


    【解决方案1】:

    您需要做的就是将 logstash.conf 中的输入配置更改为:

    elasticsearch {
      hosts => "localhost"
      query => '{ "query": { "match_all": {} }, "sort": [ "_doc" ] }'
    }
    

    Just use elasticsearch input for logstash.

    【讨论】: