Speed: Find matches in milliseconds Relevance: Get highly relevant results Storage, search & analytics layer Built on top of Lucene REST API, Query DSL
sizes, and sources Parse and dynamically transform data Transport data to any output Secure and encrypt data inputs Build your own pipelines Lots of plugins
Ship and centralize in Elasticsearch Ship to Logstash for transformation and parsing Ship to Elastic Cloud Libbeat: API framework to build custom beats 70+ community Beats
data Manage the Stack and Configuration Manage Index and Snapshots Lifecycle Maps, Infra, APM, Logs Spaces to separate scopes Canvas for pixel perfect visualizations
Kibana Beats Ingest Logstash Metrics Logging APM Site Search Application Search Business Analytics Enterprise Search Security Analytics Future Solutions SaaS Elastic Cloud Self Managed Elastic Cloud Enterprise Standalone Deployment Elastic Stack Elastic Cloud on Kubernetes (beta) All product names, logos, and brands are property of their respective owners and are used only for identification purposes. This is not an endorsement.
Messaging Queue Logstash Workers (2+) LDAP Authentication AD Notification SSO Kibana Custom UI Elasticsearch Clients Elasticsearch Master (3) Ingest (X) Data – Hot (X) Data – Warm (X) Machine Learning (2+) Coordinating (X) Alerting (X) HEARTBEAT Beats FILEBEAT METRICBEAT PACKETBEAT WINGLOGBEAT AUDITBEAT SAML All product names, logos, and brands are property of their respective owners and are used only for identification purposes. This is not an endorsement. “Full picture”
indices ‒ Use less memory when idle ‒ Slower when being searched ‒ Not intended for real-time • Tips ‒ Requires ignore_throttled=false in the search request ‒ Enable pre_filter_shard_size=1 ‒ On Kibana, you have to enable includeFrozen in Advanced Settings 6.7 1 2 3 Search query opens frozen index Search executes against frozen index Frozen index is closed after search completes
Role-based access control • File and native authentication • Kibana Spaces • Kibana feature controls (7.2) ‒ Selective access to Kibana features at Role & Space level • API keys management (7.4) ‒ Users can create API keys and use them to provide long-term credentials while interacting with Elasticsearch 6.8 & 7.1
methods to validate its designs (TLA+ model) • Automatic migration to the new cluster coordination module • No more discovery.zen.minimum_master_nodes to be set • Master elections are quicker • New concept of cluster bootstrapping (cluster.initial_master_nodes) • discovery.zen.ping.unicast.hosts is now discovery.seed_hosts • Introduction of “Voting-only master-eligible” role (7.3) ‒ Interesting for HA when we have only 2 AZ 7.0
‒ index.search.idle.after (30s) • Skipping the refresh is cancelled on the next search and that search operation will block until the next refresh happens automatically (1s) • Only applies to indices where index.refresh_interval is not set explicitly 7.0
estimates • Tries to avoid OutOfMemoryError rejecting tasks • The parent circuit breaker can use real memory usage instead of relying on memory usage reported by child circuit breakers • Allows for more aggressive limits (95% vs 70% of JVM Heap) 7.0 The image has been provided by Kiran Raja Bahadur SRK under the CC BY-NC-ND 2.0 license (original source).
the shard to determine which is likeliest to be the "best" copy to send the request to • Choice based on ‒ Outstanding search requests to a node ‒ Number of data nodes in the system ‒ EWMA of the response time (as seen from the node coordinating the search) in ms ‒ EWMA of the number of events in the search thread pool queue ‒ EWMA of service time of search events on the data node in milliseconds • Enabled by default (available since 6.1) 7.0
types in requests is deprecated ‒ Indexing doesn’t require a type anymore (_doc) ‒ include_type_name in index mappings defaults to false ‒ No need to provide it ‒ The _default_ mapping type is removed 7.0
with Elasticsearch • Docker images always use the most up to date JDK available • Less “variance” in JDK configurations • Notarized AdoptOpenJDK package ‒ Apple macOS Catalina 7.4
out its leaf values and index them into one field as keywords • Avoids field explosion • Trade Offs ‒ All values as keyword type ‒ Not all search types are allowed ‒ Flattened object fields currently cannot be stored 7.4
that is sorted by _count ascending ‒ But with a bounded error (customizable precision) • Based on CuckooFilters ‒ Fan, Bin, et al. "Cuckoo filter: Practically better than bloom." Proceedings of the 10th ACM International on Conference on emerging Networking Experiments and Technologies. ACM, 2014. 7.4
panel in a dashboard can have a custom time picker • Better Canvas expression editor aka “Monaco” • Index Templates management from Kibana • Feature Controls in (7.2) 7.x