当前位置: 首页 > 工具软件 > OutputFilter > 使用案例 >

Logstash output http

锺离宸
2023-12-01

背景

我们的elk架构是: filebeat ---> logstash --> kafka-->consumer--->elastic。

由于日志很大,所以我们想对打印多的日志不进行采集。因为filebeat不支持output 到http。所以我们只能在logstash里控制了。

filebeat ---> logstash ---> http Server--> kafka-->consumer--->elastic。

logstash 配置

input {
    beats {
        port => "5044"
    }
}


filter {

}


output {
    http {
          http_method => "post"
          format => "json"
          url => "http://148.70.0.78:5000/api"
          content_type => "application/json"
       }

    stdout {     
        codec => rubydebug {}
    }

}

如果要收集各种类型的数据,建议这样写:

input {
    beats {
        port => "5044"
    }
}


filter {

}


output {
    http {
          http_method => "post" 
          url => "http://148.70.0.78:5000/api"
       }



}

接收端代码

from flask import Flask,request
import json

app = Flask(__name__)

@app.route('/api', methods=['GET', 'POST'])
def hello_world():
    if request.method == 'POST':
        a = request.get_data()
        dict1 = json.loads(a)
        print("####")
        print(dict1)
    return "<p>Hello, World!</p>"


if __name__ == '__main__':
    app.run(host="0.0.0.0", debug=True)

 类似资料:

相关阅读

相关文章

相关问答