# Elasticseachでのpipeline指定

**URL:** <https://discuss.elastic.co/t/elasticseach-pipeline/199385>\
**Category:** 日本語による質問・議論はこちら\
**Created:** [September 13, 2019, 8:18am UTC](https://discuss.elastic.co/t/elasticseach-pipeline/199385 "2019-09-13T08:18:25Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![t-nakata](https://avatars.discourse-cdn.com/v4/letter/t/8491ac/32.png) [@t-nakata](https://discuss.elastic.co/u/t-nakata)\
**Post date:** [September 13, 2019, 8:18am UTC](https://discuss.elastic.co/t/elasticseach-pipeline/199385/1 "2019-09-13T08:18:25Z")

</div>

filebeat→インジェストノードへのファイル転送を行おうとしているのですが、filebeatでpipelineを指定すると、インジェストノード側でエラーになってしまいます。  
原因について、ご教示いただけないでしょうか

[2019-09-13T17:05:44,198][DEBUG][o.e.a.b.TransportBulkAction] [vm-phn5-sock201.fcxlocal] failed to execute pipeline [squid\_accessES] for document [filebeat-7.3.1/\_doc/null]  
org.elasticsearch.ElasticsearchException: java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: Provided Grok expressions do not match field value: [1286536308.895 180 192.168.0.224 TCP\_MISS/200 411 GET [http://liveupdate.symantecliveupdate.com/minitri.flg](http://liveupdate.symantecliveupdate.com/minitri.flg) - DIRECT/125.23.216.203 text/plain]  
at org.elasticsearch.ingest.CompoundProcessor.newCompoundProcessorException(CompoundProcessor.java:194) ~[elasticsearch-7.3.1.jar:7.3.1]  
at org.elasticsearch.ingest.CompoundProcessor.execute(CompoundProcessor.java:133) ~[elasticsearch-7.3.1.jar:7.3.1]  
at org.elasticsearch.ingest.Pipeline.execute(Pipeline.java:100) ~[elasticsearch-7.3.1.jar:7.3.1]  
at org.elasticsearch.ingest.IngestService.innerExecute(IngestService.java:427) ~[elasticsearch-7.3.1.jar:7.3.1]  
at org.elasticsearch.ingest.IngestService.access$100(IngestService.java:70) ~[elasticsearch-7.3.1.jar:7.3.1]  
at org.elasticsearch.ingest.IngestService$3.doRun(IngestService.java:355) [elasticsearch-7.3.1.jar:7.3.1]  
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:758) [elasticsearch-7.3.1.jar:7.3.1]  
at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) [elasticsearch-7.3.1.jar:7.3.1]  
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]  
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]  
at java.lang.Thread.run(Thread.java:835) [?:?]  
Caused by: java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: Provided Grok expressions do not match field value: [1286536308.895 180 192.168.0.224 TCP\_MISS/200 411 GET [http://liveupdate.symantecliveupdate.com/minitri.flg](http://liveupdate.symantecliveupdate.com/minitri.flg) - DIRECT/125.23.216.203 text/plain]

■filebeat.yml設定内容  
#================================ Outputs =====================================

# Configure what output to use when sending the data collected by the beat.

#-------------------------- Elasticsearch output ------------------------------  
output.elasticsearch:

# # Array of hosts to connect to.

hosts: ["XXX.XXX.XXX.XXX:9200"]

# 

# # Optional protocol and basic auth credentials.

# #protocol: "https"

username: "_**"  
password: "**_"  
pipeline: "squid\_accessES"

■インジェストノードへのpipeline登録  
PUT /\_ingest/pipeline/squid\_accessES  
{  
"processors" : [  
{  
"grok" : {  
"field" : "message",  
"patterns" : ["%{NUMBER:utctime} %{NUMBER:duration} %{IP:clientip} %{PROG:resultcode} %{NUMBER:bytes} %{WORD:requestmethod} %{GREEDYDATA:requesturl} %{PROG:rfc391} %{GREEDYDATA:hierarchycode} %{PROG:type}"]  
}  
},  
{  
"date\_index\_name" : {  
"field" : "@timestamp",  
"index\_name\_prefix" : "filebeat",  
"date\_rounding" : "d"  
}  
}  
]  
}

---

<div class="post-metadata">

**Author:** ![tsgkdt](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tsgkdt/32/39151_2.png) [@tsgkdt](https://discuss.elastic.co/u/tsgkdt)\
**Post date:** [September 15, 2019, 1:16pm UTC](https://discuss.elastic.co/t/elasticseach-pipeline/199385/2 "2019-09-15T13:16:57Z")

</div>

表示されているエラーは、Grokのプロセッサーで送られてきた文字列がパースできませんでした、とあるので、まずIngest Nodeの中を確認してみては、と思うのです。

いま、quid\_accessESというpipelineが既に登録されているかと思うので、\_simulateのAPIを実行してみてください。  
"message"は、上でパースができないとエラーがでていたときの中身です。

```auto
POST _ingest/pipeline/squid_accessES/_simulate
{
  "docs": [
    {
      "_source": {
        "message": "1286536308.895 180 192.168.0.224 TCP_MISS/200 411 GET http://liveupdate.symantecliveupdate.com/minitri.flg - DIRECT/125.23.216.203 text/plain",
        "@timestamp": "2019-09-13T18:33:00.000Z"
      }
    }
  ]
}

```

このような結果になりますでしょうか？

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/f/9/f922fc31c1f5e23ab1f2deb0a5e9203f3f5a8547.png)

もし、上の"message”の部分をGrokでエラーを起こすような文字列にして\_simulateをすれば、  
以下のような結果となり、提示いただいているエラーメッセージと合致します。

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/3/8/381063223427cf844b9348933a4202f1cf8c7b7b.png)

まずIngestのパイプライン自体でエラーが起きないかどうかを確認し、  
Pipeline単体では起きないけれど、filebeatからPipelineを指定してデータを登録したときにエラーになるのかどうか、場合を切り分けるのが良いのではと思います。

---

<div class="post-metadata">

**Author:** ![t-nakata](https://avatars.discourse-cdn.com/v4/letter/t/8491ac/32.png) [@t-nakata](https://discuss.elastic.co/u/t-nakata)\
**Post date:** [September 19, 2019, 1:38am UTC](https://discuss.elastic.co/t/elasticseach-pipeline/199385/3 "2019-09-19T01:38:12Z")

</div>

ご回答ありがとうございます。ご指摘どおり、パースが失敗しておりました。grokの設定を見直して解決しました

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [October 17, 2019, 1:38am UTC](https://discuss.elastic.co/t/elasticseach-pipeline/199385/4 "2019-10-17T01:38:22Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
