Elastic
8th March 2017
@prelertsteve
Machine Learning in the Elastic Stack
Steve Dodson, Tech Lead, Machine Learning
Sophie Chang, Team Lead, Machine Learning
Slide 2
Slide 2 text
Agenda
2
1 Background
2 Use Cases
3 Demos
4 Product Architecture and Status
4
• How do I know my systems are behaving
normally?
• Where to set thresholds for good alerting?
• How to find the root cause of problems?
IT Operations
Slide 5
Slide 5 text
5
• Do I have systems that are compromised
with malware?
• Which users could be an insider threat?
IT Security
Slide 6
Slide 6 text
6
• Is my factory working normally?
• What do I do with thousands of time-series
data?
• Which traffic incidents are causing the most
delay?
Other
Slide 7
Slide 7 text
7
Extracting useful, valuable information is hard
Slide 8
Slide 8 text
8
Search
Aggregations
Visualization
Machine Learning
Extracting useful, valuable information is hard
Slide 9
Slide 9 text
9
• Algorithms and methods for data driven prediction, decision making, and
modelling1
• Examples
– Image Recognition
– Language Translation
– Anomaly Detection
Machine Learning
1Machine Learning Overview, Tommi Jaakkola, MIT
Slide 10
Slide 10 text
Has my order rate dropped significantly?
Slide 11
Slide 11 text
Has my order rate dropped significantly?
• Learn models from past
behaviour (training, modelling)
• Use models to predict future
behaviour (prediction)
• Use predictions to make
decisions
Expected value @ 15:05 = 1859
Actual value @ 15:05 = 280
Probability = 0.0000174025
Slide 12
Slide 12 text
Demo: Simple Time Series
Slide 13
Slide 13 text
Has my system changed behaviour?
i-5cfd3dcb
...
…
i-f1e94994
i-ece626ff i-ebc323df
Slide 14
Slide 14 text
Has my system changed behaviour?
i-5cfd3dcb i-f1e94994
i-ece626ff i-ebc323df
...
…
Slide 15
Slide 15 text
Demo: Multiple Time Series
Slide 16
Slide 16 text
Do my application logs contain unusual
messages?
Slide 17
Slide 17 text
Do my application logs contain unusual messages?
Classify unstructured log messages by clustering similar messages
Normal Log Messages
Unusual log Messages
Slide 18
Slide 18 text
Demo: Log Messages
Slide 19
Slide 19 text
Entity Profiling
• Create ‘profile’ of status code responses for a typical client:
10.12.211.69 - - [01/Jan/2016:00:07:21 +0000] "GET /css/ccc_style.jsp HTTP/1.1" 200 19196 "https://www.prelertstation.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5"
10.12.211.69 - - [01/Jan/2016:00:07:22 +0000] "GET /js/openWin.js HTTP/1.1" 200 2272 "https://www.prelertstation.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5"
10.12.211.69 - - [01/Jan/2016:00:07:22 +0000] "GET /css/themes/ HTTP/1.1" 404 988 "https://www.prelertstation.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5"
Slide 20
Slide 20 text
Entity Profiling
• Create ‘profile’ of status code responses for a typical client:
10.12.211.69 - - [01/Jan/2016:00:07:21 +0000] "GET /css/ccc_style.jsp HTTP/1.1" 200 19196 "https://www.prelertstation.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5"
10.12.211.69 - - [01/Jan/2016:00:07:22 +0000] "GET /js/openWin.js HTTP/1.1" 200 2272 "https://www.prelertstation.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5"
10.12.211.69 - - [01/Jan/2016:00:07:22 +0000] "GET /css/themes/ HTTP/1.1" 404 988 "https://www.prelertstation.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5"
Slide 21
Slide 21 text
Demo: Entity Profiling
Slide 22
Slide 22 text
22
Beats
Logstash
Kibana
X-Pack X-Pack
Elasticsearch
Security
Alerting
Monitoring
Reporting
Graph
Machine Learning
X-Pack
Elastic Stack
● Single install - deployed with X-Pack
● Data gravity - analyzes data from the same cluster
● Contextual - anomalies and data stored together
● Scalable - jobs distributed across nodes
● Resilient - handles node failure
Clusterstateconfiguration
1. Create a job
2. Create a datafeed
PUT _xpack/ml/anomaly_detectors/{job_id}
PUT _xpack/ml/datafeeds/{datafeed_id}
master
node1 node2 node3
node4 node5 node6
node7 node8 node9
node10 node11 node12
Slide 26
Slide 26 text
Loadbalanced analysis using persistent tasks
1. Master enumerates all ML nodes
2. Job is opened
3. Datafeed is started
4. Results written to index PUT _xpack/ml/anomaly_detectors/{job_id}/_open
PUT _xpack/ml/datafeeds/{datafeed_id}/_start
node1 node2 node3
node4 node5 node6
node7 node8 node9
node10 node11 node12
master
Slide 27
Slide 27 text
Jobresilience
1. If a node stops, persistent tasks
continue
2. Master enumerates available ML
nodes and reassigns
3. Job continues from where it left off
node1 node2 node3
node4 node5 node6
node7 node8 node9
node10 node11 node12
master
Slide 28
Slide 28 text
What’snext
• Machine Learning and Statistical Methods for Time Series Analysis
Today, Stage A, 4:15pm
• Security Analytics Demo (Demo Station #2)
• AMA Booth
• Initial release planned with 5.4
Slide 29
Slide 29 text
29
More Questions?
Visit us at the AMA
Slide 30
Slide 30 text
www.elastic.co
Slide 31
Slide 31 text
Except where otherwise noted, this work is licensed under
http://creativecommons.org/licenses/by-nd/4.0/
Creative Commons and the double C in a circle are
registered trademarks of Creative Commons in the United States and other countries.
Third party marks and brands are the property of their respective holders.
31
Please attribute Elastic with a link to elastic.co