20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu...

91
Garrett Honeycutt [email protected] learnpuppet.com @learnpuppet 2018-10-13 Ohio LinuxFest Columbus, OH Intro to Sensu

Transcript of 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu...

Page 1: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Garrett Honeycutt [email protected]

learnpuppet.com @learnpuppet

2018-10-13 Ohio LinuxFest Columbus, OH

Intro to Sensu

Page 2: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

@learnpuppet

Page 3: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

@learnpuppet

Page 4: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

@learnpuppet

Page 5: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

@learnpuppet

0 - OK1 - Warning2 - Critical3 - Unknown

Page 6: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

/sensu/sensu-puppet

@learnpuppet

Page 7: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

@learnpuppet

Page 8: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

/sensu/sensu-puppet

@learnpuppet

Page 9: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

What is Sensu?

@learnpuppet

Page 10: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Flexible monitoring framework

@learnpuppet

Page 11: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Router for your metrics and alerts

@learnpuppet

Page 12: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Status checks and telemetry at scale

@learnpuppet

Page 13: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Designed for dynamic environments

@learnpuppet

Page 14: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Why Sensu?

@learnpuppet

• Collect metrics and status checks with one system

Page 15: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Why Sensu?

@learnpuppet

• Collect metrics and status checks with one system• Interface with other monitoring and metrics systems

Page 16: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Why Sensu?

@learnpuppet

• Collect metrics and status checks with one system• Interface with other monitoring and metrics systems• Reuse existing Nagios plugins

Page 17: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Why Sensu?

@learnpuppet

• Collect metrics and status checks with one system• Interface with other monitoring and metrics systems• Reuse existing Nagios plugins• Plugins can be written in any language

Page 18: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Why Sensu?

@learnpuppet

• Collect metrics and status checks with one system• Interface with other monitoring and metrics systems• Reuse existing Nagios plugins• Plugins can be written in any language• Decoupled model for easy-to-scale architecture

Page 19: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Why Sensu?

@learnpuppet

• Collect metrics and status checks with one system• Interface with other monitoring and metrics systems• Reuse existing Nagios plugins• Plugins can be written in any language• Decoupled model for easy-to-scale architecture• Great user community! (http://sensucommunity.slack.com/)

Page 20: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

@learnpuppet

•5+ Years•500 Checks, handlers, mutators•400 Contributors•1100 Pull requests•3000 commits

/sensu-plugins

Page 21: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Monitoring at Scale

1:N execution scheduling

One execution request yields results from N clients

@learnpuppet

Page 22: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Dynamic Environments

@learnpuppet

Monitoring ephemeral systems/resources

Page 23: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

@learnpuppet

Driven by configuration management

Dynamic Environments

Page 24: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

@learnpuppet

Open Source under MIT license

Sensu Core

Page 25: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

@learnpuppet

Written in Ruby

Sensu Core

Page 26: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

@learnpuppet

First commit July 10, 2011

Sensu Core

Page 27: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

@learnpuppet

1.0 released July 7th, 2017

Sensu Core

Page 28: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

@learnpuppet

2.0 alpha released February 27th, 2018

Sensu Core

Page 29: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Sensu Enterprise

• Sensu Enterprise built on Sensu Core

• Drop-in replacement for sensu-server & sensu-api

• Proprietary license with commercial support

• Runs on JRuby for improved performance

• Adds enhanced integrations, contact routing and more

@learnpuppet

Page 30: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Architecture Overview

• Transport

• Data Store

• Monitoring Agent (client)

• Event Processor (server)

• RESTful API

• Dashboard

@learnpuppet

Page 31: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

@learnpuppet

Message bus that enables decoupling

Transport

Page 32: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

@learnpuppet

Reduces need for service discovery

Transport

Page 33: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

RabbitMQ as Transport

• TLS with peer verification

• Multi-user with ACLs

• Clustering and federation (WAN)

@learnpuppet

Page 34: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

@learnpuppet

Sensu services are stateless

Data store

Page 35: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Data Store

@learnpuppet

Redis

Page 36: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Data Stored

@learnpuppet

Stored data is generally ephemeral

Page 37: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Data Stored

@learnpuppet

Page 38: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Data Stored

@learnpuppet

Some history for context

Page 39: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Monitoring Agent

@learnpuppet

Sensu Core package provides sensu-client (agent)

Page 40: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Check execution scheduler

Subscription (server)

• Sensu server publishes execution requests• Sensu agent executes check commands• Check result messages are published to transport

@learnpuppet

Page 41: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Check execution scheduler

@learnpuppet

Stand alone (client)

• Sensu agent schedules check execution• Sensu agent executes check commands• Check result messages are published to transport

Page 42: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Event Processor• Maintains client and incident registries

• Processes check result messages to create events

• Processes events according to configuration

• Filters improve signal-to-noise ratio

• Mutators transform event data format

• Handlers act on event data

@learnpuppet

Page 43: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Check Result Life Cycle

@learnpuppet

Page 44: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

@learnpuppet

Page 45: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

RESTful API

@learnpuppet

No Click Fail

Page 46: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

RESTful API Endpoints/clients

/checks

/incidents

/results

/request

/silenced

@learnpuppet

Page 47: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Dashboard

@learnpuppet

Uchiwa open source dashboard

Page 48: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Uchiwa

@learnpuppet

Demo time

Page 49: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Review: Sensu Flow• Check result is published to Transport

@learnpuppet

Page 50: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Review: Sensu Flow• Check result is published to Transport

@learnpuppet

• Event processor (server) reads result from Transport• Data Store is updated based on result• Result combined with additional context becomes an

event• Filters, mutators and handlers evaluate and take action

on event

Page 51: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Review: Sensu Flow• Check result is published to Transport

@learnpuppet

• Event processor (server) reads result from Transport• Data Store is updated based on result• Result combined with additional context becomes an

event• Filters, mutators and handlers evaluate and take action

on event

• API and Dashboard expose state from Data Store

Page 52: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

@learnpuppet

Page 53: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

@learnpuppet

Page 54: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

@learnpuppet

Page 55: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

@learnpuppet

Page 56: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

@learnpuppet

Page 57: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Configuration Philosophy

@learnpuppet

inspired by UNIX-style chaining of tools

Page 58: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Configuration Conventions

@learnpuppet

JSON configuration

/etc/sensu/config.json /etc/sensu/conf.d/**/*.json

Page 59: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Sensu Primitives

@learnpuppet

Page 60: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Checks

@learnpuppet

Monitor status or collect measurement

Page 61: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Checks

@learnpuppet

Configured on agent or server

Page 62: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Checks

@learnpuppet

Configuration on disk can provide client-specific overrides and/or security

Page 63: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Example: Check Definition

$ cat /etc/sensu/conf.d/checks/check_haproxy.json{ "name": "check_haproxy", "command": "check_haproxy.rb -s app1 -w 40 -c 25", "subscribers": ["load_balancer"], "interval": 30 }

@learnpuppet

Page 64: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Example: Check Result

{ "name": "check_haproxy", "command": "check_haproxy.rb -s app01 -w 40 -c 25", "subscribers": ["load_balancer"], "interval": 30, "timestamp": 1445569640, "output": "UP - 85% of 10 /app01/ services", "status": 0, "duration": 0.87 }

@learnpuppet

Page 65: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Metric Checks

@learnpuppet

Collect measurements

Page 66: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Metric Checks

@learnpuppet

Unlike status checks, OK events are sent to handlers

Page 67: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Events

@learnpuppet

Created for every check result

Page 68: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Events

• An event object is created is created for every check result

• Events with ok status update history in data store• Events should be passed to handlers when they:• Indicate an unhealthy state• Contain formatted data (metrics)• Change from an unhealthy state to healthy (resolve)

@learnpuppet

Page 69: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Example: Event Data

{ "id": "42ccc91a-5449-4060-b7c3-c444db177fd7", "client": {"...": "..."}, "check": {"...": "..."}, "occurrences": 1, "action": "create", "timestamp": 1445569640 }

@learnpuppet

Page 70: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Check hooks

@learnpuppet

Auto remediation

Page 71: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

@learnpuppet

{ "checks": { "nginx_process": { "command”: "check-process.rb -p nginx", "subscribers": ["proxy"], "interval": 30, "hooks": { "critical": { "command": "sudo /etc/init.d/nginx start", "timeout": 30 }, "non-zero": { "command": "ps aux", "timeout": 10 } } } }}

Page 72: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Filters

@learnpuppet

Improve signal to noise

Page 73: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Example: Filter Definition$ cat /etc/sensu/conf.d/filters/office_hours.json{ "filters": { "nine_to_fiver": { "negate": false, "attributes": { "timestamp": "eval: [1,2,3,4,5].include?(Time.at(value).wday) && Time.at(value).hour.between?(9,17)" } } } }

@learnpuppet

Page 74: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Mutators

@learnpuppet

Transform event data

Page 75: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Example: Mutator Definition$ cat /etc/sensu/conf.d/mutators/graphite_events.json

{ "mutators": { "graphite_events": { "command": "graphite_events.rb", "timeout": 10 } } }

@learnpuppet

Page 76: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Mutator Example: graphite-event.rb

Input:

{ "id": "42ccc91a-5449-4060-b7c3-c444db177fd7", "client": { "name": "i-424242", ... }, "check": { "name": "check_haproxy", "status": 1, ... }, "occurrences": 1, "action": "create", "timestamp": 1445569640 }

Output:

sensu.i-424242.check_haproxy 1 1445569640

@learnpuppet

Page 77: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Handlers

@learnpuppet

Take action on events

Page 78: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Example: Handler Definition w/ Filter

$ cat /etc/sensu/conf.d/handlers/pushover.json{ "handlers": { "pushover": { "type": "pipe", "command": "handler-pushover.rb", "filters": ["only_state_change"] } } }

@learnpuppet

Page 79: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Example: Handler Definition with Mutator$ cat /etc/sensu/conf.d/handlers/graphite_event.json{ "handlers": { "sensu_events_to_graphite": { "type": "tcp", "socket": { "host": "graphite.example.com", "port": 2003 }, "mutator": "graphite_events" } } }

@learnpuppet

Page 80: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Sensu Primitives

@learnpuppet

Page 81: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Sensu v2@learnpuppet

Page 82: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Funded@learnpuppet

Page 83: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Go@learnpuppet

Page 84: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Self Contained

@learnpuppet

Page 85: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Configuration shared between backends

@learnpuppet

Page 86: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...
Page 87: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

# resource.json{ "type": "CheckConfig", "spec": { "name": "marketing-site", "command": "check-http.rb", "subscriptions": ["demo"], "interval": 15, "organization": "default", "environment": "default" }}

$ sensuctl create -f resource.json

Page 88: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Recap@learnpuppet

Page 89: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Flexible monitoring framework

@learnpuppet

Page 90: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

/sensu/sensu-puppet

@learnpuppet

Page 91: 20181013-OLF-intro to sensu - Ohio LinuxFest 20192018/10/13  · Sensu Enterprise • Sensu Enterprise built on Sensu Core • Drop-in replacement for sensu-server & sensu-api ...

Garrett Honeycutt [email protected]

learnpuppet.com @learnpuppet

2018-10-13 Ohio LinuxFest Columbus, OH

Intro to Sensu