Mosquitto MQTT Server est un courtier de messages qui fonctionne sur le protocole MQTT. MQTT est un protocole de messagerie léger qui est la norme ISO pour une utilisation en plus du protocole TCP/IP. Il est principalement utilisé pour communiquer avec les appareils Internet des objets. Nous allons installer Mosquitto sur un serveur Ubuntu 16.04 et nous allons envoyer des messages à partir du logiciel espion MQTT. Mosquitto est un projet Eclipse et il est distribué sous licence EDL. Alors commençons.
Compilation du serveur Mosquitto MQTT à partir de la source
Pour installer Mosquitto, nous devons suivre les étapes suivantes. Commencez par mettre à jour les listes de sources et obtenez les dépendances
apt update
apt-get install build-essential libwrap0-dev libssl-dev libc-ares-dev uuid-dev xsltproc
Ajoutez l'utilisateur mosquitto, car par défaut, il s'exécute en tant que non root.
adduser mosquitto
Pour plus de commodité, nous attribuerons les droits sudo à cet utilisateur, car nous effectuerons le reste du processus d'installation en tant qu'utilisateur.
usermod -aG sudo mosquitto
Ensuite, nous allons nous connecter en tant que cet utilisateur et accéder à son répertoire personnel
su mosquitto
cd
Ensuite, nous allons télécharger le code source de Mosquitto, la dernière version est la 1.4.9 au moment de la rédaction, mais je vous suggère de vérifier la page de téléchargement pour voir s'il existe une nouvelle version. Alors téléchargeons la dernière version
wget https://mosquitto.org/files/source/mosquitto-1.4.9.tar.gz
Décompressons-le et cd dans le répertoire
tar xvzf mosquitto-1.4.9.tar.gz
cd mosquitto-1.4.9/
Et puis nous compilons et installons le logiciel
make && sudo make install
Configuration du serveur Mosquitto MQTT
Une fois l'installation terminée, nous devons créer un mot de passe pour le nouvel utilisateur.
sudo mosquitto_passwd -c /etc/mosquitto/pwfile mqtt-spy
Vous serez invité à créer un mot de passe pour le nouvel utilisateur mqtt-spy que nous utiliserons pour nous connecter à partir du client. C'est différent de l'utilisateur de moustiques, c'est-à-dire de l'utilisateur du système pour exécuter le serveur de moustiques. Nous devons ajouter des autorisations à cet utilisateur moustique pour tous les répertoires pertinents
sudo mkdir /var/lib/mosquitto/
sudo chown -R mosquitto:mosquitto /var/lib/mosquitto/
Nous devons ensuite créer un fichier de configuration pour le serveur Mosquitto MQTT, utilisons donc nano pour créer un nouveau fichier
sudo nano /etc/mosquitto/mosquitto.conf
Là, vous pouvez coller ceci
persistence true
persistence_location /var/lib/mosquitto/
persistence_file mosquitto.db
log_dest syslog
log_dest stdout
log_dest topic
log_type error
log_type warning
log_type notice
log_type information
connection_messages true
log_timestamp true
allow_anonymous false
password_file /etc/mosquitto/pwfile
La configuration semble longue, mais nous avons ajouté des journaux et un fichier de mots de passe plus détaillés.
Une fois la configuration enregistrée, nous exécutons ldconfig
sudo ldconfig
Ajoutons un fichier d'unité systemd
sudo nano /etc/systemd/system/mosquitto.service
Collez ceci ici :
[Unit]
Description=Insite MQTT Broker
[Service]
ExecStart=/usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
Restart=always
[Install]
WantedBy=multi-user.target
Démarrons le service
sudo systemctl start mosquitto.service
Et vérifiez son statut
systemctl status mosquitto.service
Pour le faire démarrer au démarrage, faites cette commande
sudo systemctl enable mosquitto.service
Configuration de MQTT-Spy et connexiong
MQTT-Spy est un client basé sur Java que nous utiliserons pour nous connecter au serveur MQTT. Vous pouvez l'obtenir à partir de github mais notez que vous devez avoir installé Oracle JDK. Cela ne fonctionne PAS avec OpenJDK. La première chose à faire après avoir regardé MQTT-spy est de créer une nouvelle connexion. Vous ajoutez l'IP de votre serveur et le port par défaut 1883.
Ensuite, vous ajoutez le mot de passe et le nom d'utilisateur que nous avons créés précédemment, dans mon cas, il s'agit de mqtt-spy et le mot de passe est le mot de passe.
Ensuite, nous pouvons ouvrir la fenêtre du terminal sur le serveur et taper la commande suivante
mosquitto_sub -v -t 'linoxide/topic' -u mqtt-spy -P password
Pour expliquer les drapeaux, -v est pour la verbosité, -t est pour le sujet suivi du sujet entre guillemets, -u est pour l'utilisateur et -P est le mot de passe. Après avoir tapé cette commande, cela semblera se bloquer, mais nous devons ensuite utiliser MQTT-spy pour créer un nouveau sujet et envoyer un message au même sujet, comme sur l'image ci-dessous.
Conclusion
Nous avons installé avec succès le serveur Mosquitto MQTT qui vous permet d'avoir un réseau d'appareils IoT connectés via le protocole MQTT 3.1. Nous l'avons installé sur Ubuntu sur un PC x86 classique, ce que la plupart des gens utilisent à des fins de développement et d'apprentissage. Pour un véritable IoT, vous voudriez un appareil ARM. C'est tout pour cet article merci d'avoir lu.