web-dev-qa-db-ja.com

Kibana 6.0または7+(v7.0.1)を使用してコンソールからインデックスパターンを作成する

最近、ElasticStackインスタンスを5.5から6.0にアップグレードしましたが、このバージョンの重大な変更の一部がパイプラインに悪影響を及ぼしているようです。 ElasticSearch内のインデックスに応じて、類似したインデックスのいくつかのグループに対してインデックスパターンを自動的に作成するスクリプトがありました。問題は、6.0バージョンの新しいマッピングの変更により、コンソールから新しいインデックスパターンを追加できないことです。これは私が使用したリクエストであり、5.5で正常に機能しました。

curl -XPOST "http://localhost:9200/.kibana/index-pattern" -H 'Content-  Type: application/json' -d'
{
  "title" : "index_name",
  "timeFieldName" : "execution_time"
}'

これは、6.0でElasticSearchから取得した応答です。

{
  "error": {
    "root_cause": [
      {
        "type": "illegal_argument_exception",
        "reason": "Rejecting mapping update to [.kibana] as the final mapping would have more than 1 type: [index-pattern, doc]"
      }
    ],
    "type": "illegal_argument_exception",
    "reason": "Rejecting mapping update to [.kibana] as the final mapping would have more than 1 type: [index-pattern, doc]"
  },
  "status": 400
}

この複数のマッピングの問題を回避するには、コンソールからインデックスパターンを追加するにはどうすればよいですか?

7
Julen Cestero

URLはバージョン6.0.0で変更されました。新しいURLは次のとおりです。

http:// localhost:9200/.kibana/doc/doc:index-pattern:my-index-pattern-name 

このCURLはあなたのために働くはずです:

curl -XPOST "http://localhost:9200/.kibana/doc/index-pattern:my-index-pattern-name" -H 'Content-Type: application/json' -d'
{
  "type" : "index-pattern",
  "index-pattern" : {
    "title": "my-index-pattern-name*",
    "timeFieldName": "execution_time"
  }
}'
5
Sanoussy Diallo

タイムスタンプを使用してインデックスパターンを一括で作成します。

cat index_svc.txt
my-index1
my-index2
my-index3
my-index4
my-index5
my-index6

cat index_svc.txt | while read index; do
    echo -ne "create index-pattern ${index} \t"
    curl -XPOST "http://10.0.1.44:9200/.kibana/doc/index-pattern:${index}" -H 'Content-Type: application/json' -d "{\"type\":\"index-pattern\",\"index-pattern\":{\"title\":\"${index}2020*\",\"timeFieldName\":\"@timestamp\"}}"
    echo 
done
0
NOZUONOHIGH

Kibanaの場合7.0.1/7+次にsaved_objectsAPIを参照できます例:参照: https://www.elastic.co/guide/en/kibana/master/saved -objects-api.html (Get、Create、Deleteなどを探します)。

この場合、使用します: https://www.elastic.co/guide/en/kibana/master/saved-objects-api-create.html

$ curl -X POST -u $user:$pass -H "Content-Type: application/json" -H "kbn-xsrf:true"  "${KIBANA_URL}/api/saved_objects/index-pattern/dummy_index_pattern" -d '{ "attributes": { "title":"index_name*", "timeFieldName":"sprint_start_date"}}'  -w "\n" | jq

そして

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   327  100   250  100    77    543    167 --:--:-- --:--:-- --:--:--   543
{
  "type": "index-pattern",
  "id": "dummy_index_pattern",
  "attributes": {
    "title": "index_name*",
    "timeFieldName": "sprint_start_date"
  },
  "references": [],
  "migrationVersion": {
    "index-pattern": "6.5.0"
  },
  "updated_at": "2020-02-25T22:56:44.531Z",
  "version": "Wzg5NCwxNV0="
}

$KIBANA_URLが設定された場所:http://my-elk-stack.devops.local:5601

jqがインストールされていない場合は、コマンドから| jqを削除します(上記のとおり)。

[〜#〜] ps [〜#〜]:KIBANAのGUIを使用してindex-patternを作成すると、KibanaはそのieインデックスIDalpha-numericとして保存します。 =値(ex:laskl32ukdflsdjflskadf-sdf-sdfsaldkjfhsdf-dsfasdf)これを行うときに使用/検索/入力するのは難しい次のcurlコマンドを使用して、既存のインデックスパターンに関する情報を検索するGET操作。

(上記のように)インデックスパターン名を渡した場合、Kibana/Elasticsearchでは、インデックスパターンのIDを、REST呼び出し(例: .../api/saved_objects/index-pattern/dummy_index_pattern ")

ここで:dummy_index_patternIDになり(Kibana GUIでインデックスパターン名にマウスを合わせた場合にのみ表示されます)、

index name as:index_name*(つまり、Kibana Home > Gear icon > Index Patternsをクリックすると、GUIに表示され、右側に表示されるインデックスパターンが表示されます。

[〜#〜] note [〜#〜]:timeFieldNameは非常に重要です。これは、時系列イベント(つまり、特にTSVB時系列ビジュアルビルダー視覚化タイプ)を検索するために使用されるフィールドです。デフォルトでは@timestampフィールドを使用しますが、インデックスを再作成すると(データソース(例:JIRA)からターゲットElasticsearchインデックスにデルタ情報を送信する代わりに)、すべてのデータを最初から1回のショットで送信しますデータソースからの場合、@timestampはビジュアライゼーションのタイムスパン/ウィンドウ機能(を過去1週間から過去1時間または過去6か月に変更する);その場合、私が使用したように別のフィールド、つまりsprint_start_dateを設定できます(Kibana Discoverデータページでは、このインデックスパターンを選択すると、sprint_start_date(タイプ:日付)が使用されます)イベント用のフィールド。

[〜#〜] get [〜#〜]新しく作成されたインデックスパターンに関するインデックスパターン情報については、以下を参照してください。 https://www.elastic.co/guide/ en/kibana/master/saved-objects-api-get.html -または、次の場所を実行します(URLパスの最後の値は、前に作成したインデックスパターンのID値です。

curl -X GET "${KIBANA_URL}/api/saved_objects/index-pattern/dummy_index_pattern" | jq

または

それ以外の場合(ページIndex Pattern > Create Index Patternの下のKibanaのGUI/Webページを介して作成されたインデックスパターンに対してGETを実行する場合は、次のように入力する必要があります。

curl -X GET "${KIBANA_URL}/api/saved_objects/index-pattern/jqlaskl32ukdflsdjflskadf-sdf-sdfsaldkjfhsdf-dsfasdf" | jq 
0
Arun Sangal

Elasticsearch 6.0.0以降で作成されたインデックスには、単一のマッピングタイプのみを含めることができます。

複数のマッピングタイプを使用して5.xで作成されたインデックスは、Elasticsearch6.xでも以前と同じように機能します。

Elasticsearch 7.0.0では、マッピングタイプは完全に削除されます。

ES6.0.0で複数のdoc_typesを使用してインデックスを作成している可能性があります。 https://www.elastic.co/guide/en/elasticsearch/reference/current/removal-of-types.html

0
emhlbmc