How To Get Started With Sensu – A Full Stack Monitoring Tool

What Is Sensu?

Sensu’s is an open source platform that provides the full stack monitoring solution for your problems. Through Sensu you can progressively monitor your servers, services, application health, and business KPIs etc. On other hand,  it can also collect and analyze custom metrics. And it can keep you updated when something happens, you will be notified through email or phone call (customized) . Precisely you can do all these competitive monitoring analysis for your business with Sensu.

 

Steps are required to configure Sensu for Linux and Ubuntu platform.

  • Sensu Installation and configuration
  • Install and Configure RabbitMQ
  • Install Redis server
  • Install and Configure Uchiwa Dashboard Setup  
  • Installing & Configuring Plugins
  • Enabling Email Alerts Using Postfix 

Sensu Installation and configuration

Before installing Sensu, it is recommended to update your system to the latest stable version.

You can use the below command to update your system

 

sudo apt-get update

 

Install and Configure RabbitMQ

RabbitMQ supports multiple messaging protocols. Its can be deployed in distributed and federated configurations to meet high-scale availability.

The following command will add Erlang repository and will add Erlang public key to your trusted key list.

sudo wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb

 

sudo dpkg -i erlang-solutions_1.0_all.deb

 

sudo wget -O- https://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc | sudo apt-key add –

Next, update the repository with below command

sudo apt-get update

Once the repository is updated, install Erlang-nox

 

sudo apt-get install socat erlang-nox

 

Next, We need to download and install the latest version of RabbitMQ repository.

sudo wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server_3.6.10-1_all.deb

 

sudo dpkg -i rabbitmq-server_3.6.10-1_all.deb

 

Update the repository

 

sudo apt-get update

 

Finally, Install the RabbitMQ server using the following command

 

sudo apt-get install rabbitmq-server

 

After installing rabbitmq-server , Start the  RabbitMQ service and enable it.

 

sudo systemctl start rabbitmq-server

sudo systemctl enable rabbitmq-server

 

Next, we need to create a RabbitMQ vhost and user for Sensu application.

 

sudo rabbitmqctl add_vhost /sensu

sudo rabbitmqctl add_user sensu password

 

Use the following command to provide the permission for users to access Sensu

 

sudo rabbitmqctl set_permissions -p /sensu sensu “.*” “.*” “.*”

 

 

[Related: Tips To Optimize Angular Application To Increase The Website Speed ]

 

 

Installing Redis Server

Once you are done with the RabbitMQ configuration,  then start installing Redis server. Because Sensu uses Redis server to store their data.

Note:

Redis is an open source , in-memory data structure store, used as a database, cache and message broker.

Install Redis Server with below command,

 

sudo apt-get install redis-server

sudo apt-get install apt-transport-https

 

Once the redis-server installation is complete, start the Redis server and enable it.

 

sudo systemctl start Redis-server

sudo systemctl enable Redis-server

 

 

Sensu Installation

First, add Sensu GPG key

sudo wget -O- https://sensu.global.ssl.fastly.net/apt/pubkey.gpg | sudo apt-key add –

Next, add the Sensu repository by creating sensu.list file inside /etc/apt/sources.list.d

sudo vi /etc/apt/sources.list.d/sensu.list

 

Then add the following line

deb https://sensu.global.ssl.fastly.net/apt sensu main

Next, update the repository

 

sudo apt-get update

 

Now, use the following command to install the Sensu

 

sudo apt-get install sensu

 

After  installing Sensu, you will need to configure Sensu for RabbitMQ and Redis.

By default, Sensu will load configuration from /etc/sensu/conf.d/ directory.

Now copy and paste the below code to create a rabbitmq.json file inside the following directory /etc/sensu/conf.d

 

File path :  sudo vi /etc/sensu/conf.d/rabbitmq.json

 

{

"rabbitmq": {

"host": "127.0.0.1",

"port": 5672,

"vhost": "/sensu",

"user": "sensu",

"password": "password"

}

}

 

Next, create redis.json file with the following command

 

File path :  sudo vi /etc/sensu/conf.d/redis.json

 

{

"redis": {

"host": "127.0.0.1",

"port": 6379

}

}

 

Next, create a api.json file to include the connection information for Sensu to access API

File path :  sudo vi /etc/sensu/conf.d/api.json

 

{

"api": {

"host": "127.0.0.1",

"bind": "0.0.0.0",

"port": 4567

}

}

 

  

Install and Configure Uchiwa Dashboard 

Basically Sensu does not come with the Dashboard to monitor Sensu through web interface. So, we need to install an open source Dashboard Uchiwa to your system.

 

  • Add the public key to the Uchiwa repository

 

sudo wget -O- https://sensu.global.ssl.fastly.net/apt/pubkey.gpg | sudo apt-key add –

 

File Path: /etc/apt/sources.list.d

 

sudo vi /etc/apt/sources.list.d/uchiwa.list

 

Add this repository  to the uchiwa.list file.

 

 

deb https://sensu.global.ssl.fastly.net/apt sensu main

 

 

 

Next, update the repository

 

sudo apt-get update

 

Once the system is updated, install Uchiwa

 

sudo apt-get install uchiwa

 

The following command user to configuration file for Uchiwa dashboard.

 

File path : sudo vi /etc/sensu/uchiwa.json

 

 

{

"sensu": [

{

"name": "appname",

"host": "localhost",

"port": 4567,

"timeout": 10

}

],

"uchiwa": {

"host": "0.0.0.0",

"port": 3001,

"refresh": 10

}

}

 

Next, configuration file for Uchiwa client

 

File path : /etc/sensu/conf.d/client.json

 

{

"client": {

"name": "sensu-server",

"address": "127.0.0.1",

"environment": "sensu",

"subscriptions": [ "linux"],

"keepalive":

{

"handler": "mailer",

"thresholds": {

"warning": 250,

"critical": 300

}

},

"socket": {

"bind": "127.0.0.1",

"port": 3030

}

}

}

 

Next add transport file to the following location

 

File Path: sudo vi /etc/sensu/conf.d/transport.json

 

{

“transport”:

{

“name”: “rabbitmq”,

“reconnect_on_error”: true

}

}

 

Finally use the following command to restart & enable the Sensu and Uchiwa service.

 

sudo systemctl start sensu-server

sudo systemctl enable sensu-server

sudo systemctl start sensu-api

sudo systemctl enable sensu-api

sudo systemctl start sensu-client

sudo systemctl enable sensu-client

sudo systemctl start uchiwa

sudo systemctl enable uchiwa

 

 

Now you can  monitor your Dashboard through access path :  http://127.0.0.1:3001 or http://<yourpublicip>:<your givenpostnumber>

 

 

1

 

Plugin Installation & Configurations

 

Here i have explained the configuration process for primary plugins and you can also add more plugins if required,

 

Go to the following location and run the listed commands to install the plugins

 

cd /opt/sensu/embedded/bin/

 

sudo sensu-install -p cpu-checks

sudo sensu-install -p disk-checks

sudo sensu-install -p memory-checks

sudo sensu-install -p nginx

sudo sensu-install -p process-checks

sudo sensu-install -p load-checks

sudo sensu-install -p vmstats

sudo sensu-install -p mailer

 

Configuring CPU Check File

Copy and paste the below code to the specified path.

 

Configuration Path:  Sudo vi /etc/sensu/conf.d/check_cpu.json

 

Code

 

{

"checks": {

"check-cpu": {

"handlers": ["mailer"],

"command": "/opt/sensu/embedded/bin/check-cpu.rb -w 80 -c 90 ",

"interval": 60,

"occurrences": 5,

"subscribers": [ "linux" ]

}

}

}

 

Similarly, you can configure all the plugins as listed,

 

Configuring Memory Check File

 

Configuration Path: sudo vi /etc/sensu/conf.d/check_memory.json

 

Code

 

 

{

"checks": {

"check_memory_linux": {

"handlers": ["mailer"],

"command": "/opt/sensu/embedded/bin/check-memory-percent.rb -w 90 -c 95",

"interval": 60,

"occurrences": 5,

"subscribers": [ "linux" ]

}

}

}

 

 

Configuring Disk Usage File

 

Configuration Path:  sudo vi /etc/sensu/conf.d/check_disk_usage.json

 

Code

 

{

"checks": {

"check-disk-usage-linux": {

"handlers": ["mailer"],

"command": "/opt/sensu/embedded/bin/check-disk-usage.rb -w 80 -c 90",

"interval": 60,

"occurrences": 5,

"subscribers": [ "linux" ]

}

}

}

 

Configuring Nginx Service File

 

Configuration Path:  sudo vi /etc/sensu/conf.d/nginx_process.json

 

Code

 

{

"checks": {

"check-process-nginx-master": {

"command"     : "/opt/sensu/embedded/bin/check-process.rb -p 'nginx: master process' -C 1",

"handlers"    : ["mailer"],

"interval"    :   60,

"standalone"  :   true

}

}

}

 

Enabling Email Alerts Using Postfix

 

Sudo apt-get install postfix

 

After installing and configuring postfix, include the following json handler files

 

sudo vi etc/sensu/conf.d/ handler_mail.json

 

 

{

"handlers": {

"mailer": {

"type": "pipe",

"command": "/opt/sensu/embedded/bin/handler-mailer.rb"

}

}

}

 

sudo vi /etc/sensu/conf.d/mailer.json

 

{

"mailer": {

"admin_gui": "http://localhost:3001/",

"mail_from": "from@domain.com”,

"mail_to": "to@domain.com",

"smtp_address": "localhost",

"smtp_port": "25",

"smtp_domain": "localhost"

}

}

 

 

 

Finally, Restart the services

 

sudo service sensu-server restart

sudo service sensu-client restart

sudo service uchiwa restart

 

Now you can monitor the Dashboard through the access path :  http://127.0.0.1:3001 or http://<yourpublicip>:<your givenpostnumber>

 

 

2