Sensu is an great monitoring framework. Essentially, Sensu takes the results of “check” scripts run across many systems, and if certain conditions are met;
passes their information to one or more “handlers”. Checks are used, for example, to determine if a service like Apache is up or down.
Checks can also be used to collect data, such as MySQL query statistics or Rails application metrics. Handlers take actions, using result information, such as sending an email, messaging a chat room, or adding a data point to a graph.
There are several types of handlers, but the most common and most powerful is “pipe”, a script that receives data via standard input.
Check and handler scripts can be written in any language, and the community repository continues to grow!
Fun Sensu facts:
– Highly Composable
Providing an agent, message bus, & event processor, Sensu enables teams to compose a system to meet their unique requirements. Combine the best tools.
– Passionate Community
Sensu is propelled by an ever growing community of passionate people. Helpful people can be found anytime in the IRC channel, #sensu on Freenode.
All code is available on GitHub, as social coding is the future.
– Designed for the Cloud
The Cloud introduces new challenges to monitoring tools, Sensu was created with them in mind.
Sensu will scale along with the infrastructure that it monitors.
You can learn more about Sensu at http://sensuapp.org/
What is Graphite?
Graphite is a highly scalable real-time graphing system.
As a user, you write an application that collects numeric time-series data that
you are interested in graphing, and send it to Graphite’s processing backend,
carbon, which stores the data in Graphite’s specialized database.
The data can then be visualized through graphite’s web interfaces.
How real-time are the graphs?
Very. Even under heavy load, where the number of metrics coming in each time
interval is much greater than the rate at which your storage system can perform
I/O operations and lots of data points are being cached in the storage pipeline
(see previous question for explanation), Graphite still draws real-time graphs.
The trick is that when the Graphite webapp receives a request to draw a graph,
it simultaneously retrieves data off the disk as well as from the pre-storage
cache (which may be distributed if you have multiple backend servers) and
combines the two sources of data to create a real-time graph.
The IAANSYS Sensu with Graphite Stack is a server stack that greatly simplifies
the installation of Sensu and Graphite. It includes ready-to-run
versions of Sensu, Graphite, Apache, Redis, RabbitMQ and MySql.
If you already have an AWS account simply click one of the links below to deploy a IAANSYS Stack on Amazon EC2.
Handlers run on the Sensu server and receive the output generated from checks executing on Sensu clients. They decide what to do with the data, for example:
– Send an email
– Generate an alert
– Send an SMS
– Send to AWS SNS
– Add metrics to graphite, etc.
DEFAULT USERNAMES AND PASSWORDS
The ID for each accounts look like below
Sensu Dashboard : admin
Graphite : admin
Graphite Dashboard : admin
RabbitMQ : admin
All initial passwords are the Instance ID of the corresponding Instance
Instance ID can be checked from EC2 Mangement Console.
MySQL admin user is called ‘root’, and its password is also the Instance ID.
The default non-root account used to access the database is named
‘graphite’, and its password is also the Instance ID.