Lines 1-337
Link Here
|
1 |
##################### ElasticSearch Configuration Example ##################### |
|
|
2 |
|
3 |
# This file contains an overview of various configuration settings, |
4 |
# targeted at operations staff. Application developers should |
5 |
# consult the guide at <http://elasticsearch.org/guide>. |
6 |
# |
7 |
# The installation procedure is covered at |
8 |
# <http://elasticsearch.org/guide/reference/setup/installation.html>. |
9 |
# |
10 |
# ElasticSearch comes with reasonable defaults for most settings, |
11 |
# so you can try it out without bothering with configuration. |
12 |
# |
13 |
# Most of the time, these defaults are just fine for running a production |
14 |
# cluster. If you're fine-tuning your cluster, or wondering about the |
15 |
# effect of certain configuration option, please _do ask_ on the |
16 |
# mailing list or IRC channel [http://elasticsearch.org/community]. |
17 |
|
18 |
# Any element in the configuration can be replaced with environment variables |
19 |
# by placing them in ${...} notation. For example: |
20 |
# |
21 |
# node.rack: ${RACK_ENV_VAR} |
22 |
|
23 |
# See <http://elasticsearch.org/guide/reference/setup/configuration.html> |
24 |
# for information on supported formats and syntax for the configuration file. |
25 |
|
26 |
|
27 |
################################### Cluster ################################### |
28 |
|
29 |
# Cluster name identifies your cluster for auto-discovery. If you're running |
30 |
# multiple clusters on the same network, make sure you're using unique names. |
31 |
# |
32 |
# cluster.name: elasticsearch |
33 |
|
34 |
|
35 |
#################################### Node ##################################### |
36 |
|
37 |
# Node names are generated dynamically on startup, so you're relieved |
38 |
# from configuring them manually. You can tie this node to a specific name: |
39 |
# |
40 |
# node.name: "Franz Kafka" |
41 |
|
42 |
# Every node can be configured to allow or deny being eligible as the master, |
43 |
# and to allow or deny to store the data. |
44 |
# |
45 |
# Allow this node to be eligible as a master node (enabled by default): |
46 |
# |
47 |
# node.master: true |
48 |
# |
49 |
# Allow this node to store data (enabled by default): |
50 |
# |
51 |
# node.data: true |
52 |
|
53 |
# You can exploit these settings to design advanced cluster topologies. |
54 |
# |
55 |
# 1. You want this node to never become a master node, only to hold data. |
56 |
# This will be the "workhorse" of your cluster. |
57 |
# |
58 |
# node.master: false |
59 |
# node.data: true |
60 |
# |
61 |
# 2. You want this node to only serve as a master: to not store any data and |
62 |
# to have free resources. This will be the "coordinator" of your cluster. |
63 |
# |
64 |
# node.master: true |
65 |
# node.data: false |
66 |
# |
67 |
# 3. You want this node to be neither master nor data node, but |
68 |
# to act as a "search load balancer" (fetching data from nodes, |
69 |
# aggregating results, etc.) |
70 |
# |
71 |
# node.master: false |
72 |
# node.data: false |
73 |
|
74 |
# Use the Cluster Health API [http://localhost:9200/_cluster/health], the |
75 |
# Node Info API [http://localhost:9200/_cluster/nodes] or GUI tools |
76 |
# such as <http://github.com/lukas-vlcek/bigdesk> and |
77 |
# <http://mobz.github.com/elasticsearch-head> to inspect the cluster state. |
78 |
|
79 |
# A node can have generic attributes associated with it, which can later be used |
80 |
# for customized shard allocation filtering, or allocation awareness. An attribute |
81 |
# is a simple key value pair, similar to node.key: value, here is an example: |
82 |
# |
83 |
# node.rack: rack314 |
84 |
|
85 |
|
86 |
#################################### Index #################################### |
87 |
|
88 |
# You can set a number of options (such as shard/replica options, mapping |
89 |
# or analyzer definitions, translog settings, ...) for indices globally, |
90 |
# in this file. |
91 |
# |
92 |
# Note, that it makes more sense to configure index settings specifically for |
93 |
# a certain index, either when creating it or by using the index templates API. |
94 |
# |
95 |
# See <http://elasticsearch.org/guide/reference/index-modules/> and |
96 |
# <http://elasticsearch.org/guide/reference/api/admin-indices-create-index.html> |
97 |
# for more information. |
98 |
|
99 |
# Set the number of shards (splits) of an index (5 by default): |
100 |
# |
101 |
# index.number_of_shards: 5 |
102 |
|
103 |
# Set the number of replicas (additional copies) of an index (1 by default): |
104 |
# |
105 |
# index.number_of_replicas: 1 |
106 |
|
107 |
# Note, that for development on a local machine, with small indices, it usually |
108 |
# makes sense to "disable" the distributed features: |
109 |
# |
110 |
# index.number_of_shards: 1 |
111 |
# index.number_of_replicas: 0 |
112 |
|
113 |
# These settings directly affect the performance of index and search operations |
114 |
# in your cluster. Assuming you have enough machines to hold shards and |
115 |
# replicas, the rule of thumb is: |
116 |
# |
117 |
# 1. Having more *shards* enhances the _indexing_ performance and allows to |
118 |
# _distribute_ a big index across machines. |
119 |
# 2. Having more *replicas* enhances the _search_ performance and improves the |
120 |
# cluster _availability_. |
121 |
# |
122 |
# The "number_of_shards" is a one-time setting for an index. |
123 |
# |
124 |
# The "number_of_replicas" can be increased or decreased anytime, |
125 |
# by using the Index Update Settings API. |
126 |
# |
127 |
# ElasticSearch takes care about load balancing, relocating, gathering the |
128 |
# results from nodes, etc. Experiment with different settings to fine-tune |
129 |
# your setup. |
130 |
|
131 |
# Use the Index Status API (<http://localhost:9200/A/_status>) to inspect |
132 |
# the index status. |
133 |
|
134 |
|
135 |
#################################### Paths #################################### |
136 |
|
137 |
# Path to directory containing configuration (this file and logging.yml): |
138 |
# |
139 |
# path.conf: /path/to/conf |
140 |
|
141 |
# Path to directory where to store index data allocated for this node. |
142 |
# |
143 |
# path.data: /path/to/data |
144 |
# |
145 |
# Can optionally include more than one location, causing data to be striped across |
146 |
# the locations on a file level, favouring locations with most free |
147 |
# space on creation. For example: |
148 |
# |
149 |
# path.data: /path/to/data1,/path/to/data2 |
150 |
|
151 |
# Path to temporary files: |
152 |
# |
153 |
# path.work: /path/to/work |
154 |
|
155 |
# Path to log files: |
156 |
# |
157 |
# path.logs: /path/to/logs |
158 |
|
159 |
# Path to where plugins are installed: |
160 |
# |
161 |
# path.plugins: /path/to/plugins |
162 |
|
163 |
|
164 |
################################### Memory #################################### |
165 |
|
166 |
# ElasticSearch performs poorly when JVM starts swapping: you should ensure that |
167 |
# it _never_ swaps. |
168 |
# |
169 |
# Set this property to true to lock the memory: |
170 |
# |
171 |
# bootstrap.mlockall: true |
172 |
|
173 |
# Make sure that the ES_MIN_MEM and ES_MAX_MEM environment variables are set |
174 |
# to the same value, and that the machine has enough memory to allocate |
175 |
# for ElasticSearch, leaving enough memory for the operating system itself. |
176 |
# |
177 |
# You should also make sure that the ElasticSearch process is allowed to lock |
178 |
# the memory, eg. by using `ulimit -l unlimited`. |
179 |
|
180 |
|
181 |
############################## Network And HTTP ############################### |
182 |
|
183 |
# ElasticSearch, by default, binds itself to the 0.0.0.0 address, and listens |
184 |
# on port [9200-9300] for HTTP traffic and on port [9300-9400] for node-to-node |
185 |
# communication. (the range means that if the port is busy, it will automatically |
186 |
# try the next port). |
187 |
|
188 |
# Set the bind address specifically (IPv4 or IPv6): |
189 |
# |
190 |
# network.bind_host: 192.168.0.1 |
191 |
|
192 |
# Set the address other nodes will use to communicate with this node. If not |
193 |
# set, it is automatically derived. It must point to an actual IP address. |
194 |
# |
195 |
# network.publish_host: 192.168.0.1 |
196 |
|
197 |
# Set both 'bind_host' and 'publish_host': |
198 |
# |
199 |
# network.host: 192.168.0.1 |
200 |
|
201 |
# Set a custom port for the node to node communication (9300 by default): |
202 |
# |
203 |
# transport.port: 9300 |
204 |
|
205 |
# Enable compression for all communication between nodes (disabled by default): |
206 |
# |
207 |
# transport.tcp.compress: true |
208 |
|
209 |
# Set a custom port to listen for HTTP traffic: |
210 |
# |
211 |
# http.port: 9200 |
212 |
|
213 |
# Set a custom allowed content length: |
214 |
# |
215 |
# http.max_content_length: 100mb |
216 |
|
217 |
# Disable HTTP completely: |
218 |
# |
219 |
# http.enabled: false |
220 |
|
221 |
|
222 |
################################### Gateway ################################### |
223 |
|
224 |
# The gateway allows for persisting the cluster state between full cluster |
225 |
# restarts. Every change to the state (such as adding an index) will be stored |
226 |
# in the gateway, and when the cluster starts up for the first time, |
227 |
# it will read its state from the gateway. |
228 |
|
229 |
# There are several types of gateway implementations. For more information, |
230 |
# see <http://elasticsearch.org/guide/reference/modules/gateway>. |
231 |
|
232 |
# The default gateway type is the "local" gateway (recommended): |
233 |
# |
234 |
# gateway.type: local |
235 |
|
236 |
# Settings below control how and when to start the initial recovery process on |
237 |
# a full cluster restart (to reuse as much local data as possible). |
238 |
|
239 |
# Allow recovery process after N nodes in a cluster are up: |
240 |
# |
241 |
# gateway.recover_after_nodes: 1 |
242 |
|
243 |
# Set the timeout to initiate the recovery process, once the N nodes |
244 |
# from previous setting are up (accepts time value): |
245 |
# |
246 |
# gateway.recover_after_time: 5m |
247 |
|
248 |
# Set how many nodes are expected in this cluster. Once these N nodes |
249 |
# are up, begin recovery process immediately: |
250 |
# |
251 |
# gateway.expected_nodes: 2 |
252 |
|
253 |
|
254 |
############################# Recovery Throttling ############################# |
255 |
|
256 |
# These settings allow to control the process of shards allocation between |
257 |
# nodes during initial recovery, replica allocation, rebalancing, |
258 |
# or when adding and removing nodes. |
259 |
|
260 |
# Set the number of concurrent recoveries happening on a node: |
261 |
# |
262 |
# 1. During the initial recovery |
263 |
# |
264 |
# cluster.routing.allocation.node_initial_primaries_recoveries: 4 |
265 |
# |
266 |
# 2. During adding/removing nodes, rebalancing, etc |
267 |
# |
268 |
# cluster.routing.allocation.node_concurrent_recoveries: 2 |
269 |
|
270 |
# Set to throttle throughput when recovering (eg. 100mb, by default unlimited): |
271 |
# |
272 |
# indices.recovery.max_size_per_sec: 0 |
273 |
|
274 |
# Set to limit the number of open concurrent streams when |
275 |
# recovering a shard from a peer: |
276 |
# |
277 |
# indices.recovery.concurrent_streams: 5 |
278 |
|
279 |
|
280 |
################################## Discovery ################################## |
281 |
|
282 |
# Discovery infrastructure ensures nodes can be found within a cluster |
283 |
# and master node is elected. Multicast discovery is the default. |
284 |
|
285 |
# Set to ensure a node sees N other master eligible nodes to be considered |
286 |
# operational within the cluster. Set this option to a higher value (2-4) |
287 |
# for large clusters: |
288 |
# |
289 |
# discovery.zen.minimum_master_nodes: 1 |
290 |
|
291 |
# Set the time to wait for ping responses from other nodes when discovering. |
292 |
# Set this option to a higher value on a slow or congested network |
293 |
# to minimize discovery failures: |
294 |
# |
295 |
# discovery.zen.ping.timeout: 3s |
296 |
|
297 |
# See <http://elasticsearch.org/guide/reference/modules/discovery/zen.html> |
298 |
# for more information. |
299 |
|
300 |
# Unicast discovery allows to explicitly control which nodes will be used |
301 |
# to discover the cluster. It can be used when multicast is not present, |
302 |
# or to restrict the cluster communication-wise. |
303 |
# |
304 |
# 1. Disable multicast discovery (enabled by default): |
305 |
# |
306 |
# discovery.zen.ping.multicast.enabled: false |
307 |
# |
308 |
# 2. Configure an initial list of master nodes in the cluster |
309 |
# to perform discovery when new nodes (master or data) are started: |
310 |
# |
311 |
# discovery.zen.ping.unicast.hosts: ["host1", "host2:port", "host3[portX-portY]"] |
312 |
|
313 |
# EC2 discovery allows to use AWS EC2 API in order to perform discovery. |
314 |
# |
315 |
# You have to install the cloud-aws plugin for enabling the EC2 discovery. |
316 |
# |
317 |
# See <http://elasticsearch.org/guide/reference/modules/discovery/ec2.html> |
318 |
# for more information. |
319 |
# |
320 |
# See <http://elasticsearch.org/tutorials/2011/08/22/elasticsearch-on-ec2.html> |
321 |
# for a step-by-step tutorial. |
322 |
|
323 |
|
324 |
################################## Slow Log ################################## |
325 |
|
326 |
# Shard level query and fetch threshold logging. |
327 |
|
328 |
#index.search.slowlog.level: TRACE |
329 |
#index.search.slowlog.threshold.query.warn: 10s |
330 |
#index.search.slowlog.threshold.query.info: 5s |
331 |
#index.search.slowlog.threshold.query.debug: 2s |
332 |
#index.search.slowlog.threshold.query.trace: 500ms |
333 |
|
334 |
#index.search.slowlog.threshold.fetch.warn: 1s |
335 |
#index.search.slowlog.threshold.fetch.info: 800ms |
336 |
#index.search.slowlog.threshold.fetch.debug: 500ms |
337 |
#index.search.slowlog.threshold.fetch.trace: 200ms |