Broker EMQX

Installation

Installation en ligne Redhat

curl -s https://assets.emqx.com/scripts/install-emqx-rpm.sh | sudo bash sudo dnf install emqx -y sudo systemctl start emqx

Source

Installation Redhat en mode déconnecté

sur machine avec accès internet

curl -s https://assets.emqx.com/scripts/install-emqx-rpm.sh | sudo bash sudo dnf --downloadonly --downloaddir=/home/ec2-user/pkg install emqx

sur machine en mode déconnecté

sudo dnf install emqx-5.7.0-1.el9.x86_64.rpm -y

Configuration

Cluster

Modifier le fichier /etc/emqx/emqx.conf pour mettre à jour certains paramètres :

node {
name = "emqx@<FQDN du serveur>"
cookie = "emqxsecretcookie"
data_dir = "/var/lib/emqx"
}

name : renseigner le nom du noeud à emqx@<FQDN du serveur local>

cookie : renseigner la même valeur sur les différents nœuds devant joindre le cluster. Sert juste à éviter une erreur d'adressage.

clustering manuel

Vérifier que le paramètre discovery_strategy est à « manual »

Sur le node 1 chercher à joindre le node 2 :

sudo /usr/lib/emqx/bin/emqx ctl cluster join emqx@node2

Commandes

Vérifier l'état du cluster

sudo /usr/lib/emqx/bin/emqx ctl cluster status

Retrait d'un noeud

sudo /usr/lib/emqx/bin/emqx ctl cluster leave emqx@node2

Retrait forcé d'un nœud

sudo /usr/lib/emqx/bin/emqx ctl cluster force-leave emqx@node2

Dashboard

Par défaut

Port 18083

admin/public

Source

https

dashboard {
listeners.http {
bind = 18083
}
listeners.https {
bind = 18084
}
}

Traces

logs

Les fichiers de log se trouvent dans le répertoire /var/log/emqx

Niveau de logs

debug : Informations détaillées pour le débogage

info : Informations générales sur le fonctionnement

notice : Événements normaux mais significatifs

warning : Avertissements (fonctionnement normal mais attention requise)

error : Erreurs de fonctionnement

critical : Erreurs critiques

alert : Actions immédiates requises

emergency : Système inutilisable

Modification verbosité

via fichier de configuration

Modifier le fichier /etc/emqx/emqx.conf :

log {
file {
level = debug
}
console {
level = debug
}
}

via interface d'administration

Allez dans « Management / Logging »

Modifiez le niveau de log

via API REST

Pour changer le niveau de log global :

curl -X PUT "http://localhost:8081/api/v4/log/level" -H "Content-Type: application/json" -d '{"level": "debug"}' -u admin:public

Pour un handler spécifique

curl -X PUT "http://localhost:8081/api/v4/log/handlers/console" -H "Content-Type: application/json" -d '{"level": "debug"}' -u admin:public

Dépannage

emqx ne démarre pas

Problème

Après avoir mis les traces en mode debug on observe l'info suivante :

Creating new mnesia schema, result: {error,{'emqx@node1',{already_exists,'emqx@node1'}}}

Explication

EMQX essaye de créer un nouveau schéma Mnesia qui existe déjà pour le nœud emqx@node1

Solution

Supprimer le schéma, redémarrer EMQX et joindre à nouveau le nœud en question

sudo rm -rf /var/lib/emqx/mnesia/* sudo systemctl restart emqx sudo emqx_ctl cluster join emqx@node1

Haut de page