The monitoring control plane for your multi-cloud infrastructure.

From service health checks and custom metrics, to comprehensive alerts and incident management, to fully automated self-healing workflows. Sensu can do it all, and then some.

Built for tomorrow. Ready for today.

From bare metal to Kubernetes, Sensu provides complete visibility across every system, every protocol, every time.

Health checks & custom metrics

Comprehensive system and service health monitoring. Execute custom scripts, including Nagios-style plugins. Collect basic system metrics, including CPU, memory, and disk usage. Collect custom application metrics and integrate with external databases for unified business intelligence.

Alerts & incident management

Send alerts via email, Slack, SMS, and more. Create and resolve incidents in PagerDuty, ServiceNow, and JIRA. Eliminate alert fatigue with built-in de-duplication. Customize alert policies with event filters and contact routing.

Real-time inventory

Automatically register VMs, public cloud compute instances, containers, and more. Eliminate false-positive alerts related to auto-scaling and other provisioning events. Integrate with third-party CMDBs to create and update records about your inventory assets.

Auto-remediation & custom workflows

Native support for self-healing — use Sensu to trigger service restarts or execute custom scripts when problems are detected. Request Ansible jobs via the Ansible Tower integration. Trigger remediation actions via third-party APIs. Automate repetitive operations by configuring custom workflows.

A monitoring event pipeline as unique as your business.

Sensu is a solution for multi-cloud monitoring workflow automation. By combining simple interfaces with powerful monitoring primitives, Sensu delivers unrivaled flexibility among modern monitoring platforms. Here's how it works.

Schedule

Sensu's monitoring control plane includes a sophisticated scheduler that coordinates with Sensu agents via a secure publish/subscribe transport to request health checks, collect metrics, and automate repetitive operations.

---
type: CheckConfig
api_version: core/v2
metadata:
  name: check-ntp
spec:
  command: check_ntp
  interval: 10
  timeout: 10
  subscriptions:
  - linux
  - freebsd

Collect

The Sensu agent and APIs normalize collected monitoring data as Sensu events, with support for custom labels and annotations, and multiple metrics data points per payload.

{
  "timestamp": 1552506033,
  "check": {
    "issued": 1552506033,
    "executed": 1552506033,
    "handlers": ["servicenow"],
    "last_ok": 1552506033,
    "metadata": {
      "name": "http-service",
      "namespace": "us-west-1"
    },
    "output": "200 OK",
    "status": 0,
    "ttl": 0
  }
}

Filter

The Sensu pipeline includes a powerful rules engine for filtering events and making decisions about how to process events.

type: EventFilter
api_version: core/v2
metadata:
  name: production-only
spec:
  action: allow
  expressions:
  - event.entity.labels['environment'] == 'production'

Transform

Sensu mutators modify incoming event payloads and provide support for event enrichment — including data from third-party systems, such as ServiceNow or other CMDBs.

for _, point := range( event.Metrics.Points ) {
  point.Tags = append( point.Tags, &types.MetricTag{ Name: "entity", Value: event.Entity.Name } )
  point.Tags = append( point.Tags, &types.MetricTag{ Name: "namespace", Value: event.Entity.Namespace } )
  if event.Entity.Labels != nil {
    for name, value := range( event.Entity.Labels ) {
      point.Tags = append( point.Tags, &types.MetricTag{ Name: name, Value: value } )
    }
  }
  point.Tags = append( point.Tags, &types.MetricTag{ Name: "check", Value: event.Check.Name } )
}

Process

Sensu handlers provide a simple primitive for taking action on monitoring events. Send alerts, create/resolve incidents, write metrics to an external database, update external CMDBs, trigger automated remediations — the possibilities are endless!

type: Handler
api_version: core/v2
metadata:
  name: slack
spec:
  type: pipe
  command: sensu-slack-handler --channel '#monitoring' --webhook-url $SLACK_WEBHOOK_URL
  filters:
  - is_incident
  - not_silenced
  runtime_assets:
  - sensu/sensu-slack-handler

Supercharge your operations team for less than 1¢ per node per hour.

Downtime is expensive! When it comes to operating production workloads, saving a few dollars per year by choosing free monitoring tools isn’t worth the risk. Activate your Sensu cluster today to unlock the scalability, integrations, and security features your organization demands.