# 重要的Elasticsearch配置
雖然Elasticsearch僅需要很少的配置,但在進入生產使用之前還是需要手動配置一些配置。
- [path.data和path.logs](#path)
- [cluster.name](#cluster-name)
- [node.name](#node-name)
- [bootstrap.memory\_lock](#bootstrap-memory_lock)
- [network.host](#network-host)
- [discovery.zen.ping.unicast.hosts](#discovery-zen-ping-unicast-hosts)
- [discovery.zen.minimum\_master\_nodes](#discovery-zen-minimum_master_nodes)
## path.data與path.logs
如果使用`.zip`或`.tar.gz`歸檔,則數據和日志目錄是`$ES_HOME`的子文件夾。 如果這些重要的文件夾保留在其默認位置,則在將Elasticsearch升級到新版本時存在將其刪除的高風險。
在生產使用中,幾乎肯定要更改數據和日志文件夾的位置:
```
path:
logs: /var/log/elasticsearch
data: /var/data/elasticsearch
```
RPM和Debian發行版已經使用數據和日志的自定義路徑。
`path.data`配置可以設置為多個路徑,在這種情況下,所有路徑將用于存儲數據(雖然屬于單個分片的文件將全部存儲在同一數據路徑上):
```
path:
data:
- /mnt/elasticsearch_1
- /mnt/elasticsearch_2
- /mnt/elasticsearch_3
```
## cluster.name
節點只能在群集與群集中的所有其他節點公共相同的`cluster.name`時才能加入群集。 默認名稱為`elasticsearch`,但您應將其更改為描述集群用途的適當名稱。
```
cluster.name: logging-prod
```
確保不要在不同的環境中重復使用相同的集群名稱,否則可能會導致加入錯誤集群的節點。
## node.name
默認情況下,Elasticsearch將使用隨機生成的uuid的前7個字符作為節點id。 請注意,節點ID是持久化的,并且在節點重新啟動時不會更改,因此默認節點名稱也不會更改。
值得配置一個更有意義的名稱,這也將有重新啟動節點后仍然存在的優勢:
```
node.name: prod-data-2
```
node.name也可以設置為服務器的HOSTNAME,如下所示:
```
node.name: ${HOSTNAME}
```
## bootstrap.memory\_lock
禁用JVM的swapped交換到磁盤對節點健康是至關重要的。 實現的一種方法是將`bootstrap.memory_lock`設置為`true`。
要使此設置生效,需要首先配置其他系統設置。 有關如何正確設置內存鎖定的更多詳細信息,請參閱[啟用bootstrap.memory\_lock](Bootstrap_Checks/Memory_lock_check.md)。
## network.host
默認情況下,Elasticsearch僅僅綁定在本地回路地址——如:127.0.0.1與\[::1\]。這在一臺服務器上跑一個開發節點是足夠的。
> 提示
>
> 事實上,多個節點可以在單個節點上相同的`$ES_HOME`位置一天運行。這可以用于測試Elasticsearch形成集群的能力,但它不是一個推薦的配置方式用于生產。
為了將其它服務器上的節點形成一個可以相互通訊的集群,你的節點將不能綁定在一個回路地址上。 這里有更多的[網路配置](../Modules/Network_Settings.md),通常你只需要配置`network.host`:
```
network.host: 192.168.1.10
```
`network.host`也可以配置成一些能識別的特殊的值,譬如:`_local_`、`_site`、`_global_`,它們可以結合指定`:ip4`與`ip6`來使用。更多相信信息請參見:[網路配置](../Modules/Network_Settings.md#network-interface-values)
> 重要
>
> 一旦你自定義了`network.host`的配置,Elasticsearch將假設你已經從開發模式轉到了生產模式,并將升級系統檢測的警告信息為異常信息。更多信息請參見:[開發模式vs生產模式](Important_System_Configuration.md#dev-vs-prod)
## discovery.zen.ping.unicast.hosts(單播發現)
開箱即用,不用任何網絡配置,Elasticsearch將綁定到可用的回路地址,并掃描9300年到9305的端口去連接同一機器上的其他節點,試圖連接到相同的服務器上運行的其他節點。它提供了不需要任何配置就能自動組建集群的體驗。
當與其它機器上的節點要形成一個集群時,你需要提供一個在線且可訪問的節點列表。像如下來配置:
```
discovery.zen.ping.unicast.hosts:
- 192.168.1.10:9300
- 192.168.1.11 #①
- seeds.mydomain.com #②
```
① 未指定端口時,將使用默認的`transport.profiles.default.port`值,如果此值也為設置則使用`transport.tcp.port`
- - - - - -
② 主機名將被嘗試解析成能解析的多個IP
## discovery.zen.minimum\_master\_nodes
為防止數據丟失,配置`discovery-zen-minimum_master_nodes`將非常重要,他規定了必須至少要有多少個`master`節點才能形成一個集群。
沒有此設置時,一個集群在發生網絡問題是可能會分裂成多個集群——腦裂——這將導致數據丟失。更多詳細信息請參見:[通過`minimum_master_nodes`避免腦裂](../Modules/Node.md#split-brain)
為避免腦裂,你需要根據`master`節點數來設置法定人數:
```
(master_eligible_nodes / 2) + 1
```
換句話說,如果你有三個`master`節點,最小的主節點數因被設置為`(3/2)+1`或者是`2`
```
discovery.zen.minimum_master_nodes: 2
```
## JVM heap dump path
The?[RPM](https://www.elastic.co/guide/en/elasticsearch/reference/6.0/rpm.html "Install Elasticsearch with RPM")?and?[Debian](https://www.elastic.co/guide/en/elasticsearch/reference/6.0/deb.html "Install Elasticsearch with Debian Package")?package distributions default to configuring the JVM to dump the heap on out of memory exceptions to?`/var/lib/elasticsearch`. If this path is not suitable for storing heap dumps, you should modify the entry?`-XX:HeapDumpPath=/var/lib/elasticsearch`?in?[`jvm.options`](https://www.elastic.co/guide/en/elasticsearch/reference/6.0/setting-system-settings.html#jvm-options "Setting JVM options")?to an alternate path. If you specify a filename instead of a directory, the JVM will repeatedly use the same file; this is one mechanism for preventing heap dumps from accumulating in the heap dump path. Alternatively, you can configure a scheduled task via your OS to remove heap dumps that are older than a configured age.
Note that the archive distributions do not configure the heap dump path by default. Instead, the JVM will default to dumping to the working directory for the Elasticsearch process. If you wish to configure a heap dump path, you should modify the entry?`#-XX:HeapDumpPath=/heap/dump/path`?in?[`jvm.options`](https://www.elastic.co/guide/en/elasticsearch/reference/6.0/setting-system-settings.html#jvm-options "Setting JVM options")?to remove the comment marker?`#`?and to specify an actual path.
> my note
>
> `bootstrap.memory_lock`
> `discovery.zen.ping.unicast.hosts` master節點和slave節點的配置
> `JVM heap dump path`
- 入門
- 基本概念
- 安裝
- 探索你的集群
- 集群健康
- 列出所有索引庫
- 創建一個索引庫
- 索引文檔創建與查詢
- 刪除一個索引庫
- 修改你的數據
- 更新文檔
- 刪除文檔
- 批量處理
- 探索你的數據
- 搜索API
- 查詢語言介紹
- 執行搜索
- 執行過濾
- 執行聚合
- 總結
- Elasticsearch設置
- 安裝Elasticsearch
- .zip或.tar.gz文件的安裝方式
- Install Elasticsearch with .zip on Windows
- Debian軟件包安裝方式
- RPM安裝方式
- Install Elasticsearch with Windows MSI Installer
- Docker安裝方式
- 配置Elasticsearch
- 安全配置
- 日志配置
- 重要的Elasticsearch配置
- 重要的系統配置
- 系統設置
- 在jvm.options中設置JVM堆大小
- 禁用swapping
- 文件描述符
- 虛擬內存
- 線程數
- DNS cache settings
- 啟動前檢查
- 堆大小檢查
- 文件描述符檢查
- 內存鎖定檢查
- 最大線程數檢查
- 最大虛擬內存檢查
- Max file size check
- 最大map數檢查
- JVM Client模式檢查
- 串行收集使用檢查
- 系統調用過濾檢查
- OnError與OnOutOfMemoryError檢查
- Early-access check
- G1GC檢查
- Elasticsearch停機
- Elasticsearch升級
- 滾動升級
- 全集群重啟升級
- 索引重建升級
- Set up X-Pack
- Installing X-Pack
- X-Pack Settings
- Watcher Settings
- Configuring Security
- Breaking changes in 6.0
- X-Pack Breaking Changes
- 重大變化
- 6.0的重大變化
- 聚合變化
- Cat API變化
- 客戶端變化
- 集群變化
- 文檔API變化
- 索引變化
- 預處理變化
- 映射變化
- Packaging變化
- Percolator變化
- 插件變化
- 索引重建變化
- 信息統計變化
- DSL查詢變化
- 設置變化
- 腳本變化
- API約定
- 多索引語法
- 索引庫名稱的日期運算
- 常用選項
- URL-based訪問控制
- 文檔APIs
- 讀寫文檔
- 索引接口
- Get接口
- Delete API
- Delete By Query API
- Update API
- Update By Query API
- Multi Get API
- Bulk API
- Reindex API
- Term Vectors
- Multi termvectors API
- ?refresh
- 搜索APIs
- Search
- URI Search
- Request Body Search
- Query
- From / Size
- Sort
- Source filtering
- Fields
- Script Fields
- Doc value Fields
- Post filter
- Highlighting
- Rescoring
- Search Type
- Scroll
- Preference
- Explain
- Version
- Index Boost
- min_score
- Named Queries
- Inner hits
- Field Collapsing
- Search After
- Search Template
- Multi Search Template
- Search Shards API
- Suggesters
- Term suggester
- Phrase Suggester
- Completion Suggester
- Context Suggester
- Returning the type of the suggester
- Multi Search API
- Count API
- Validate API
- Explain API
- Profile API
- Profiling Queries
- Profiling Aggregations
- Profiling Considerations
- Field Capabilities API
- Aggregations
- Metrics Aggregations
- 平均值聚合
- 值計數聚合(Value Count Aggregation)
- Cardinality Aggregation
- Extended Stats Aggregation
- 地理邊界聚合
- 地理重心聚合
- Max Aggregation
- Min Aggregation
- Percentiles Aggregation
- Percentile Ranks Aggregation
- Scripted Metric Aggregation
- Stats Aggregation
- Sum Aggregation
- Top hits Aggregation
- Value Count Aggregation
- Bucket Aggregations
- 鄰接矩陣聚合
- Children Aggregation
- Date Histogram Aggregation
- Date Range Aggregation
- Significant Terms Aggregation
- Filter Aggregation(過濾器聚合)
- Filters Aggregation
- Geo Distance Aggregation(地理距離聚合) 轉至元數據結尾
- GeoHash grid Aggregation(GeoHash網格聚合)
- Global Aggregation(全局聚合) 轉至元數據結尾
- Histogram Aggregation
- IP Range Aggregation(IP范圍聚合)
- Missing Aggregation
- Nested Aggregation(嵌套聚合)
- Range Aggregation(范圍聚合)
- Reverse nested Aggregation
- Sampler Aggregation
- Significant Terms Aggregation
- Significant Text Aggregation
- Terms Aggregation
- Pipeline Aggregations
- Avg Bucket Aggregation
- Derivative Aggregation(導數聚合)
- Max Bucket Aggregation
- Min Bucket Aggregation
- Sum Bucket Aggregation
- Stats Bucket Aggregation
- Extended Stats Bucket Aggregation(擴展信息桶聚合)
- Percentiles Bucket Aggregation(百分數桶聚合)
- Moving Average Aggregation
- Cumulative Sum Aggregation(累積匯總聚合)
- Bucket Script Aggregation(桶腳本聚合)
- Bucket Selector Aggregation(桶選擇器聚合)
- Serial Differencing Aggregation(串行差異聚合)
- Matrix Aggregations
- Matrix Stats
- Caching heavy aggregations
- Returning only aggregation results
- Aggregation Metadata
- Returning the type of the aggregation
- Indices APIs
- Create Index /創建索引
- Delete Index /刪除索引
- Get Index /獲取索引
- Indices Exists /索引存在
- Open / Close Index API /啟動關閉索引
- Shrink Index /縮小索引
- Rollover Index/滾動索引
- Put Mapping /提交映射
- Get Mapping /獲取映射
- Get Field Mapping /獲取字段映射
- Types Exists
- Index Aliases
- Update Indices Settings
- Get Settings
- Analyze
- Explain Analyze
- Index Templates
- 索引統計信息
- 索引段
- 索引恢復
- 索引分片存儲
- 清理緩存
- 刷新
- 同步刷新
- 重新加載
- 強制合并
- Cat APIs
- cat aliases
- cat allocation
- cat count
- cat fielddata
- cat health
- cat indices
- cat master
- cat nodeattrs
- cat nodes
- cat pending tasks
- cat plugins
- cat recovery
- cat repositories
- cat segments
- cat shards
- cat thread pool
- cat snapshots
- cat templates
- Cluster APIs
- 集群健康
- 集群狀態
- 集群統計
- 掛起的集群任務
- 集群重新路由
- Cluster Update Settings
- Nodes Stats
- Nodes Info
- Nodes Feature Usage
- Remote Cluster Info
- Task Management API
- Nodes hot_threads
- Cluster Allocation Explain API
- Query DSL
- 查詢context與過濾context
- Match All Query
- 全文搜索
- 匹配查詢
- 短語匹配查詢
- 短語前綴匹配查詢
- 多字段查詢
- 常用術語查詢
- 查詢語句查詢
- 簡單查詢語句
- Term level queries
- Term Query
- Terms Query
- Range Query
- Exists Query
- Prefix Query
- Wildcard Query
- Regexp Query
- Fuzzy Query
- Type Query
- Ids Query
- 復合查詢
- Constant Score 查詢
- Bool 查詢
- Dis Max 查詢
- Function Score 查詢
- Boosting 查詢
- Joining queries
- Has Child Query
- Has Parent Query
- Nested Query(嵌套查詢)
- Parent Id Query
- Geo queries
- GeoShape Query(地理形狀查詢)
- Geo Bounding Box Query(地理邊框查詢)
- Geo Distance Query(地理距離查詢)
- Geo Polygon Query(地理多邊形查詢)
- Specialized queries
- More Like This Query
- Script Query
- Percolate Query
- Span queries
- Span Term 查詢
- Span Multi Term 查詢
- Span First 查詢
- Span Near 查詢
- Span Or 查詢
- Span Not 查詢
- Span Containing 查詢
- Span Within 查詢
- Span Field Masking 查詢 轉至元數據結尾
- Minimum Should Match
- Multi Term Query Rewrite
- Mapping
- Removal of mapping types
- Field datatypes
- Array
- Binary
- Range
- Boolean
- Date
- Geo-point datatype
- Geo-Shape datatype
- IP datatype
- Keyword datatype
- Nested datatype
- Numeric datatypes
- Object datatype
- Text
- Token數
- 滲濾型
- join datatype
- Meta-Fields
- _all field
- _field_names field
- _id field
- _index field
- _meta field
- _routing field
- _source field
- _type field
- _uid field
- Mapping parameters
- analyzer(分析器)
- normalizer(歸一化)
- boost(提升)
- Coerce(強制類型轉換)
- copy_to(合并參數)
- doc_values(文檔值)
- dynamic(動態設置)
- enabled(開啟字段)
- eager_global_ordinals
- fielddata(字段數據)
- format (日期格式)
- ignore_above(忽略超越限制的字段)
- ignore_malformed(忽略格式不對的數據)
- index (索引)
- index_options(索引設置)
- fields(字段)
- Norms (標準信息)
- null_value(空值)
- position_increment_gap(短語位置間隙)
- properties (屬性)
- search_analyzer (搜索分析器)
- similarity (匹配方法)
- store(存儲)
- Term_vectors(詞根信息)
- Dynamic Mapping
- Dynamic field mapping(動態字段映射)
- Dynamic templates(動態模板)
- default mapping(mapping中的_default_)
- Analysis
- Anatomy of an analyzer(分析器的分析)
- Testing analyzers(測試分析器)
- Analyzers(分析器)
- Configuring built-in analyzers(配置內置分析器)
- Standard Analyzer(標準分析器)
- Simple Analyzer(簡單分析器)
- 空白分析器
- Stop Analyzer
- Keyword Analyzer
- 模式分析器
- 語言分析器
- 指紋分析器
- 自定義分析器
- Normalizers
- Tokenizers(分詞器)
- Standard Tokenizer(標準分詞器)
- Letter Tokenizer
- Lowercase Tokenizer (小寫分詞器)
- Whitespace Analyzer
- UAX URL Email Tokenizer
- Classic Tokenizer
- Thai Tokenizer(泰語分詞器)
- NGram Tokenizer
- Edge NGram Tokenizer
- Keyword Analyzer
- Pattern Tokenizer
- Simple Pattern Tokenizer
- Simple Pattern Split Tokenizer
- Path Hierarchy Tokenizer(路徑層次分詞器)
- Token Filters(詞元過濾器)
- Standard Token Filter
- ASCII Folding Token Filter
- Flatten Graph Token Filter
- Length Token Filter
- Lowercase Token Filter
- Uppercase Token Filter
- NGram Token Filter
- Edge NGram Token Filter
- Porter Stem Token Filter
- Shingle Token Filter
- Stop Token Filter
- Word Delimiter Token Filter
- Word Delimiter Graph Token Filter
- Stemmer Token Filter
- Stemmer Override Token Filter
- Keyword Marker Token Filter
- Keyword Repeat Token Filter
- KStem Token Filter
- Snowball Token Filter
- Phonetic Token Filter
- Synonym Token Filter
- Synonym Graph Token Filter
- Compound Word Token Filters
- Reverse Token Filter
- Elision Token Filter
- Truncate Token Filter
- Unique Token Filter
- Pattern Capture Token Filter
- Pattern Replace Token Filter
- Trim Token Filter
- Limit Token Count Token Filter
- Hunspell Token Filter
- Common Grams Token Filter
- Normalization Token Filter
- CJK Width Token Filter
- CJK Bigram Token Filter
- Delimited Payload Token Filter
- Keep Words Token Filter
- Keep Types Token Filter
- Classic Token Filter
- Apostrophe Token Filter
- Decimal Digit Token Filter
- Fingerprint Token Filter
- Minhash Token Filter
- Character Filters(字符過濾器)
- HTML Strip Character Filter
- Mapping Character Filter
- Pattern Replace Character Filter
- 模塊
- Cluster
- 集群級路由和碎片分配
- 基于磁盤的分片分配
- 分片分配awareness
- 分片分配過濾
- Miscellaneous cluster settings
- Scripting
- Painless Scripting Language
- Lucene Expressions Language
- Advanced scripts using script engines
- Snapshot And Restore
- Thread Pool
- Index Modules(索引模塊)
- 預處理節點
- Pipeline Definition
- Ingest APIs
- Put Pipeline API
- Get Pipeline API
- Delete Pipeline API
- Simulate Pipeline API
- Accessing Data in Pipelines
- Handling Failures in Pipelines
- Processors
- Monitoring Elasticsearch
- X-Pack APIs
- X-Pack Commands
- How To
- Testing(測試)
- Glossary of terms
- Release Notes
- X-Pack Release Notes