whoami
Would love to talk to you about ARM, birdwatching, tech in Boise, and my dog Morty
I also collect GIFs, send me your high-quality links pls
What is it?
GET /
{ "name" : "master-0", "cluster_name" : "global-elasticsearch", "cluster_uuid" : "L8UMCuJrSsCBjz1tc_38vw", "version" : { "number" : "6.2.3", "build_hash" : "c59ff00", "build_date" : "2018-03-13T10:06:29.741383Z", "build_snapshot" : false, "lucene_version" : "7.2.1", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search" }
Q: "How many DNS requests have I sent in the last 10 minutes?"
GET _search { "size": 0, "query": { "bool": { "must": [ {"range": {"@timestamp": {"gte": "now-10m"}}}, {"term": {"netflow.dst_port": 53}}, {"term": {"netflow.src_addr": "192.168.1.183"}} ] } } }
{ "took" : 80, "timed_out" : false, "_shards" : { "total" : 20, "successful" : 20, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : 123, "max_score" : 0.0, "hits" : [ ] } }
A: 123
(These examples are taken from the logstash netflow module)
Simple node architecture (what I run at home)
input { stdin { } } # Your plugins go here output { stdout { codec => rubydebug } }
Hello, world! { "@version" => "1", "message" => "Hello, world!", "@timestamp" => 2018-07-13T21:20:15.206Z, "host" => "tylasticsearch.lan.tyjl.org" }
Designed to be easily extensible and flexible
Plugins exist for:
You can munge data pretty much any way with filters
There are many different types of Beats, here are a few:
Elasticsearch is a document store, but you can query metrics? (!textual data)
It's true Elasticsearch excels at freetext search (wildcards, autocomplete, aggregations, etc.)
Lucene (the underlying library) also supports data types other than textual
I don't use Windows, but I hear it's good?
heartbeat.monitors: - type: http schedule: '@every 5s' urls: ["https://tjll.net"] check.response.status: 200
The apache2
Filebeat module already knows what files to watch, what regex to use, and how to enrich web logs with GeoIP data and more.
- module: apache2 access: enabled: true
Capture all sorts of metrics for all containers automatically
metricbeat.modules: - module: docker metricsets: - "container" - "cpu" - "memory" hosts: ["unix:///var/run/docker.sock"] period: 10s enabled: true
Turns the data inside Elasticsearch into an easily used form.
Dashboards and visualizations - tables, line charts, heat maps, geographical maps, histograms, and more.