Sensu est un outil gratuit et open-source utilisé pour surveiller l'état de l'infrastructure 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, y compris Ubuntu, Debian, RHEL, CentOS, IBM, AIX, FreeBSD, Mac OS, Solaris, Windows et bien d'autres. C'est l'une des plates-formes 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 vous suffira d'installer un client sensu sur chaque système que vous souhaitez surveiller.
Dans ce tutoriel, nous montrerons comment installer le serveur de surveillance Sensu sur le serveur Ubuntu 20.04.
Prérequis
- Un serveur exécutant Ubuntu 20.04.
- Un mot de passe root est configuré sur le serveur.
Mise en route
Tout d'abord, vous devrez mettre à jour votre système vers la dernière version stable. Vous pouvez le faire en mettant à jour tous les packages système à l'aide de la commande suivante :
apt-get update -y
Une fois votre système mis à jour, installez les autres dépendances à l'aide de la commande suivante :
apt-get install gnupg2 curl wget unzip -y
Une fois tous les packages installés, vous pouvez passer à l'étape suivante.
Installer Redis et RabbitMQ
Sensu utilise RabbitMQ pour gérer les messages et Redis pour stocker les données. Les deux packages doivent donc être installés sur votre système. Par défaut, RabbitMQ n'est pas disponible dans le référentiel par défaut d'Ubuntu 20.04. Vous devrez donc ajouter le référentiel RabbitMQ dans votre système.
Tout d'abord, importez la clé GPG avec la commande suivante :
wget -O- https://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc | apt-clé ajouter -
Ensuite, ajoutez 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, mettez à jour le référentiel et installez le package RabbitMQ avec la commande suivante :
apt-get update -y
apt-get install rabbitmq-server -y
Une fois installé, vous devrez créer un vhost RabbitMQ pour Sensu. Vous pouvez le créer avec la commande suivante :
rabbitmqctl add_vhost /sensu
Vous devriez voir le résultat suivant :
Ajout de vhost "/sensu" ...
Ensuite, créez un utilisateur pour gérer le vhost avec la commande suivante :
rabbitmqctl add_user sensu mot de passe
Vous devriez voir le résultat suivant :
Ajout de l'utilisateur "sensu" ...
Ensuite, vous devrez attribuer des autorisations complètes pour le vhost /sensu.
rabbitmqctl set_permissions -p /sensu sensu ".*" ".*" ".*"
Vous devriez obtenir le résultat suivant :
Définition des autorisations pour l'utilisateur "sensu" dans vhost "/sensu" ...
Ensuite, installez le serveur Redis avec la commande suivante :
apt-get install redis-server -y
Une fois l'installation terminée, démarrez le service Redis et activez-le au redémarrage du système avec la commande suivante :
systemctl start redis-server
systemctl enable redis-server
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Installer le serveur Sensu
Par défaut, Sensu n'est pas disponible dans le référentiel officiel d'Ubuntu. Vous devrez donc ajouter le référentiel Sensu dans votre système.
Tout d'abord, importez la clé GPG du référentiel avec la commande suivante :
wget -O- https://sensu.global.ssl.fastly.net/apt/pubkey.gpg | apt-clé ajouter -
Ensuite, ajoutez 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é, mettez à jour le référentiel et installez le Sensu avec la commande suivante :
apt-get update -y
apt-get install sensu -y
Une fois le Sensu installé, vous pouvez passer à l'étape suivante.
Configurer Sensu
Ensuite, vous devrez créer des fichiers de configuration pour RabbitMQ, Redis et Api. Commencez par créer un fichier api.json avec la commande suivante :
nano /etc/sensu/conf.d/api.json
Ajoutez les lignes suivantes :
{ "api":{ "host":"localhost", "bind":"0.0.0.0", "port":4567 }}
Enregistrez et fermez le fichier puis créez un fichier redis.json avec la commande suivante :
nano /etc/sensu/conf.d/redis.json
Ajoutez les lignes suivantes :
{ "redis":{ "host":"127.0.0.1", "port":6379 }}
Enregistrez et fermez le fichier puis créez un fichier de configuration RabbitMQ avec la commande suivante :
nano /etc/sensu/conf.d/rabbitmq.json
Ajoutez les lignes suivantes :
{ "rabbitmq":{ "host":"127.0.0.1", "port":5672, "vhost":"/sensu", "user":"sensu", "password":"password" } }Enregistrez et fermez le fichier lorsque vous avez terminé.
Installer et configurer le tableau de bord Sensu
Ensuite, vous devrez installer le tableau de bord Uchiwa dans votre système. Uchiwa est un tableau de bord open source pour surveiller Sensu via une interface Web.
Vous pouvez installer l'Uchiwa avec la commande suivante :
apt-get install uchiwa -yAprès avoir installé Uchiwa, créez un fichier de configuration pour Uchiwa avec la commande suivante :
nano /etc/sensu/uchiwa.jsonAjoutez les lignes suivantes :
{ "sensu":[ { "name":"Sensu", "host":"127.0.0.1", "port":4567, "timeout":10 } ], "uchiwa":{ "host" :"0.0.0.0", "port":3000, "actualiser":10 }}Enregistrez et fermez le fichier lorsque vous avez terminé.
Ensuite, vous devrez créer un fichier client.json pour surveiller le serveur Sensu lui-même. Vous pouvez le créer avec la commande suivante :
nano /etc/sensu/conf.d/client.jsonAjoutez 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 } }}Enregistrez et fermez le fichier lorsque vous avez terminé.
Ensuite, démarrez le serveur Sensu, l'Api, l'Uchiwa et le service client Sensu avec la commande suivante :
systemctl start sensu-server
systemctl start sensu-api
systemctl start uchiwa
systemctl start sensu-clientUne fois tous les services démarrés, vous pouvez vérifier l'état de tous les services avec la commande suivante :
statut systemctl sensu-server sensu-api sensu-client uchiwaVous devriez obtenir le résultat suivant :
? sensu-server.service - serveur sensu Chargé :chargé (/lib/systemd/system/sensu-server.service ; désactivé ; préréglage du fournisseur :activé) Actif :actif (en cours d'exécution) depuis le dim 2020-08-23 09:04:43 UTC; 4min 18s ago PID principal :10031 (sensu-server) Tâches :24 (limite :2353) Mémoire :20,6 M 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>23 août 09:04:43 ubuntu2004 systemd[1] :Démarré serveur sensu.? sensu-api.service - sensu api chargé :chargé (/lib/systemd/system/sensu-api.service ; activé ; préréglage du fournisseur :activé) Actif :actif (en cours d'exécution) depuis le dim 2020-08-23 09:04:42 UTC; 4min 19s ago PID principal :10023 (sensu-api) Tâches :2 (limite :2353) Mémoire :18,9 Mo 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>23 août 09:04:42 ubuntu2004 systemd[1] :Démarré api sensu.? sensu-client.service - client sensu Chargé :chargé (/lib/systemd/system/sensu-client.service ; désactivé ; préréglage fournisseur :activé) Actif :actif (en cours d'exécution) depuis Sun 2020-08-23 09:04:42 UTC; il y a 4min 18s PID principal :10027 (sensu-client) Tâches :2 (limite :2353) Mémoire :17,0 Mo 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>23 août 09:04:42 ubuntu2004 systemd[1] :sensu-client.service :réussi. 23 août 09:04:42 ubuntu2004 systemd[1] :client sensu arrêté. 23 août 09:04:42 ubuntu2004 systemd[1] :client sensu démarré. ? uchiwa.service - LSB :Uchiwa, un tableau de bord Sensu. Chargé :chargé (/etc/init.d/uchiwa ; généré) Actif :actif (quitté) depuis le dim 2020-08-23 09:04:41 UTC ; il y a 4min 19sUne fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Accéder au tableau de bord Sensu
Maintenant, ouvrez votre navigateur Web et tapez l'URL http://your-server-ip:3000. Vous devriez voir le tableau de bord Sensu dans l'écran suivant :
Maintenant, cliquez sur le client icône dans le volet de gauche. Vous devriez voir l'état du client Sensu dans l'écran suivant :
Conclusion
Toutes nos félicitations! vous avez installé et configuré avec succès Sensu et Uchiwa sur le serveur Ubuntu 20.04. Vous pouvez maintenant ajouter plus de clients et commencer la surveillance à partir du tableau de bord Uchiwa. N'hésitez pas à me demander si vous avez des questions.