logstash用の独自のプラグインフィルタを構築しました。このフィルタの原理は、 "lambertII"と呼ばれる座標系で形成されたいくつかの座標(x、y)をgpsシステム(緯度、経度)で変換することです。次に例を示します。自分のlogstashフィルタが入力フィールドの値を正しく抽出しない
lambert {
convert => ["lambertII", x, y]
latitude => ["lat"] #return as output latitude
longitude => ["long"] #return as output longitude
}
私は、インスタンスのために書くとき、それがうまく機能:
convert => ["LambertII", 2478517.33, 547536.68]
しかし、
{"x":2478517.33, "y":547536.68}
{"x":2699120.65, "y":544959.56}
が、その下に示したように、私はJSONファイルからデータを抽出するとき私が書いたときにうまくいきません:
convert => ["LambertII", "%{[x]}", "%{[y]}"]
または
convert => ["LambertII", "%{x}", "%{y}"]
実際、私のRubyコードは、表現 "%{[..]}" または "%{..}" からfloat値を抽出しないが、それは文字列式のようにそれらを解釈します。
私はすでに、この次のリンクを見てきましたが、それは私の問題を解決しませんでした:https://www.elastic.co/guide/en/logstash/current/event-dependent-configuration.html#event-dependent-configuration
私はこの問題を解決する方法を見つけることができませんでした。私はどんな助けにも非常に感謝しています。
ご協力いただきありがとうございます。
ルービコードlambert.rbが役に立つ場合はそれを提供できます –
コードを入力してください。 https://gist.github.com/へのリンクは完璧です。 – baudsp