自分では解決できない構成の失敗に直面しています。ドキュメントを使用して解決策を見つけようとしましたが、うまくいきませんでした。
collectd 経由でログスタッシュにメトリックを送信するいくつかの異なるホストがあります。logstash 構成内で、各ホストを分離し、それを独自の ES-index にパイプしたいと思います。設定を構成テストしようとすると、logstash でエラーが発生します。誰かが助けてくれるかもしれません。
分離は、collectd が配信するホスト名によってトリガーされる必要があります。
[これは古い生の json 出力なので、間違ったセット インデックスを気にしないでください]
{
"_index": "wv-metrics",
"_type": "logs",
"_id": "AVHyJunyGanLcfwDBAon",
"_score": null,
"_source": {
"host": "somefqdn.com",
"@timestamp": "2015-12-30T09:10:15.211Z",
"plugin": "disk",
"plugin_instance": "dm-5",
"collectd_type": "disk_merged",
"read": 0,
"write": 0,
"@version": "1"
},
"fields": {
"@timestamp": [
1451466615211
]
},
"sort": [
1451466615211
]
}
私の設定を見てください:
入力構成 (これまでのところ作業中)
input {
udp {
port => 25826
buffer_size => 1452
codec => collectd { }
}
}
出力構成ファイル:
filter {
if [host] == "somefqdn.com" {
output {
elasticsearch {
hosts => "someip:someport"
user => logstash
password => averystrongpassword
index => "somefqdn.com"
}
}
}
}
スローされるエラー:
root@test-collectd1:/home/username# service logstash configtest
Error: Expected one of #, => at line 21, column 17 (byte 314) after filter {
if [host] == "somefqdn.com" {
output {
elasticsearch
構成に欠けている可能性のある文字があることは理解していますが、見つけることができません。
事前にthx!