Comment installer Sensu Monitoring sur Ubuntu 20.04

Sensu est un outil gratuit et open-source utilisé pour surveiller la santé des infrastructures et des applications. Il est écrit en Ruby, utilise RabbitMQ pour gérer les messages et Redis pour stocker les données. Il peut être installé sur la plupart des systèmes d’exploitation, notamment Ubuntu, Debian, RHEL, CentOS, IBM, AIX, FreeBSD, Mac OS, Solaris, Windows et bien d’autres. C’est l’une des plateformes les plus populaires et de nouvelle génération qui remplace d’autres systèmes de surveillance comme Zabbix, Icinga et Nagios. Sensu utilise un modèle client-serveur. Il te suffit d’installer un client Sensu sur chaque système que tu veux surveiller.

Dans ce tutoriel, nous allons montrer comment installer le serveur de surveillance Sensu sur le serveur Ubuntu 20.04.

Conditions préalables

  • Un serveur fonctionnant sous Ubuntu 20.04.
  • Un mot de passe root est configuré sur le serveur.

Démarrage

Tout d’abord, tu dois mettre à jour ton système avec la dernière version stable. Tu peux le faire en mettant à jour tous les paquets système à l’aide de la commande suivante :

apt-get update -y

Une fois que ton système est mis à jour, installe les autres dépendances à l’aide de la commande suivante :

apt-get install gnupg2 curl wget unzip -y

Une fois que tous les paquets sont installés, tu peux passer à l’étape suivante.

Installe Redis et RabbitMQ

Sensu utilise RabbitMQ pour gérer les messages et Redis pour stocker les données. Les deux paquets doivent donc être installés dans ton système. Par défaut, RabbitMQ n’est pas disponible dans le dépôt par défaut d’Ubuntu 20.04. Tu devras donc ajouter le dépôt RabbitMQ dans ton système.

Tout d’abord, importe la clé GPG avec la commande suivante :

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

Ensuite, ajoute le référentiel en exécutant la commande suivante :

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

Ensuite, mets à jour le référentiel et installe le paquet RabbitMQ avec la commande suivante :

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

Une fois installé, tu devras créer un serveur virtuel RabbitMQ pour Sensu. Tu peux le créer avec la commande suivante :

rabbitmqctl add_vhost /sensu

Tu devrais voir la sortie suivante :

Adding vhost "/sensu" ...

Ensuite, crée un utilisateur pour gérer le serveur virtuel avec la commande suivante :

rabbitmqctl add_user sensu password

Tu devrais voir le résultat suivant :

Adding user "sensu" ...

Ensuite, tu devras attribuer des permissions complètes pour le serveur virtuel /sensu.

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

Tu devrais obtenir le résultat suivant :

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

Ensuite, installe le serveur Redis avec la commande suivante :

apt-get install redis-server -y

Une fois l’installation terminée, démarre le service Redis et active-le pour qu’il démarre au redémarrage du système avec la commande suivante :

systemctl start redis-server
systemctl enable redis-server

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Installer le serveur Sensu

Par défaut, Sensu n’est pas disponible dans le dépôt officiel d’Ubuntu. Tu dois donc ajouter le dépôt Sensu dans ton système.

Tout d’abord, importe la clé GPG du référentiel avec la commande suivante :

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

Ensuite, ajoute le référentiel avec la commande suivante :

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

Une fois le référentiel ajouté, mets à jour le référentiel et installe Sensu avec la commande suivante :

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

Une fois que le Sensu est installé, tu peux passer à l’étape suivante.

Configurer Sensu

Ensuite, tu devras créer des fichiers de configuration pour RabbitMQ, Redis et Api. Tout d’abord, crée un fichier api.json avec la commande suivante :

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

Ajoute les lignes suivantes :

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

Sauvegarde et ferme le fichier puis crée un fichier redis.json avec la commande suivante :

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

Ajoute les lignes suivantes :

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

Sauvegarde et ferme le fichier puis crée un fichier de configuration RabbitMQ avec la commande suivante :

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

Ajoute les lignes suivantes :

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

Sauvegarde et ferme le fichier lorsque tu as terminé.

Installer et configurer Sensu Dashboard

Ensuite, tu devras installer le tableau de bord Uchiwa dans ton système. Uchiwa est un tableau de bord open-source pour surveiller Sensu via une interface Web.

Tu peux installer Uchiwa avec la commande suivante :

apt-get install uchiwa -y

Après avoir installé Uchiwa, crée un fichier de configuration pour Uchiwa avec la commande suivante :

nano /etc/sensu/uchiwa.json

Ajoute les lignes suivantes :

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

Sauvegarde et ferme le fichier lorsque tu as terminé.

Ensuite, tu devras créer un fichier client.json pour surveiller le serveur Sensu lui-même. Tu peux le créer avec la commande suivante :

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

Ajoute les lignes suivantes :

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

Sauvegarde et ferme le fichier lorsque tu as terminé.

Ensuite, démarre le serveur Sensu, Api, Uchiwa et le service client Sensu avec la commande suivante :

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

Une fois que tous les services sont démarrés, tu peux vérifier l’état de tous les services avec la commande suivante :

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

Tu devrais obtenir la sortie suivante :

? 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

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Accède au tableau de bord Sensu

Maintenant, ouvre ton navigateur Web et tape l’URL http://your-server-ip:3000. Tu devrais voir le tableau de bord Sensu dans l’écran suivant :

Outil de surveillance Sensu

Maintenant, clique sur l’icône du client dans le volet de gauche. Tu devrais voir l’état du client Sensu dans l’écran suivant :

Sensu dashboard

Conclusion

Félicitations ! Tu as réussi à installer et à configurer Sensu et Uchiwa sur le serveur Ubuntu 20.04. Tu peux maintenant ajouter d’autres clients et commencer à surveiller depuis le tableau de bord d’Uchiwa. N’hésite pas à me demander si tu as des questions.

Vous aimerez aussi...