Sensu Monitoring installeren op Ubuntu 20.04

Sensu is een gratis en open-source hulpmiddel dat gebruikt wordt om de gezondheid van infrastructuur en toepassingen te bewaken. Het is geschreven in Ruby, gebruikt RabbitMQ om berichten af te handelen en Redis om gegevens op te slaan. Het kan op de meeste besturingssystemen geïnstalleerd worden, waaronder, Ubuntu, Debian, RHEL, CentOS, IBM, AIX, FreeBSD, Mac OS, Solaris, Windows en nog veel meer. Het is een van de populairste en volgende-generatie platforms die andere bewakingssystemen zoals Zabbix, Icinga, en Nagios vervangt. Sensu gebruikt een client-server model. Je hoeft alleen een sensu client te installeren op elk systeem dat je wilt bewaken.

In deze handleiding laten we zien hoe je Sensu bewakingsserver op Ubuntu 20.04 server installeert.

Vereisten

  • Een server waarop Ubuntu 20.04 draait.
  • Een root wachtwoord is de server geconfigureerd.

Aan de slag

Eerst moet je je systeem bijwerken naar de laatste stabiele versie. Je kunt dit doen door alle systeempakketten bij te werken met het volgende commando:

apt-get update -y

Zodra je systeem bijgewerkt is, installeer je andere afhankelijkheden met het volgende commando:

apt-get install gnupg2 curl wget unzip -y

Als alle pakketten geïnstalleerd zijn, kun je verder gaan met de volgende stap.

Installeer Redis en RabbitMQ

Sensu gebruikt RabbitMQ om berichten af te handelen en Redis om gegevens op te slaan. Beide pakketten moeten dus in je systeem geïnstalleerd zijn. RabbitMQ is standaard niet beschikbaar in de Ubuntu 20.04 standaard repository. Je zult dus de RabbitMQ repository aan je systeem moeten toevoegen.

Importeer eerst de GPG sleutel met het volgende commando:

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

Voeg vervolgens de repository toe door het volgende commando uit te voeren:

echo "deb http://binaries.erlang-solutions.com/debian $(lsb_release -cs) contrib" | tee /etc/apt/sources.list.d/erlang-solutions.list

Werk vervolgens de repository bij en installeer het RabbitMQ pakket met het volgende commando:

apt-get update -y
apt-get install rabbitmq-server -y

Eenmaal geïnstalleerd moet je een RabbitMQ vhost voor Sensu maken. Je kunt die aanmaken met het volgende commando:

rabbitmqctl add_vhost /sensu

Je zou de volgende uitvoer moeten zien:

Adding vhost "/sensu" ...

Maak vervolgens een gebruiker aan om de vhost te beheren met het volgende commando:

rabbitmqctl add_user sensu password

Je zou de volgende uitvoer moeten zien:

Adding user "sensu" ...

Vervolgens moet je volledige rechten toekennen aan de vhost /sensu.

rabbitmqctl set_permissions -p /sensu sensu ".*" ".*" ".*"

Je zou de volgende uitvoer moeten krijgen:

Setting permissions for user "sensu" in vhost "/sensu" ...

Installeer vervolgens de Redis server met het volgende commando:

apt-get install redis-server -y

Als de installatie voltooid is, start je de Redis service en schakel je hem in om te starten bij het herstarten van het systeem met het volgende commando:

systemctl start redis-server
systemctl enable redis-server

Als je klaar bent, kun je verder gaan met de volgende stap.

Installeer Sensu Server

Sensu is standaard niet beschikbaar in de officiële repository van Ubuntu. Je zult dus de Sensu repository aan je systeem moeten toevoegen.

Importeer eerst de GPG sleutel van de repository met het volgende commando:

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

Voeg vervolgens de repository toe met het volgende commando:

echo "deb https://sensu.global.ssl.fastly.net/apt bionic main" | tee /etc/apt/sources.list.d/sensu.list

Zodra de repository is toegevoegd, update je de repository en installeer je Sensu met het volgende commando:

apt-get update -y
apt-get install sensu -y

Als Sensu geïnstalleerd is, kun je verder gaan met de volgende stap.

Sensu configureren

Vervolgens moet je configuratiebestanden maken voor RabbitMQ, Redis, en Api. Maak eerst een api.json bestand aan met het volgende commando:

nano /etc/sensu/conf.d/api.json

Voeg de volgende regels toe:

{
  "api": {
    "host": "localhost",
    "bind": "0.0.0.0",
    "port": 4567
  }
}

Bewaar en sluit het bestand dan maak een redis.json bestand aan met het volgende commando:

nano /etc/sensu/conf.d/redis.json

Voeg de volgende regels toe:

{
  "redis": {
    "host": "127.0.0.1",
    "port": 6379
  }
}

Bewaar en sluit het bestand dan maak een RabbitMQ configuratiebestand aan met het volgende commando:

nano /etc/sensu/conf.d/rabbitmq.json

Voeg de volgende regels toe:

{
  "rabbitmq": {
    "host": "127.0.0.1",
    "port": 5672,
    "vhost": "/sensu",
    "user": "sensu",
    "password": "password"
  }
}

Bewaar en sluit het bestand als je klaar bent.

Installeer en configureer Sensu Dashboard

Vervolgens moet je het Uchiwa dashboard in je systeem installeren. Uchiwa is een open-source dashboard om Sensu via een webinterface te bewaken.

Je kunt Uchiwa installeren met het volgende commando:

apt-get install uchiwa -y

Maak na de installatie van Uchiwa een configuratiebestand voor Uchiwa met het volgende commando:

nano /etc/sensu/uchiwa.json

Voeg de volgende regels toe:

{
  "sensu": [
    {
      "name": "Sensu",
      "host": "127.0.0.1",
      "port": 4567,
      "timeout": 10
    }
  ],
  "uchiwa": {
    "host": "0.0.0.0",
    "port": 3000,
    "refresh": 10
  }
}

Sla het bestand op en sluit het als je klaar bent.

Vervolgens moet je een client.json bestand maken om de Sensu server zelf te bewaken. Je kunt het maken met het volgende commando:

nano /etc/sensu/conf.d/client.json

Voeg de volgende regels toe:

{
  "client": {
    "name": "sensu-server",
    "address": "127.0.0.1",
    "environment": "management",
    "subscriptions": [
      "dev",
      "ubuntu"
   ],
    "socket": {
      "bind": "127.0.0.1",
      "port": 3030
    }
  }
}

Sla het bestand op en sluit het als je klaar bent.

Start vervolgens de Sensu server, Api, Uchiwa en Sensu client dienst met het volgende commando:

systemctl start sensu-server
systemctl start sensu-api
systemctl start uchiwa
systemctl start sensu-client

Als alle diensten gestart zijn, kun je de status van de alle diensten controleren met het volgende commando:

systemctl status sensu-server sensu-api sensu-client uchiwa

Je zou de volgende uitvoer moeten krijgen:

? sensu-server.service - sensu server
     Loaded: loaded (/lib/systemd/system/sensu-server.service; disabled; vendor preset: enabled)
     Active: active (running) since Sun 2020-08-23 09:04:43 UTC; 4min 18s ago
   Main PID: 10031 (sensu-server)
      Tasks: 24 (limit: 2353)
     Memory: 20.6M
     CGroup: /system.slice/sensu-server.service
             ??10031 /opt/sensu/embedded/bin/ruby /opt/sensu/bin/sensu-server -c /etc/sensu/config.json -d /etc/sensu/conf.d -e /etc/sensu/ext>

Aug 23 09:04:43 ubuntu2004 systemd[1]: Started sensu server.

? sensu-api.service - sensu api
     Loaded: loaded (/lib/systemd/system/sensu-api.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2020-08-23 09:04:42 UTC; 4min 19s ago
   Main PID: 10023 (sensu-api)
      Tasks: 2 (limit: 2353)
     Memory: 18.9M
     CGroup: /system.slice/sensu-api.service
             ??10023 /opt/sensu/embedded/bin/ruby /opt/sensu/bin/sensu-api -c /etc/sensu/config.json -d /etc/sensu/conf.d -e /etc/sensu/extens>

Aug 23 09:04:42 ubuntu2004 systemd[1]: Started sensu api.

? sensu-client.service - sensu client
     Loaded: loaded (/lib/systemd/system/sensu-client.service; disabled; vendor preset: enabled)
     Active: active (running) since Sun 2020-08-23 09:04:42 UTC; 4min 18s ago
   Main PID: 10027 (sensu-client)
      Tasks: 2 (limit: 2353)
     Memory: 17.0M
     CGroup: /system.slice/sensu-client.service
             ??10027 /opt/sensu/embedded/bin/ruby /opt/sensu/bin/sensu-client -c /etc/sensu/config.json -d /etc/sensu/conf.d -e /etc/sensu/ext>

Aug 23 09:04:42 ubuntu2004 systemd[1]: sensu-client.service: Succeeded.
Aug 23 09:04:42 ubuntu2004 systemd[1]: Stopped sensu client.
Aug 23 09:04:42 ubuntu2004 systemd[1]: Started sensu client.

? uchiwa.service - LSB: Uchiwa, a Sensu dashboard.
     Loaded: loaded (/etc/init.d/uchiwa; generated)
     Active: active (exited) since Sun 2020-08-23 09:04:41 UTC; 4min 19s ago

Als je klaar bent, kun je verder gaan met de volgende stap.

Toegang tot Sensu Dashboard

Open nu je web browser en typ de URL http://your-server-ip:3000. Je zou het Sensu dashboard moeten zien in het volgende scherm:

Sensu Bewakingshulpmiddel

Klik nu op het cliënt-icoon in het linkerdeelvenster. Je zou de status van de Sensu client moeten zien in het volgende scherm:

Sensu dashboard

Conclusie

Gefeliciteerd! Je hebt Sensu en Uchiwa met succes geïnstalleerd en ingesteld op de Ubuntu 20.04 server. Je kunt nu meer clients toevoegen en beginnen te monitoren vanaf het Uchiwa dashboard. Stel me gerust als je vragen hebt.