Sensu (monitoring)

from Wikipedia, the free encyclopedia
Sensu
Basic data

Maintainer Heavy water operations
developer Sean Porter
Current  version v1.4.3
operating system Unix derivatives Windows
programming language Ruby
category Network monitoring
License MIT ( Free Software )
www.sensuapp.org

Sensu is a monitoring framework for monitoring IT infrastructures. Sensu enables the monitoring of servers, containers, applications and network devices. Sensu is completely written in Ruby (programming language) and uses RabbitMQ to exchange data between the components and Redis to store data. It was designed from the ground up for use in dynamic cloud environments in conjunction with server automation software such as Puppet , Ansible and Chef. This is shown, among other things, by the fact that Sensu provides all configurations as JSON files and new servers can automatically register in the monitoring network.

Sensu was originally developed by Sean Porter at Sonian.com. It was first released as open source software under the MIT license in November 2011 . Sean Porter moved to Heavy Water Operations, LLC in 2013, with whom he released Sensu Enterprise in April 2015. Sensu Enterprise is a commercial version that expands the Sensu-Core, which is still available as free software, with additional features, integrations and support.

meaning

Sensu is a comparatively new monitoring framework that is growing, however. In a survey from 2014 Sensu achieved a market share of 9.11%, in another survey, also from 2014, a share of 7.5%. Meanwhile, some of the more well-known companies that use Sensu include Tesla, Cisco, Intuit, and Yahoo. The spread of Sensu is certainly promoted by an active community that develops a large number of plugins, as well as the fact that the plugins of existing and established monitoring systems such as Nagios , Icinga and Zabbix can be used very easily in Sensu.

Basic way of working

Sensu is based on two basic building blocks: Checks, which are carried out on the Sensu clients, and event processing, which is carried out on the Sensu server.

Checks allow services to be monitored ( if Nginx is active, the MySQL service is running ) or resources to be measured (how much storage space is free on a hard disk, how high is the CPU utilization). Checks are commands or scripts that are executed by the Sensu client on the machines to be monitored and output data to STDOUT or STDERR. This data can either be simple status codes that represent the status of the monitored service (for example 0 for OK, 1 for WARNING and 2 for CRITICAL), or more complex metrics, such as MySQL statistics. Sensu Checks use the same specification as Nagios , which means that Nagios Check Plugins can also be used as Sensu Checks. The data produced by the checks are forwarded to the event processor (Sensu server) via the Sensu Transport (standard RabbitMQ ) . Based on this data, the Sensu-Server executes one or more handlers specified in the checks. A handler can carry out a wide variety of actions, such as sending an email warning, generating PagerDuty Alerts, or forwarding the data to a time series database (TSDB) such as Graphite or InfluxDB for further analysis .

architecture

Sensu consists of the following components:

Sensu client

The Sensu client is the process that carries out the checks on the systems to be monitored. Sensu clients can register with the Sensu server for checks. A Sensu Client can initiate a check independently (standalone checks), or it can execute it at the request of the Sensu server (subscription checks). The results of a check are forwarded to Sensu Transport.

transport

The Sensu components do not communicate directly with each other, but use a message bus for this. The message bus used by default is RabbitMQ .

Data storage

Sensu uses the NoSQL database Redis to persist data . The stored data includes data on the Sensu-Client registry, check results, and check execution times. The Sensu server as well as the Sensu API and dashboard services require access to the data storage. Sensu clients themselves do not require access.

Sensu server

The Sensu server is the process that receives the results of the checks via RabbitMQ and reacts accordingly, for example by executing local handlers. The Sensu server also manages the registration of Sensu clients as well as initiating checks on the clients.

Sensu API

The monitoring data stored in Redis as well as basic Sensu functions can be controlled via a RESTful HTTP JSON API.

credentials

  1. Sensu.io: Changelog Sensu. In: sensuapp.org. Retrieved July 26, 2018 .
  2. Heavy Water: Sensu | What is Sensu? In: sensuapp.org. Retrieved September 8, 2016 .
  3. Monitoring Tools Survey . Retrieved September 7, 2016.
  4. Monitoring Tools Survey 2 . Retrieved September 7, 2016.
  5. Sensu Community Plugins . Retrieved September 7, 2016.
  6. Reuse Nagios plugins . Retrieved September 7, 2016.