08、es 進一步瞭解___e_性能優化_

1)存儲設備

磁盤在現代服務器上通常都是瓶頸。Elasticsearch 重度使用磁盤,你的磁盤能處理的吞吐量越大,你的節點就越穩定。

這裏有一些優化磁盤 I/O 的技巧:

  • 使用 SSD。就像其他地方提過的, 他們比機械磁盤優秀多了。

  • 使用 RAID 0。條帶化 RAID 會提高磁盤 I/O,代價顯然就是當一塊硬盤故障時整個就故障了。不要使用鏡像或者奇偶校驗 RAID 因爲副本已經提供了這個功能。

  • 另外,使用多塊硬盤,並允許 Elasticsearch 通過多個 path.data 目錄配置把數據條帶化分配到它們上面。

  • 不要使用遠程掛載的存儲,比如 NFS 或者 SMB/CIFS。這個引入的延遲對性能來說完全是背道而馳的。

如果你用的是 EC2,當心 EBS。即便是基於 SSD 的 EBS,通常也比本地實例的存儲要慢。

2)_內部索引優化

在這裏插入圖片描述

Elasticsearch 爲了能快速找到某個 Term,先將所有的 Term 排個序,然後根據二分法查找 Term,時間複雜度爲 logN,就像通過字典查找一樣,這就是 Term Dictionary。

現在再看起來,似乎和傳統數據庫通過 B-Tree 的方式類似。但是如果 Term 太多,Term Dictionary 也會很大,放內存不現實,於是有了 Term Index。

就像字典裏的索引頁一樣,A 開頭的有哪些 Term,分別在哪頁,可以理解 Term Index是一棵樹。

這棵樹不會包含所有的 Term,它包含的是 Term 的一些前綴。通過 Term Index 可以快速地定位到 Term Dictionary 的某個 Offset,然後從這個位置再往後順序查找。

在內存中用 FST 方式壓縮 Term Index,FST 以字節的方式存儲所有的 Term,這種壓縮方式可以有效的縮減存儲空間,使得 Term Index 足以放進內存,但這種方式也會導致查找時需要更多的 CPU 資源。

對於存儲在磁盤上的倒排表同樣也採用了壓縮技術減少存儲所佔用的空間。

3)_調整配置參數

調整配置參數建議如下:

  • 給每個文檔指定有序的具有壓縮良好的序列模式 ID,避免隨機的 UUID-4 這樣的 ID,這樣的 ID 壓縮比很低,會明顯拖慢 Lucene
  • 對於那些不需要聚合和排序的索引字段禁用 Doc values。Doc Values 是有序的基於 document=>field value 的映射列表。
  • 不需要做模糊檢索的字段使用 Keyword 類型代替 Text 類型,這樣可以避免在建立索引前對這些文本進行分詞。
  • 如果你的搜索結果不需要近實時的準確度,考慮把每個索引的 index.refresh_interval 改到 30s 。
  • 如果你是在做大批量導入,導入期間你可以通過設置這個值爲 -1 關掉刷新,還可以通過設置 index.number_of_replicas: 0 關閉副本。別忘記在完工的時候重新開啓它。
  • 避免深度分頁查詢建議使用 Scroll 進行分頁查詢。普通分頁查詢時,會創建一個 from+size 的空優先隊列,每個分片會返from+size 條數據,默認只包含文檔 ID 和得分 Score 給協調節點。如果有 N 個分片,則協調節點再對(from+size)×n 條數據進行二次排序,然後選擇需要被取回的文檔。當 from 很大時,排序過程會變得很沉重,佔用 CPU 資源嚴重
  • 減少映射字段,只提供需要檢索,聚合或排序的字段。其他字段可存在其他存儲設備上,例如 Hbase,在 ES 中得到結果後再去 Hbase 查詢這些字段
  • 創建索引和查詢時指定路由 Routing 值,這樣可以精確到具體的分片查詢,提升查詢效率。路由的選擇需要注意數據的分佈均衡

4)_JVM 調優

JVM 調優建議如下:

  • 確保堆內存最小值( Xms )與最大值( Xmx )的大小是相同的,防止程序在運行時改變堆內存大小。
  • Elasticsearch 默認安裝後設置的堆內存是 1GB。可通過 …/config/jvm.option 文件進行配置,但是最好不要超過物理內存的50%和超過 32GB。
  • GC 默認採用 CMS 的方式,併發但是有 STW 的問題,可以考慮使用 G1 收集器。
  • ES 非常依賴文件系統緩存(Filesystem Cache),快速搜索。一般來說,應該至少確保物理上有一半的可用內存分配到文件系統緩存。
JVM 調優建議如下:
確保堆內存最小值( Xms )與最大值( Xmx )的大小是相同的,防止程序在運行時改變堆內存大小。
Elasticsearch 默認安裝後設置的堆內存是 1GB。可通過 ../config/jvm.option 文件進行配置,但是最好不要超過物理內存的50%和超過 32GB。

GC 默認採用 CMS 的方式,併發但是有 STW 的問題,可以考慮使用 G1 收集器。

ES 非常依賴文件系統緩存(Filesystem Cache),快速搜索。一般來說,應該至少確保物理上有一半的可用內存分配到文件系統緩存。

{
  "_nodes": {
    "total": 4,
    "successful": 4,
    "failed": 0
  },
  "cluster_name": "order",
  "nodes": {
    "7RcuoaZGSmKf3y6sQkphDA": {
      "name": "es3",
      "transport_address": "IP1:9300",
      "host": "IP1",
      "ip": "IP1",
      "version": "6.2.1",
      "build_hash": "7299dc3",
      "total_indexing_buffer": 1932735283,
      "roles": [
        "master",
        "data",
        "ingest"
      ],
      "attributes": {
        "ml.machine_memory": "33566806016",
        "ml.max_open_jobs": "20",
        "ml.enabled": "true"
      },
      "settings": {
        "cluster": {
          "name": "order"
        },
        "node": {
          "max_local_storage_nodes": "1",
          "name": "es3",
          "attr": {
            "ml": {
              "machine_memory": "33566806016",
              "max_open_jobs": "20",
              "enabled": "true"
            }
          },
          "data": "true",
          "ingest": "true",
          "master": "true"
        },
        "path": {
          "data": [
            "/data1/elasticsearch/data/"
          ],
          "logs": "/data/elasticsearch/logs",
          "home": "/data/elasticsearch"
        },
        "discovery": {
          "zen": {
            "fd": {
              "ping_interval": "10s",
              "ping_retries": "10",
              "ping_timeout": "60s"
            },
            "ping": {
              "unicast": {
                "hosts": [
                  "IP2",
                  "IP3",
                  "IP1",
                  "IP4",
                  "IP5"
                ]
              }
            }
          }
        },
        "client": {
          "type": "node"
        },
        "http": {
          "type": {
            "default": "netty4"
          },
          "port": "9200",
          "cors": {
            "allow-origin": "*",
            "allow-headers": "X-Requested-With, X-Auth-Token, Content-Type, Content-Length, Authorization",
            "allow-methods": "OPTIONS, HEAD, GET, POST, PUT, DELETE",
            "enabled": "true"
          }
        },
        "bootstrap": {
          "memory_lock": "true"
        },
        "transport": {
          "type": {
            "default": "netty4"
          }
        },
        "xpack": {
          "security": {
            "enabled": "false"
          }
        },
        "network": {
          "host": "0.0.0.0"
        }
      },
      "os": {
        "refresh_interval_in_millis": 1000,
        "name": "Linux",
        "arch": "amd64",
        "version": "3.10.0-693.el7.x86_64",
        "available_processors": 16,
        "allocated_processors": 16
      },
      "process": {
        "refresh_interval_in_millis": 1000,
        "id": 25520,
        "mlockall": true
      },
      "jvm": {
        "pid": 25520,
        "version": "1.8.0_91",
        "vm_name": "Java HotSpot(TM) 64-Bit Server VM",
        "vm_version": "25.91-b14",
        "vm_vendor": "Oracle Corporation",
        "start_time_in_millis": 1552970296340,
        "mem": {
          "heap_init_in_bytes": 19327352832,
          "heap_max_in_bytes": 19327352832,
          "non_heap_init_in_bytes": 2555904,
          "non_heap_max_in_bytes": 0,
          "direct_max_in_bytes": 19327352832
        },
        "gc_collectors": [
          "G1 Young Generation",
          "G1 Old Generation"
        ],
        "memory_pools": [
          "Code Cache",
          "Metaspace",
          "Compressed Class Space",
          "G1 Eden Space",
          "G1 Survivor Space",
          "G1 Old Gen"
        ],
        "using_compressed_ordinary_object_pointers": "true",
        "input_arguments": [
          "-Xms18g",
          "-Xmx18g",
          "-Xmn9g",
          "-XX:+UseG1GC",
          "-XX:MaxGCPauseMillis=200",
          "-XX:+DisableExplicitGC",
          "-XX:+AlwaysPreTouch",
          "-Xss1m",
          "-Djava.awt.headless=true",
          "-Dfile.encoding=UTF-8",
          "-Djna.nosys=true",
          "-Djdk.io.permissionsUseCanonicalPath=true",
          "-Dio.netty.noUnsafe=true",
          "-Dio.netty.noKeySetOptimization=true",
          "-Dio.netty.recycler.maxCapacityPerThread=0",
          "-Dlog4j.shutdownHookEnabled=false",
          "-Dlog4j2.disable.jmx=true",
          "-Dlog4j.skipJansi=true",
          "-XX:+HeapDumpOnOutOfMemoryError",
          "-Des.path.home=/data/elasticsearch",
          "-Des.path.conf=/data/elasticsearch/config"
        ]
      },
      "thread_pool": {
        "watcher": {
          "type": "fixed",
          "min": 50,
          "max": 50,
          "queue_size": 1000
        },
        "force_merge": {
          "type": "fixed",
          "min": 1,
          "max": 1,
          "queue_size": -1
        },
        "ml_datafeed": {
          "type": "fixed",
          "min": 20,
          "max": 20,
          "queue_size": 200
        },
        "fetch_shard_started": {
          "type": "scaling",
          "min": 1,
          "max": 32,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "listener": {
          "type": "fixed",
          "min": 8,
          "max": 8,
          "queue_size": -1
        },
        "ml_autodetect": {
          "type": "fixed",
          "min": 80,
          "max": 80,
          "queue_size": 80
        },
        "index": {
          "type": "fixed",
          "min": 16,
          "max": 16,
          "queue_size": 200
        },
        "refresh": {
          "type": "scaling",
          "min": 1,
          "max": 8,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "generic": {
          "type": "scaling",
          "min": 4,
          "max": 128,
          "keep_alive": "30s",
          "queue_size": -1
        },
        "warmer": {
          "type": "scaling",
          "min": 1,
          "max": 5,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "search": {
          "type": "fixed_auto_queue_size",
          "min": 25,
          "max": 25,
          "queue_size": 1000
        },
        "flush": {
          "type": "scaling",
          "min": 1,
          "max": 5,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "fetch_shard_store": {
          "type": "scaling",
          "min": 1,
          "max": 32,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "management": {
          "type": "scaling",
          "min": 1,
          "max": 5,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "ml_utility": {
          "type": "fixed",
          "min": 80,
          "max": 80,
          "queue_size": 500
        },
        "get": {
          "type": "fixed",
          "min": 16,
          "max": 16,
          "queue_size": 1000
        },
        "bulk": {
          "type": "fixed",
          "min": 16,
          "max": 16,
          "queue_size": 200
        },
        "snapshot": {
          "type": "scaling",
          "min": 1,
          "max": 5,
          "keep_alive": "5m",
          "queue_size": -1
        }
      },
      "transport": {
        "bound_address": [
          "[::]:9300"
        ],
        "publish_address": "192.168.50.15:9300",
        "profiles": {}
      },
      "http": {
        "bound_address": [
          "[::]:9200"
        ],
        "publish_address": "192.168.50.15:9200",
        "max_content_length_in_bytes": 104857600
      },
      "plugins": [
        {
          "name": "analysis-ik",
          "version": "6.2.1",
          "description": "IK Analyzer for Elasticsearch",
          "classname": "org.elasticsearch.plugin.analysis.ik.AnalysisIkPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "x-pack-core",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Core",
          "classname": "org.elasticsearch.xpack.core.XPackPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "x-pack-deprecation",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Deprecation",
          "classname": "org.elasticsearch.xpack.deprecation.Deprecation",
          "extended_plugins": [
            "x-pack-core"
          ],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "x-pack-graph",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Graph",
          "classname": "org.elasticsearch.xpack.graph.Graph",
          "extended_plugins": [
            "x-pack-core"
          ],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "x-pack-logstash",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Logstash",
          "classname": "org.elasticsearch.xpack.logstash.Logstash",
          "extended_plugins": [
            "x-pack-core"
          ],
          "has_native_controller": false,
          "requires_keystore": false
        }
      ],
      "modules": [
        {
          "name": "aggs-matrix-stats",
          "version": "6.2.1",
          "description": "Adds aggregations whose input are a list of numeric fields and output includes a matrix.",
          "classname": "org.elasticsearch.search.aggregations.matrix.MatrixAggregationPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "analysis-common",
          "version": "6.2.1",
          "description": """Adds "built in" analyzers to Elasticsearch.""",
          "classname": "org.elasticsearch.analysis.common.CommonAnalysisPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "ingest-common",
          "version": "6.2.1",
          "description": "Module for ingest processors that do not require additional security permissions or have large dependencies and resources",
          "classname": "org.elasticsearch.ingest.common.IngestCommonPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "lang-expression",
          "version": "6.2.1",
          "description": "Lucene expressions integration for Elasticsearch",
          "classname": "org.elasticsearch.script.expression.ExpressionPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "lang-mustache",
          "version": "6.2.1",
          "description": "Mustache scripting integration for Elasticsearch",
          "classname": "org.elasticsearch.script.mustache.MustachePlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "lang-painless",
          "version": "6.2.1",
          "description": "An easy, safe and fast scripting language for Elasticsearch",
          "classname": "org.elasticsearch.painless.PainlessPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "mapper-extras",
          "version": "6.2.1",
          "description": "Adds advanced field mappers",
          "classname": "org.elasticsearch.index.mapper.MapperExtrasPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "parent-join",
          "version": "6.2.1",
          "description": "This module adds the support parent-child queries and aggregations",
          "classname": "org.elasticsearch.join.ParentJoinPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "percolator",
          "version": "6.2.1",
          "description": "Percolator module adds capability to index queries and query these queries by specifying documents",
          "classname": "org.elasticsearch.percolator.PercolatorPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "rank-eval",
          "version": "6.2.1",
          "description": "The Rank Eval module adds APIs to evaluate ranking quality.",
          "classname": "org.elasticsearch.index.rankeval.RankEvalPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "reindex",
          "version": "6.2.1",
          "description": "The Reindex module adds APIs to reindex from one index to another or update documents in place.",
          "classname": "org.elasticsearch.index.reindex.ReindexPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "repository-url",
          "version": "6.2.1",
          "description": "Module for URL repository",
          "classname": "org.elasticsearch.plugin.repository.url.URLRepositoryPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "transport-netty4",
          "version": "6.2.1",
          "description": "Netty 4 based transport implementation",
          "classname": "org.elasticsearch.transport.Netty4Plugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "tribe",
          "version": "6.2.1",
          "description": "Tribe module",
          "classname": "org.elasticsearch.tribe.TribePlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        }
      ],
      "ingest": {
        "processors": [
          {
            "type": "append"
          },
          {
            "type": "convert"
          },
          {
            "type": "date"
          },
          {
            "type": "date_index_name"
          },
          {
            "type": "dot_expander"
          },
          {
            "type": "fail"
          },
          {
            "type": "foreach"
          },
          {
            "type": "grok"
          },
          {
            "type": "gsub"
          },
          {
            "type": "join"
          },
          {
            "type": "json"
          },
          {
            "type": "kv"
          },
          {
            "type": "lowercase"
          },
          {
            "type": "remove"
          },
          {
            "type": "rename"
          },
          {
            "type": "script"
          },
          {
            "type": "set"
          },
          {
            "type": "set_security_user"
          },
          {
            "type": "sort"
          },
          {
            "type": "split"
          },
          {
            "type": "trim"
          },
          {
            "type": "uppercase"
          },
          {
            "type": "urldecode"
          }
        ]
      }
    },
    "E_3jEoLOQNSVLE-xA89LlA": {
      "name": "es4",
      "transport_address": "192.168.50.16:9300",
      "host": "192.168.50.16",
      "ip": "192.168.50.16",
      "version": "6.2.1",
      "build_hash": "7299dc3",
      "total_indexing_buffer": 3006477107,
      "roles": [],
      "attributes": {
        "ml.machine_memory": "33566806016",
        "ml.max_open_jobs": "20",
        "ml.enabled": "true"
      },
      "settings": {
        "cluster": {
          "name": "order"
        },
        "node": {
          "max_local_storage_nodes": "1",
          "name": "es4",
          "attr": {
            "ml": {
              "machine_memory": "33566806016",
              "max_open_jobs": "20",
              "enabled": "true"
            }
          },
          "data": "false",
          "ingest": "false",
          "master": "false"
        },
        "path": {
          "data": [
            "/data/elasticsearch/data/"
          ],
          "logs": "/data/elasticsearch/logs",
          "home": "/data/elasticsearch"
        },
        "discovery": {
          "zen": {
            "fd": {
              "ping_interval": "10s",
              "ping_retries": "10",
              "ping_timeout": "60s"
            },
            "ping": {
              "unicast": {
                "hosts": [
                  "192.168.50.13",
                  "192.168.50.21",
                  "192.168.50.15",
                  "192.168.50.16",
                  "192.168.50.17"
                ]
              }
            }
          }
        },
        "client": {
          "type": "node"
        },
        "http": {
          "type": {
            "default": "netty4"
          },
          "port": "9200",
          "cors": {
            "allow-origin": "*",
            "allow-headers": "X-Requested-With, X-Auth-Token, Content-Type, Content-Length, Authorization",
            "allow-methods": "OPTIONS, HEAD, GET, POST, PUT, DELETE",
            "enabled": "true"
          }
        },
        "bootstrap": {
          "memory_lock": "true"
        },
        "transport": {
          "type": {
            "default": "netty4"
          }
        },
        "xpack": {
          "security": {
            "enabled": "false"
          }
        },
        "network": {
          "host": "0.0.0.0"
        }
      },
      "os": {
        "refresh_interval_in_millis": 1000,
        "name": "Linux",
        "arch": "amd64",
        "version": "3.10.0-693.el7.x86_64",
        "available_processors": 16,
        "allocated_processors": 16
      },
      "process": {
        "refresh_interval_in_millis": 1000,
        "id": 694,
        "mlockall": true
      },
      "jvm": {
        "pid": 694,
        "version": "1.8.0_91",
        "vm_name": "Java HotSpot(TM) 64-Bit Server VM",
        "vm_version": "25.91-b14",
        "vm_vendor": "Oracle Corporation",
        "start_time_in_millis": 1527588993092,
        "mem": {
          "heap_init_in_bytes": 30064771072,
          "heap_max_in_bytes": 30064771072,
          "non_heap_init_in_bytes": 2555904,
          "non_heap_max_in_bytes": 0,
          "direct_max_in_bytes": 30064771072
        },
        "gc_collectors": [
          "G1 Young Generation",
          "G1 Old Generation"
        ],
        "memory_pools": [
          "Code Cache",
          "Metaspace",
          "Compressed Class Space",
          "G1 Eden Space",
          "G1 Survivor Space",
          "G1 Old Gen"
        ],
        "using_compressed_ordinary_object_pointers": "true",
        "input_arguments": [
          "-Xms28g",
          "-Xmx28g",
          "-Xmn14g",
          "-XX:+UseG1GC",
          "-XX:MaxGCPauseMillis=200",
          "-XX:+DisableExplicitGC",
          "-XX:+AlwaysPreTouch",
          "-Xss1m",
          "-Djava.awt.headless=true",
          "-Dfile.encoding=UTF-8",
          "-Djna.nosys=true",
          "-Djdk.io.permissionsUseCanonicalPath=true",
          "-Dio.netty.noUnsafe=true",
          "-Dio.netty.noKeySetOptimization=true",
          "-Dio.netty.recycler.maxCapacityPerThread=0",
          "-Dlog4j.shutdownHookEnabled=false",
          "-Dlog4j2.disable.jmx=true",
          "-Dlog4j.skipJansi=true",
          "-XX:+HeapDumpOnOutOfMemoryError",
          "-Des.path.home=/data/elasticsearch",
          "-Des.path.conf=/data/elasticsearch/config"
        ]
      },
      "thread_pool": {
        "watcher": {
          "type": "fixed",
          "min": 50,
          "max": 50,
          "queue_size": 1000
        },
        "force_merge": {
          "type": "fixed",
          "min": 1,
          "max": 1,
          "queue_size": -1
        },
        "ml_datafeed": {
          "type": "fixed",
          "min": 20,
          "max": 20,
          "queue_size": 200
        },
        "fetch_shard_started": {
          "type": "scaling",
          "min": 1,
          "max": 32,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "listener": {
          "type": "fixed",
          "min": 8,
          "max": 8,
          "queue_size": -1
        },
        "ml_autodetect": {
          "type": "fixed",
          "min": 80,
          "max": 80,
          "queue_size": 80
        },
        "index": {
          "type": "fixed",
          "min": 16,
          "max": 16,
          "queue_size": 200
        },
        "refresh": {
          "type": "scaling",
          "min": 1,
          "max": 8,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "generic": {
          "type": "scaling",
          "min": 4,
          "max": 128,
          "keep_alive": "30s",
          "queue_size": -1
        },
        "warmer": {
          "type": "scaling",
          "min": 1,
          "max": 5,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "search": {
          "type": "fixed_auto_queue_size",
          "min": 25,
          "max": 25,
          "queue_size": 1000
        },
        "flush": {
          "type": "scaling",
          "min": 1,
          "max": 5,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "fetch_shard_store": {
          "type": "scaling",
          "min": 1,
          "max": 32,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "management": {
          "type": "scaling",
          "min": 1,
          "max": 5,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "ml_utility": {
          "type": "fixed",
          "min": 80,
          "max": 80,
          "queue_size": 500
        },
        "get": {
          "type": "fixed",
          "min": 16,
          "max": 16,
          "queue_size": 1000
        },
        "bulk": {
          "type": "fixed",
          "min": 16,
          "max": 16,
          "queue_size": 200
        },
        "snapshot": {
          "type": "scaling",
          "min": 1,
          "max": 5,
          "keep_alive": "5m",
          "queue_size": -1
        }
      },
      "transport": {
        "bound_address": [
          "[::]:9300"
        ],
        "publish_address": "192.168.50.16:9300",
        "profiles": {}
      },
      "http": {
        "bound_address": [
          "[::]:9200"
        ],
        "publish_address": "192.168.50.16:9200",
        "max_content_length_in_bytes": 104857600
      },
      "plugins": [
        {
          "name": "analysis-ik",
          "version": "6.2.1",
          "description": "IK Analyzer for Elasticsearch",
          "classname": "org.elasticsearch.plugin.analysis.ik.AnalysisIkPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "x-pack-core",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Core",
          "classname": "org.elasticsearch.xpack.core.XPackPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "x-pack-deprecation",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Deprecation",
          "classname": "org.elasticsearch.xpack.deprecation.Deprecation",
          "extended_plugins": [
            "x-pack-core"
          ],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "x-pack-graph",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Graph",
          "classname": "org.elasticsearch.xpack.graph.Graph",
          "extended_plugins": [
            "x-pack-core"
          ],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "x-pack-logstash",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Logstash",
          "classname": "org.elasticsearch.xpack.logstash.Logstash",
          "extended_plugins": [
            "x-pack-core"
          ],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "x-pack-ml",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Machine Learning",
          "classname": "org.elasticsearch.xpack.ml.MachineLearning",
          "extended_plugins": [
            "x-pack-core"
          ],
          "has_native_controller": true,
          "requires_keystore": false
        },
        {
          "name": "x-pack-monitoring",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Monitoring",
          "classname": "org.elasticsearch.xpack.monitoring.Monitoring",
          "extended_plugins": [
            "x-pack-core"
          ],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "x-pack-security",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Security",
          "classname": "org.elasticsearch.xpack.security.Security",
          "extended_plugins": [
            "x-pack-core"
          ],
          "has_native_controller": false,
          "requires_keystore": true
        },
        {
          "name": "x-pack-upgrade",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Upgrade",
          "classname": "org.elasticsearch.xpack.upgrade.Upgrade",
          "extended_plugins": [
            "x-pack-core"
          ],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "x-pack-watcher",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Watcher",
          "classname": "org.elasticsearch.xpack.watcher.Watcher",
          "extended_plugins": [
            "x-pack-core"
          ],
          "has_native_controller": false,
          "requires_keystore": false
        }
      ],
      "modules": [
        {
          "name": "aggs-matrix-stats",
          "version": "6.2.1",
          "description": "Adds aggregations whose input are a list of numeric fields and output includes a matrix.",
          "classname": "org.elasticsearch.search.aggregations.matrix.MatrixAggregationPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "analysis-common",
          "version": "6.2.1",
          "description": """Adds "built in" analyzers to Elasticsearch.""",
          "classname": "org.elasticsearch.analysis.common.CommonAnalysisPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "ingest-common",
          "version": "6.2.1",
          "description": "Module for ingest processors that do not require additional security permissions or have large dependencies and resources",
          "classname": "org.elasticsearch.ingest.common.IngestCommonPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "lang-expression",
          "version": "6.2.1",
          "description": "Lucene expressions integration for Elasticsearch",
          "classname": "org.elasticsearch.script.expression.ExpressionPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "lang-mustache",
          "version": "6.2.1",
          "description": "Mustache scripting integration for Elasticsearch",
          "classname": "org.elasticsearch.script.mustache.MustachePlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "lang-painless",
          "version": "6.2.1",
          "description": "An easy, safe and fast scripting language for Elasticsearch",
          "classname": "org.elasticsearch.painless.PainlessPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "mapper-extras",
          "version": "6.2.1",
          "description": "Adds advanced field mappers",
          "classname": "org.elasticsearch.index.mapper.MapperExtrasPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "parent-join",
          "version": "6.2.1",
          "description": "This module adds the support parent-child queries and aggregations",
          "classname": "org.elasticsearch.join.ParentJoinPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "percolator",
          "version": "6.2.1",
          "description": "Percolator module adds capability to index queries and query these queries by specifying documents",
          "classname": "org.elasticsearch.percolator.PercolatorPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "rank-eval",
          "version": "6.2.1",
          "description": "The Rank Eval module adds APIs to evaluate ranking quality.",
          "classname": "org.elasticsearch.index.rankeval.RankEvalPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "reindex",
          "version": "6.2.1",
          "description": "The Reindex module adds APIs to reindex from one index to another or update documents in place.",
          "classname": "org.elasticsearch.index.reindex.ReindexPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "repository-url",
          "version": "6.2.1",
          "description": "Module for URL repository",
          "classname": "org.elasticsearch.plugin.repository.url.URLRepositoryPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "transport-netty4",
          "version": "6.2.1",
          "description": "Netty 4 based transport implementation",
          "classname": "org.elasticsearch.transport.Netty4Plugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "tribe",
          "version": "6.2.1",
          "description": "Tribe module",
          "classname": "org.elasticsearch.tribe.TribePlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        }
      ],
      "ingest": {
        "processors": [
          {
            "type": "append"
          },
          {
            "type": "convert"
          },
          {
            "type": "date"
          },
          {
            "type": "date_index_name"
          },
          {
            "type": "dot_expander"
          },
          {
            "type": "fail"
          },
          {
            "type": "foreach"
          },
          {
            "type": "grok"
          },
          {
            "type": "gsub"
          },
          {
            "type": "join"
          },
          {
            "type": "json"
          },
          {
            "type": "kv"
          },
          {
            "type": "lowercase"
          },
          {
            "type": "remove"
          },
          {
            "type": "rename"
          },
          {
            "type": "script"
          },
          {
            "type": "set"
          },
          {
            "type": "set_security_user"
          },
          {
            "type": "sort"
          },
          {
            "type": "split"
          },
          {
            "type": "trim"
          },
          {
            "type": "uppercase"
          },
          {
            "type": "urldecode"
          }
        ]
      }
    },
    "f75HW9fPSlywUtJX-mrvNg": {
      "name": "es1",
      "transport_address": "192.168.50.13:9300",
      "host": "192.168.50.13",
      "ip": "192.168.50.13",
      "version": "6.2.1",
      "build_hash": "7299dc3",
      "total_indexing_buffer": 1717986918,
      "roles": [
        "master",
        "data",
        "ingest"
      ],
      "attributes": {
        "ml.machine_memory": "33566806016",
        "ml.max_open_jobs": "20",
        "ml.enabled": "true"
      },
      "settings": {
        "cluster": {
          "name": "order"
        },
        "node": {
          "max_local_storage_nodes": "1",
          "name": "es1",
          "attr": {
            "ml": {
              "machine_memory": "33566806016",
              "max_open_jobs": "20",
              "enabled": "true"
            }
          },
          "data": "true",
          "ingest": "true",
          "master": "true"
        },
        "path": {
          "data": [
            "/data1/elasticsearch/data/"
          ],
          "logs": "/data/elasticsearch/logs",
          "home": "/data/elasticsearch"
        },
        "discovery": {
          "zen": {
            "fd": {
              "ping_interval": "10s",
              "ping_retries": "10",
              "ping_timeout": "60s"
            },
            "ping": {
              "unicast": {
                "hosts": [
                  "192.168.50.13",
                  "192.168.50.21",
                  "192.168.50.15",
                  "192.168.50.16",
                  "192.168.50.17"
                ]
              }
            }
          }
        },
        "client": {
          "type": "node"
        },
        "http": {
          "type": {
            "default": "netty4"
          },
          "port": "9200",
          "cors": {
            "allow-origin": "*",
            "allow-headers": "X-Requested-With, X-Auth-Token, Content-Type, Content-Length, Authorization",
            "allow-methods": "OPTIONS, HEAD, GET, POST, PUT, DELETE",
            "enabled": "true"
          }
        },
        "bootstrap": {
          "memory_lock": "true"
        },
        "transport": {
          "type": {
            "default": "netty4"
          }
        },
        "xpack": {
          "security": {
            "enabled": "false"
          }
        },
        "network": {
          "host": "0.0.0.0"
        }
      },
      "os": {
        "refresh_interval_in_millis": 1000,
        "name": "Linux",
        "arch": "amd64",
        "version": "3.10.0-693.el7.x86_64",
        "available_processors": 16,
        "allocated_processors": 16
      },
      "process": {
        "refresh_interval_in_millis": 1000,
        "id": 2462,
        "mlockall": true
      },
      "jvm": {
        "pid": 2462,
        "version": "1.8.0_91",
        "vm_name": "Java HotSpot(TM) 64-Bit Server VM",
        "vm_version": "25.91-b14",
        "vm_vendor": "Oracle Corporation",
        "start_time_in_millis": 1560325091749,
        "mem": {
          "heap_init_in_bytes": 17179869184,
          "heap_max_in_bytes": 17179869184,
          "non_heap_init_in_bytes": 2555904,
          "non_heap_max_in_bytes": 0,
          "direct_max_in_bytes": 17179869184
        },
        "gc_collectors": [
          "G1 Young Generation",
          "G1 Old Generation"
        ],
        "memory_pools": [
          "Code Cache",
          "Metaspace",
          "Compressed Class Space",
          "G1 Eden Space",
          "G1 Survivor Space",
          "G1 Old Gen"
        ],
        "using_compressed_ordinary_object_pointers": "true",
        "input_arguments": [
          "-Xms16g",
          "-Xmx16g",
          "-Xmn8g",
          "-XX:+UseG1GC",
          "-XX:MaxGCPauseMillis=200",
          "-XX:+DisableExplicitGC",
          "-XX:+AlwaysPreTouch",
          "-Xss1m",
          "-Djava.awt.headless=true",
          "-Dfile.encoding=UTF-8",
          "-Djna.nosys=true",
          "-Djdk.io.permissionsUseCanonicalPath=true",
          "-Dio.netty.noUnsafe=true",
          "-Dio.netty.noKeySetOptimization=true",
          "-Dio.netty.recycler.maxCapacityPerThread=0",
          "-Dlog4j.shutdownHookEnabled=false",
          "-Dlog4j2.disable.jmx=true",
          "-Dlog4j.skipJansi=true",
          "-XX:+HeapDumpOnOutOfMemoryError",
          "-Des.path.home=/data/elasticsearch",
          "-Des.path.conf=/data/elasticsearch/config"
        ]
      },
      "thread_pool": {
        "watcher": {
          "type": "fixed",
          "min": 50,
          "max": 50,
          "queue_size": 1000
        },
        "force_merge": {
          "type": "fixed",
          "min": 1,
          "max": 1,
          "queue_size": -1
        },
        "ml_datafeed": {
          "type": "fixed",
          "min": 20,
          "max": 20,
          "queue_size": 200
        },
        "fetch_shard_started": {
          "type": "scaling",
          "min": 1,
          "max": 32,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "listener": {
          "type": "fixed",
          "min": 8,
          "max": 8,
          "queue_size": -1
        },
        "ml_autodetect": {
          "type": "fixed",
          "min": 80,
          "max": 80,
          "queue_size": 80
        },
        "index": {
          "type": "fixed",
          "min": 16,
          "max": 16,
          "queue_size": 200
        },
        "refresh": {
          "type": "scaling",
          "min": 1,
          "max": 8,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "generic": {
          "type": "scaling",
          "min": 4,
          "max": 128,
          "keep_alive": "30s",
          "queue_size": -1
        },
        "warmer": {
          "type": "scaling",
          "min": 1,
          "max": 5,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "search": {
          "type": "fixed_auto_queue_size",
          "min": 25,
          "max": 25,
          "queue_size": 1000
        },
        "flush": {
          "type": "scaling",
          "min": 1,
          "max": 5,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "fetch_shard_store": {
          "type": "scaling",
          "min": 1,
          "max": 32,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "management": {
          "type": "scaling",
          "min": 1,
          "max": 5,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "ml_utility": {
          "type": "fixed",
          "min": 80,
          "max": 80,
          "queue_size": 500
        },
        "get": {
          "type": "fixed",
          "min": 16,
          "max": 16,
          "queue_size": 1000
        },
        "bulk": {
          "type": "fixed",
          "min": 16,
          "max": 16,
          "queue_size": 200
        },
        "snapshot": {
          "type": "scaling",
          "min": 1,
          "max": 5,
          "keep_alive": "5m",
          "queue_size": -1
        }
      },
      "transport": {
        "bound_address": [
          "[::]:9300"
        ],
        "publish_address": "192.168.50.13:9300",
        "profiles": {}
      },
      "http": {
        "bound_address": [
          "[::]:9200"
        ],
        "publish_address": "192.168.50.13:9200",
        "max_content_length_in_bytes": 104857600
      },
      "plugins": [
        {
          "name": "analysis-ik",
          "version": "6.2.1",
          "description": "IK Analyzer for Elasticsearch",
          "classname": "org.elasticsearch.plugin.analysis.ik.AnalysisIkPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "x-pack-core",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Core",
          "classname": "org.elasticsearch.xpack.core.XPackPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "x-pack-deprecation",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Deprecation",
          "classname": "org.elasticsearch.xpack.deprecation.Deprecation",
          "extended_plugins": [
            "x-pack-core"
          ],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "x-pack-graph",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Graph",
          "classname": "org.elasticsearch.xpack.graph.Graph",
          "extended_plugins": [
            "x-pack-core"
          ],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "x-pack-logstash",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Logstash",
          "classname": "org.elasticsearch.xpack.logstash.Logstash",
          "extended_plugins": [
            "x-pack-core"
          ],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "x-pack-ml",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Machine Learning",
          "classname": "org.elasticsearch.xpack.ml.MachineLearning",
          "extended_plugins": [
            "x-pack-core"
          ],
          "has_native_controller": true,
          "requires_keystore": false
        },
        {
          "name": "x-pack-monitoring",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Monitoring",
          "classname": "org.elasticsearch.xpack.monitoring.Monitoring",
          "extended_plugins": [
            "x-pack-core"
          ],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "x-pack-security",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Security",
          "classname": "org.elasticsearch.xpack.security.Security",
          "extended_plugins": [
            "x-pack-core"
          ],
          "has_native_controller": false,
          "requires_keystore": true
        },
        {
          "name": "x-pack-upgrade",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Upgrade",
          "classname": "org.elasticsearch.xpack.upgrade.Upgrade",
          "extended_plugins": [
            "x-pack-core"
          ],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "x-pack-watcher",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Watcher",
          "classname": "org.elasticsearch.xpack.watcher.Watcher",
          "extended_plugins": [
            "x-pack-core"
          ],
          "has_native_controller": false,
          "requires_keystore": false
        }
      ],
      "modules": [
        {
          "name": "aggs-matrix-stats",
          "version": "6.2.1",
          "description": "Adds aggregations whose input are a list of numeric fields and output includes a matrix.",
          "classname": "org.elasticsearch.search.aggregations.matrix.MatrixAggregationPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "analysis-common",
          "version": "6.2.1",
          "description": """Adds "built in" analyzers to Elasticsearch.""",
          "classname": "org.elasticsearch.analysis.common.CommonAnalysisPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "ingest-common",
          "version": "6.2.1",
          "description": "Module for ingest processors that do not require additional security permissions or have large dependencies and resources",
          "classname": "org.elasticsearch.ingest.common.IngestCommonPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "lang-expression",
          "version": "6.2.1",
          "description": "Lucene expressions integration for Elasticsearch",
          "classname": "org.elasticsearch.script.expression.ExpressionPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "lang-mustache",
          "version": "6.2.1",
          "description": "Mustache scripting integration for Elasticsearch",
          "classname": "org.elasticsearch.script.mustache.MustachePlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "lang-painless",
          "version": "6.2.1",
          "description": "An easy, safe and fast scripting language for Elasticsearch",
          "classname": "org.elasticsearch.painless.PainlessPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "mapper-extras",
          "version": "6.2.1",
          "description": "Adds advanced field mappers",
          "classname": "org.elasticsearch.index.mapper.MapperExtrasPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "parent-join",
          "version": "6.2.1",
          "description": "This module adds the support parent-child queries and aggregations",
          "classname": "org.elasticsearch.join.ParentJoinPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "percolator",
          "version": "6.2.1",
          "description": "Percolator module adds capability to index queries and query these queries by specifying documents",
          "classname": "org.elasticsearch.percolator.PercolatorPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "rank-eval",
          "version": "6.2.1",
          "description": "The Rank Eval module adds APIs to evaluate ranking quality.",
          "classname": "org.elasticsearch.index.rankeval.RankEvalPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "reindex",
          "version": "6.2.1",
          "description": "The Reindex module adds APIs to reindex from one index to another or update documents in place.",
          "classname": "org.elasticsearch.index.reindex.ReindexPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "repository-url",
          "version": "6.2.1",
          "description": "Module for URL repository",
          "classname": "org.elasticsearch.plugin.repository.url.URLRepositoryPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "transport-netty4",
          "version": "6.2.1",
          "description": "Netty 4 based transport implementation",
          "classname": "org.elasticsearch.transport.Netty4Plugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "tribe",
          "version": "6.2.1",
          "description": "Tribe module",
          "classname": "org.elasticsearch.tribe.TribePlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        }
      ],
      "ingest": {
        "processors": [
          {
            "type": "append"
          },
          {
            "type": "convert"
          },
          {
            "type": "date"
          },
          {
            "type": "date_index_name"
          },
          {
            "type": "dot_expander"
          },
          {
            "type": "fail"
          },
          {
            "type": "foreach"
          },
          {
            "type": "grok"
          },
          {
            "type": "gsub"
          },
          {
            "type": "join"
          },
          {
            "type": "json"
          },
          {
            "type": "kv"
          },
          {
            "type": "lowercase"
          },
          {
            "type": "remove"
          },
          {
            "type": "rename"
          },
          {
            "type": "script"
          },
          {
            "type": "set"
          },
          {
            "type": "set_security_user"
          },
          {
            "type": "sort"
          },
          {
            "type": "split"
          },
          {
            "type": "trim"
          },
          {
            "type": "uppercase"
          },
          {
            "type": "urldecode"
          }
        ]
      }
    },
    "TXZwYq7LS3-qWtibAODPIA": {
      "name": "es2",
      "transport_address": "192.168.50.21:9300",
      "host": "192.168.50.21",
      "ip": "192.168.50.21",
      "version": "6.2.1",
      "build_hash": "7299dc3",
      "total_indexing_buffer": 1932735283,
      "roles": [
        "master",
        "data",
        "ingest"
      ],
      "attributes": {
        "ml.machine_memory": "33566806016",
        "ml.max_open_jobs": "20",
        "ml.enabled": "true"
      },
      "settings": {
        "cluster": {
          "name": "order"
        },
        "node": {
          "max_local_storage_nodes": "1",
          "name": "es2",
          "attr": {
            "ml": {
              "machine_memory": "33566806016",
              "max_open_jobs": "20",
              "enabled": "true"
            }
          },
          "data": "true",
          "ingest": "true",
          "master": "true"
        },
        "path": {
          "data": [
            "/data1/elasticsearch/data/"
          ],
          "logs": "/data/elasticsearch/logs",
          "home": "/data/elasticsearch"
        },
        "discovery": {
          "zen": {
            "fd": {
              "ping_interval": "10s",
              "ping_retries": "10",
              "ping_timeout": "60s"
            },
            "ping": {
              "unicast": {
                "hosts": [
                  "192.168.50.13",
                  "192.168.50.21",
                  "192.168.50.15",
                  "192.168.50.16",
                  "192.168.50.17"
                ]
              }
            }
          }
        },
        "client": {
          "type": "node"
        },
        "http": {
          "type": {
            "default": "netty4"
          },
          "port": "9200",
          "cors": {
            "allow-origin": "*",
            "allow-headers": "X-Requested-With, X-Auth-Token, Content-Type, Content-Length, Authorization",
            "allow-methods": "OPTIONS, HEAD, GET, POST, PUT, DELETE",
            "enabled": "true"
          }
        },
        "bootstrap": {
          "memory_lock": "true"
        },
        "transport": {
          "type": {
            "default": "netty4"
          }
        },
        "xpack": {
          "security": {
            "enabled": "false"
          }
        },
        "network": {
          "host": "0.0.0.0"
        }
      },
      "os": {
        "refresh_interval_in_millis": 1000,
        "name": "Linux",
        "arch": "amd64",
        "version": "3.10.0-693.el7.x86_64",
        "available_processors": 16,
        "allocated_processors": 16
      },
      "process": {
        "refresh_interval_in_millis": 1000,
        "id": 13627,
        "mlockall": true
      },
      "jvm": {
        "pid": 13627,
        "version": "1.8.0_91",
        "vm_name": "Java HotSpot(TM) 64-Bit Server VM",
        "vm_version": "25.91-b14",
        "vm_vendor": "Oracle Corporation",
        "start_time_in_millis": 1552974355526,
        "mem": {
          "heap_init_in_bytes": 19327352832,
          "heap_max_in_bytes": 19327352832,
          "non_heap_init_in_bytes": 2555904,
          "non_heap_max_in_bytes": 0,
          "direct_max_in_bytes": 19327352832
        },
        "gc_collectors": [
          "G1 Young Generation",
          "G1 Old Generation"
        ],
        "memory_pools": [
          "Code Cache",
          "Metaspace",
          "Compressed Class Space",
          "G1 Eden Space",
          "G1 Survivor Space",
          "G1 Old Gen"
        ],
        "using_compressed_ordinary_object_pointers": "true",
        "input_arguments": [
          "-Xms18g",
          "-Xmx18g",
          "-XX:+UseG1GC",
          "-XX:MaxGCPauseMillis=200",
          "-XX:+DisableExplicitGC",
          "-XX:+AlwaysPreTouch",
          "-Xss1m",
          "-Djava.awt.headless=true",
          "-Dfile.encoding=UTF-8",
          "-Djna.nosys=true",
          "-Djdk.io.permissionsUseCanonicalPath=true",
          "-Dio.netty.noUnsafe=true",
          "-Dio.netty.noKeySetOptimization=true",
          "-Dio.netty.recycler.maxCapacityPerThread=0",
          "-Dlog4j.shutdownHookEnabled=false",
          "-Dlog4j2.disable.jmx=true",
          "-Dlog4j.skipJansi=true",
          "-XX:+HeapDumpOnOutOfMemoryError",
          "-Des.path.home=/data/elasticsearch",
          "-Des.path.conf=/data/elasticsearch/config"
        ]
      },
      "thread_pool": {
        "watcher": {
          "type": "fixed",
          "min": 50,
          "max": 50,
          "queue_size": 1000
        },
        "force_merge": {
          "type": "fixed",
          "min": 1,
          "max": 1,
          "queue_size": -1
        },
        "ml_datafeed": {
          "type": "fixed",
          "min": 20,
          "max": 20,
          "queue_size": 200
        },
        "fetch_shard_started": {
          "type": "scaling",
          "min": 1,
          "max": 32,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "listener": {
          "type": "fixed",
          "min": 8,
          "max": 8,
          "queue_size": -1
        },
        "ml_autodetect": {
          "type": "fixed",
          "min": 80,
          "max": 80,
          "queue_size": 80
        },
        "index": {
          "type": "fixed",
          "min": 16,
          "max": 16,
          "queue_size": 200
        },
        "refresh": {
          "type": "scaling",
          "min": 1,
          "max": 8,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "generic": {
          "type": "scaling",
          "min": 4,
          "max": 128,
          "keep_alive": "30s",
          "queue_size": -1
        },
        "warmer": {
          "type": "scaling",
          "min": 1,
          "max": 5,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "search": {
          "type": "fixed_auto_queue_size",
          "min": 25,
          "max": 25,
          "queue_size": 1000
        },
        "flush": {
          "type": "scaling",
          "min": 1,
          "max": 5,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "fetch_shard_store": {
          "type": "scaling",
          "min": 1,
          "max": 32,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "management": {
          "type": "scaling",
          "min": 1,
          "max": 5,
          "keep_alive": "5m",
          "queue_size": -1
        },
        "ml_utility": {
          "type": "fixed",
          "min": 80,
          "max": 80,
          "queue_size": 500
        },
        "get": {
          "type": "fixed",
          "min": 16,
          "max": 16,
          "queue_size": 1000
        },
        "bulk": {
          "type": "fixed",
          "min": 16,
          "max": 16,
          "queue_size": 200
        },
        "snapshot": {
          "type": "scaling",
          "min": 1,
          "max": 5,
          "keep_alive": "5m",
          "queue_size": -1
        }
      },
      "transport": {
        "bound_address": [
          "[::]:9300"
        ],
        "publish_address": "192.168.50.21:9300",
        "profiles": {}
      },
      "http": {
        "bound_address": [
          "[::]:9200"
        ],
        "publish_address": "192.168.50.21:9200",
        "max_content_length_in_bytes": 104857600
      },
      "plugins": [
        {
          "name": "analysis-ik",
          "version": "6.2.1",
          "description": "IK Analyzer for Elasticsearch",
          "classname": "org.elasticsearch.plugin.analysis.ik.AnalysisIkPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "x-pack-core",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Core",
          "classname": "org.elasticsearch.xpack.core.XPackPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "x-pack-deprecation",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Deprecation",
          "classname": "org.elasticsearch.xpack.deprecation.Deprecation",
          "extended_plugins": [
            "x-pack-core"
          ],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "x-pack-graph",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Graph",
          "classname": "org.elasticsearch.xpack.graph.Graph",
          "extended_plugins": [
            "x-pack-core"
          ],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "x-pack-logstash",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Logstash",
          "classname": "org.elasticsearch.xpack.logstash.Logstash",
          "extended_plugins": [
            "x-pack-core"
          ],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "x-pack-ml",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Machine Learning",
          "classname": "org.elasticsearch.xpack.ml.MachineLearning",
          "extended_plugins": [
            "x-pack-core"
          ],
          "has_native_controller": true,
          "requires_keystore": false
        },
        {
          "name": "x-pack-monitoring",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Monitoring",
          "classname": "org.elasticsearch.xpack.monitoring.Monitoring",
          "extended_plugins": [
            "x-pack-core"
          ],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "x-pack-security",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Security",
          "classname": "org.elasticsearch.xpack.security.Security",
          "extended_plugins": [
            "x-pack-core"
          ],
          "has_native_controller": false,
          "requires_keystore": true
        },
        {
          "name": "x-pack-upgrade",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Upgrade",
          "classname": "org.elasticsearch.xpack.upgrade.Upgrade",
          "extended_plugins": [
            "x-pack-core"
          ],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "x-pack-watcher",
          "version": "6.2.1",
          "description": "Elasticsearch Expanded Pack Plugin - Watcher",
          "classname": "org.elasticsearch.xpack.watcher.Watcher",
          "extended_plugins": [
            "x-pack-core"
          ],
          "has_native_controller": false,
          "requires_keystore": false
        }
      ],
      "modules": [
        {
          "name": "aggs-matrix-stats",
          "version": "6.2.1",
          "description": "Adds aggregations whose input are a list of numeric fields and output includes a matrix.",
          "classname": "org.elasticsearch.search.aggregations.matrix.MatrixAggregationPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "analysis-common",
          "version": "6.2.1",
          "description": """Adds "built in" analyzers to Elasticsearch.""",
          "classname": "org.elasticsearch.analysis.common.CommonAnalysisPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "ingest-common",
          "version": "6.2.1",
          "description": "Module for ingest processors that do not require additional security permissions or have large dependencies and resources",
          "classname": "org.elasticsearch.ingest.common.IngestCommonPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "lang-expression",
          "version": "6.2.1",
          "description": "Lucene expressions integration for Elasticsearch",
          "classname": "org.elasticsearch.script.expression.ExpressionPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "lang-mustache",
          "version": "6.2.1",
          "description": "Mustache scripting integration for Elasticsearch",
          "classname": "org.elasticsearch.script.mustache.MustachePlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "lang-painless",
          "version": "6.2.1",
          "description": "An easy, safe and fast scripting language for Elasticsearch",
          "classname": "org.elasticsearch.painless.PainlessPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "mapper-extras",
          "version": "6.2.1",
          "description": "Adds advanced field mappers",
          "classname": "org.elasticsearch.index.mapper.MapperExtrasPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "parent-join",
          "version": "6.2.1",
          "description": "This module adds the support parent-child queries and aggregations",
          "classname": "org.elasticsearch.join.ParentJoinPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "percolator",
          "version": "6.2.1",
          "description": "Percolator module adds capability to index queries and query these queries by specifying documents",
          "classname": "org.elasticsearch.percolator.PercolatorPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "rank-eval",
          "version": "6.2.1",
          "description": "The Rank Eval module adds APIs to evaluate ranking quality.",
          "classname": "org.elasticsearch.index.rankeval.RankEvalPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "reindex",
          "version": "6.2.1",
          "description": "The Reindex module adds APIs to reindex from one index to another or update documents in place.",
          "classname": "org.elasticsearch.index.reindex.ReindexPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "repository-url",
          "version": "6.2.1",
          "description": "Module for URL repository",
          "classname": "org.elasticsearch.plugin.repository.url.URLRepositoryPlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "transport-netty4",
          "version": "6.2.1",
          "description": "Netty 4 based transport implementation",
          "classname": "org.elasticsearch.transport.Netty4Plugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        },
        {
          "name": "tribe",
          "version": "6.2.1",
          "description": "Tribe module",
          "classname": "org.elasticsearch.tribe.TribePlugin",
          "extended_plugins": [],
          "has_native_controller": false,
          "requires_keystore": false
        }
      ],
      "ingest": {
        "processors": [
          {
            "type": "append"
          },
          {
            "type": "convert"
          },
          {
            "type": "date"
          },
          {
            "type": "date_index_name"
          },
          {
            "type": "dot_expander"
          },
          {
            "type": "fail"
          },
          {
            "type": "foreach"
          },
          {
            "type": "grok"
          },
          {
            "type": "gsub"
          },
          {
            "type": "join"
          },
          {
            "type": "json"
          },
          {
            "type": "kv"
          },
          {
            "type": "lowercase"
          },
          {
            "type": "remove"
          },
          {
            "type": "rename"
          },
          {
            "type": "script"
          },
          {
            "type": "set"
          },
          {
            "type": "set_security_user"
          },
          {
            "type": "sort"
          },
          {
            "type": "split"
          },
          {
            "type": "trim"
          },
          {
            "type": "uppercase"
          },
          {
            "type": "urldecode"
          }
        ]
      }
    }
  }
}

發佈了57 篇原創文章 · 獲贊 59 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章