お世話になります。
現在Filebeat→Logstash→Elasticsearch(ingest node)の連携を行っています。
バージョン
Filebeat:7.3
Logstash:7.3
Elasticsearch:7.3
Filebeatのinputログ
1286536308.779 180 192.168.0.224 TCP_MISS/200 411 GET http://liveupdate.symantecliveupdate.com/minitri.flg - DIRECT/125.23.216.203 text/plain
Logstashのconfig(filter句は空)
input {
beats {
port => XXXX
}
}
filter {
}
output{
elasticsearch{
hosts => [ "XX.XXX.XXX.XXX:XXXX" ]
user => "XXXXX"
password => "XXXX"
pipeline => "squid_access"
index => "squid_access"
}
}
Elasticsearchのingest node
GET /_ingest/pipeline/squid_access
{
"squid_access" : {
"processors" : [
{
"grok" : {
"field" : "message",
"patterns" : [
"%{NUMBER:timestamp}%{SPACE}%{NUMBER:duration} %{IP:client_address} %{WORD:cache_result}/%{POSINT:status_code} %{NUMBER:bytes} %{WORD:request_method} %{NOTSPACE:url} %{NOTSPACE:user} %{WORD:hierarchy_code}/%{NOTSPACE:server} %{NOTSPACE:content_type}"
]
}
}
]
}
}
連携すると、Elasticsearchにてエラーが発生します。
Elasticsearch log
org.elasticsearch.index.mapper.MapperParsingException: failed to parse field [host] of type [text] in document with id '-XXXXXX'. Preview of field's value: '{hostname=XXXXX, os={kernel=3.10.0-957.27.2.el7.x86_64, codename=Core, name=CentOS Linux, family=redhat, version=7 (Core), platform=centos}, containerized=false, name=XXXXX, id=XXXXXXX, architecture=x86_64}'
ご質問
上記エラーの原因が分かりましたら教えてください。
気になることとして、Logstashの別のconfigにてpipelineの向き先を「squid_access」にしたところエラーにはなりませんでした。
今回のconfigとの差異はfilter句に処理を書いているか書いていないかです。そのためconfigのfilter句の記載に問題がありそうです。