Logstash 參考指南(Elasticsearch輸入插件)

Elasticsearch輸入插件

對於其餘版本,請參閱版本化插件文檔html

獲取幫助

有關插件的問題,請在討論論壇中打開一個主題,對於錯誤或特性請求,請在Github中打開一個問題,關於Elastic支持的插件列表,請考慮Elastic支持矩陣git

描述

兼容性說明

從Elasticsearch 5.3開始,有一個名爲http.content_type.required的HTTP設置,若是此選項設置爲true,而且你使用的是Logstash 2.4到5.2,則須要將Elasticsearch輸入插件更新到4.0.2或更高版本。github

從Elasticsearch集羣中讀取搜索查詢的結果,這對於重放測試日誌、重建索引等很是有用。你可使用cron語法按期調度攝取(請參閱調度設置)或運行查詢一次以將數據加載到Logstash中。json

示例:數組

input {
  # 讀取Elasticsearch中與給定查詢匹配的全部文檔
  elasticsearch {
    hosts => "localhost"
    query => '{ "query": { "match": { "statuscode": 200 } }, "sort": [ "_doc" ] }'
  }
}

這將使用如下格式建立Elasticsearch查詢:服務器

curl 'http://localhost:9200/logstash-*/_search?&scroll=1m&size=1000' -d '{
  "query": {
    "match": {
      "statuscode": 200
    }
  },
  "sort": [ "_doc" ]
}'

調度

能夠調度此插件的輸入根據特定調度按期運行,此調度語法由rufus-scheduler提供支持,語法相似cron,有一些特定於Rufus的擴展(例如時區支持)。curl

示例:elasticsearch

* 5 * 1-3 * 將從1月到3月的天天凌晨5點每分鐘執行一次
0 * * * * 將在天天每小時的第0分鐘執行
0 6 * * * America/Chicago 將在天天上午6:00(UTC/GMT-5)執行

能夠在此處找到描述此語法的更多文檔。ide

Elasticsearch輸入配置選項

此插件支持如下配置選項以及稍後描述的通用選項。性能

設置 輸入類型 必須
ca_file 一個有效的文件系統路徑 No
docinfo boolean No
docinfo_fields 數組 No
docinfo_target string No
hosts 數組 No
index string No
password string No
query string No
schedule string No
scroll string No
size number No
slices number No
ssl boolean No
user string No

另請參閱通用選項以獲取全部輸入插件支持的選項列表。

ca_file

  • 值類型是路徑
  • 此設置沒有默認值
  • PEM編碼格式的SSL證書頒發機構文件,必要時還必須包含任何鏈證書。

docinfo

  • 值類型是boolean
  • 默認值爲false
  • 若是設置,事件中包含Elasticsearch文檔信息,例如索引、類型和ID。關於元數據,可能須要注意的是,若是你正在提取文檔,意圖從新索引它們(或只是更新它們),那麼elasticsearch輸出中的action選項想要知道如何處理這些事情,可使用添加到元數據的字段動態分配它。

    示例:

    input {
      elasticsearch {
        hosts => "es.production.mysite.org"
        index => "mydata-2018.09.*"
        query => '{ "query": { "query_string": { "query": "*" } } }'
        size => 500
        scroll => "5m"
        docinfo => true
      }
    }
    output {
      elasticsearch {
        index => "copy-of-production.%{[@metadata][_index]}"
        document_type => "%{[@metadata][_type]}"
        document_id => "%{[@metadata][_id]}"
      }
    }
    從Logstash 6.0開始,因爲刪除了Logstash 6.0中的類型,所以不推薦使用 document_type選項,它將在Logstash的下一個主要版本中刪除。

docinfo_fields

  • 值類型是數組
  • 默認值爲["_index", "_type", "_id"]
  • 若是經過啓用docinfo選項請求文檔元數據存儲,則此選項會列出要在當前事件中保存的元數據字段,有關詳細信息,請參閱Elasticsearch文檔中的文檔元數據。

docinfo_target

  • 值類型是string
  • 默認值爲"@metadata"
  • 若是經過啓用docinfo選項請求文檔元數據存儲,此選項命名在其下將元數據字段存儲爲子字段的字段。

hosts

  • 值類型是數組
  • 此設置沒有默認值
  • 用於查詢的一個或多個Elasticsearch主機的列表,每一個主機能夠是IP、HOST、IP:port或HOST:port,端口默認爲9200。

ca_file

  • 值類型是路徑
  • 此設置沒有默認值
  • PEM編碼格式的SSL證書頒發機構文件,必要時還必須包含任何鏈證書。

index

  • 值類型是string
  • 默認值爲"logstash-*"
  • 要搜索的索引或別名,有關如何引用多個索引的更多信息,請參閱Elasticsearch文檔中的多索引文檔。

password

  • 值類型是password
  • 此設置沒有默認值
  • 在向Elasticsearch服務器進行身份驗證時,與user選項中的用戶名一塊兒使用的密碼,若是設置爲空字符串,則將禁用身份驗證。

query

  • 值類型是string
  • 默認值爲'{ "sort": [ "_doc" ] }'
  • 要執行的查詢,有關更多信息,請閱讀Elasticsearch查詢DSL文檔。

schedule

  • 值類型是string
  • 此設置沒有默認值
  • 以Cron格式按期運行語句的調度,例如:"* * * * *"(每分鐘執行一次查詢),默認狀況下沒有調度,若是沒有給出調度,那麼該語句只運行一次。

scroll

  • 值類型是string
  • 默認值爲"1m"
  • 此參數控制滾動請求的保持活動時間(以秒爲單位)並啓動滾動過程,每次往返(即在前一個滾動請求到下一個滾動請求之間)應用的超時。

size

  • 值類型是number
  • 默認值爲1000
  • 這容許你設置每一個滾動返回的最大命中數。

slices

  • 值類型是number
  • 沒有默認值
  • 合理的值範圍從2到大約8
  • 在某些狀況下,能夠經過使用Sliced Scroll API同時消費查詢的多個不一樣切片來提升整體吞吐量,特別是若是管道花費大量時間等待Elasticsearch提供結果。若是設置,則slices參數告訴插件將工做分紅多少個切片,並將並行地從切片生成事件,直到全部切片完成滾動。

    Elasticsearch手冊指出,當滾動查詢使用的切片多於索引中的碎片時,對查詢和Elasticsearch集羣可能會產生負面的性能影響。
  • 若是未設置slices參數,則插件不會將切片指令注入查詢。

ssl

  • 值類型是boolean
  • 默認值爲false
  • 若是啓用,則在與Elasticsearch服務器通訊時將使用SSL(即將使用HTTPS而不是普通HTTP)。

user

  • 值類型是string
  • 此設置沒有默認值
  • 在向Elasticsearch服務器進行身份驗證時,與password選項中的密碼一塊兒使用的用戶名,若是設置爲空字符串,則將禁用身份驗證。

通用選項

全部輸入插件都支持如下配置選項:

設置 輸入類型 必需
add_field hash No
codec codec No
enable_metric boolean No
id 字符串 No
tags 數組 No
type 字符串 No

細節

add_field

  • 值類型是hash
  • 默認值爲{}
  • 向事件添加字段。

codec

  • 值類型是codec
  • 默認值爲"json"
  • 用於輸入數據的編解碼器,輸入編解碼器是一種在數據進入輸入以前解碼數據的便捷方法,無需在Logstash管道中使用單獨的過濾器。

enable_metric

  • 值類型是boolean
  • 默認值爲true
  • 默認狀況下,會記錄能記錄的全部指標,可是你能夠禁用特定插件的指標收集。

id

  • 值類型是string
  • 此設置沒有默認值
  • 爲插件配置添加惟一ID,若是未指定ID,Logstash將生成一個ID,強烈建議在配置中設置此ID,當你有兩個或更多相同類型的插件時,這尤爲有用,例如,若是你有2個elasticsearch輸入。在這種狀況下添加命名ID將有助於在使用監控API時監控Logstash。

    input {
     elasticsearch {
       id => "my_plugin_id"
     }
    }

tags

  • 值類型是數組
  • 此設置沒有默認值
  • 爲你的事件添加任意數量的任意標籤,這有助於之後處理。

type

  • 值類型是string
  • 此設置沒有默認值
  • type字段添加到此輸入處理的全部事件,類型主要用於過濾器激活,類型存儲爲事件自己的一部分,所以你也可使用該類型在Kibana中搜索它。若是你嘗試在已有類型的事件上設置類型(例如,當你將事件從shipper發送到索引器時),則新輸入將不會覆蓋現有類型,shipper設置的類型即便在發送到另外一個Logstash服務器時仍會保留該事件。
相關文章
相關標籤/搜索