NEW

Pulse 2025 Product Roundup: From Monitoring to AI-Native Control Plane

Elasticsearch index.routing.allocation.include._ip Setting

The index.routing.allocation.include._ip setting in Elasticsearch is used to control shard allocation based on node IP addresses. It allows you to specify which nodes are eligible to host shards of a particular index based on their IP addresses.

  • Default value: Not set (no IP-based restrictions)
  • Possible values: Comma-separated list of IP addresses or IP ranges
  • Recommendations: Use this setting when you need to allocate shards to specific nodes based on their network location or for compliance reasons.

This setting is part of the broader index-level shard allocation filtering mechanism in Elasticsearch. It works in conjunction with other include, exclude, and require settings to provide fine-grained control over shard placement.

Example

To set the index.routing.allocation.include._ip for an existing index:

PUT /my-index/_settings
{
  "index.routing.allocation.include._ip": "192.168.1.1,192.168.1.2"
}

This example restricts shard allocation for the my-index to nodes with IP addresses 192.168.1.1 or 192.168.1.2.

Reasons for changing this setting might include:

  • Ensuring data locality in specific network segments
  • Compliance with data residency requirements
  • Optimizing for network performance by keeping shards close to certain application servers

Effects of the change:

  • Shards will only be allocated to nodes matching the specified IP addresses
  • Existing shards on non-matching nodes will be moved to eligible nodes
  • If no eligible nodes are available, shards may become unassigned

Common Issues or Misuses

  • Overly restrictive settings leading to unassigned shards
  • Forgetting to update the setting when node IP addresses change
  • Conflicts with other allocation settings, resulting in unexpected behavior

Do's and Don'ts

Do's:

  • Use this setting in combination with other allocation settings for more precise control
  • Regularly review and update the setting as your cluster topology changes
  • Test the impact of changes in a non-production environment first

Don'ts:

  • Don't use this setting as the sole means of ensuring data security
  • Avoid setting overly restrictive IP ranges that might lead to shard allocation issues
  • Don't forget to consider the impact on cluster balance and performance

Frequently Asked Questions

Q: Can I use wildcards or CIDR notation in the IP addresses?
A: Yes, you can use IP ranges in CIDR notation (e.g., 192.168.1.0/24) or wildcards (e.g., 192.168.1.*) to specify a range of IP addresses.

Q: What happens if no nodes match the specified IP addresses?
A: If no nodes match the specified IP addresses, the shards for that index will remain unassigned until eligible nodes become available.

Q: How does this setting interact with other allocation settings?
A: This setting is combined with other allocation settings using AND logic. All conditions must be met for a node to be eligible for shard allocation.

Q: Can I use this setting to separate hot and cold data based on node types?
A: While possible, it's generally better to use node attributes (like node.attr.data_type) for separating hot and cold data, as IP addresses might change more frequently.

Q: Is there a performance impact when using this setting?
A: The setting itself doesn't directly impact performance, but restricting shard allocation can affect cluster balance and recovery times if not configured properly.

Subscribe to the Pulse Newsletter

Get early access to new Pulse features, insightful blogs & exclusive events , webinars, and workshops.

We use cookies to provide an optimized user experience and understand our traffic. To learn more, read our use of cookies; otherwise, please choose 'Accept Cookies' to continue using our website.