Outils pour utilisateurs

Outils du site


software:applications:mqtt2prometheus

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
software:applications:mqtt2prometheus [2022/04/14 14:00] yoannsoftware:applications:mqtt2prometheus [2022/12/20 22:58] (Version actuelle) yoann
Ligne 7: Ligne 7:
  
  
-Par défaut mqtt2prometheus écoute sur le port **9641**+===== Connexion au Broker MQTT =====
  
 +Le fichier de configuration ''/config.yml'' permet de définir les paramètres de connexion au Broker MQTT.
  
-Vérifier que depuis le conteneur Prometheus, on peut atteindre l'exporter:+<code yaml> 
 +mqtt: 
 +  # The MQTT broker to connect to 
 +  server: tcp://broker:1883 
 +  # Optional: Username and Password for authenticating with the MQTT Server 
 +  # user: bob 
 +  # password: happylittleclouds 
 +  # Optional: for TLS client certificates 
 +  # ca_cert: certs/AmazonRootCA1.pem 
 +  # client_cert: certs/xxxxx-certificate.pem.crt 
 +  # client_key: certs/xxxxx-private.pem.key 
 +  # Optional: Used to specify ClientID. The default is <hostname>-<pid> 
 +  client_id: mqtt_exporter 
 +  # The Topic path to subscribe to. Be aware that you have to specify the wildcard. 
 +  topic_path: '#' 
 +  # Optional: Regular expression to extract the device ID from the topic path. The default regular expression, assumes 
 +  # that the last "element" of the topic_path is the device id. 
 +  # The regular expression must contain a named capture group with the name deviceid 
 +  # For example the expression for tasamota based sensors is "tele/(?P<deviceid>.*)/.*" 
 +  # device_id_regex: "(.*/)?(?P<deviceid>.*)" 
 +  # The MQTT QoS level 
 +  qos: 0 
 +</code> 
 + 
 +L'exporteur mqtt2prometheus souscrit au broker. Les journaux du broker permettent de tracer la souscription: 
 + 
 +<code bash> 
 +docker-compose logs mosquitto  
 +Attaching to synopush_mqtt_broker 
 +synopush_mqtt_broker | 1671561436: mosquitto version 2.0.14 starting 
 +synopush_mqtt_broker | 1671561436: Config loaded from /mosquitto/config/mosquitto.conf. 
 +synopush_mqtt_broker | 1671561436: Opening ipv4 listen socket on port 1883. 
 +synopush_mqtt_broker | 1671561436: Opening ipv6 listen socket on port 1883. 
 +synopush_mqtt_broker | 1671561436: mosquitto version 2.0.14 running 
 +synopush_mqtt_broker | 1671561437: New connection from 172.19.0.5:49754 on port 1883. 
 +synopush_mqtt_broker | 1671561437: New client connected from 172.19.0.5:49754 as mqtt_exporter (p2, c1, k30). 
 +. . . 
 +</code> 
 + 
 +Les logs indiquent bien qu'un client nommé "mqtt_exporter" s'est connecté. 
 + 
 +===== Exposition des métriques ===== 
 + 
 +Les métriques ne seront plus présentées à Prometheus si les valeurs ne sont pas rafraîchies par la réception de message MQTT en deçà de la valeur de **timeout**. 
 +<code yaml> 
 +cache: 
 +  # Timeout. Each received metric will be presented for this time if no update is send via MQTT. 
 +  # Set the timeout to -1 to disable the deletion of metrics from the cache. The exporter presents the ingest timestamp 
 +  # to prometheus. 
 +  timeout: 24h 
 +</code> 
 + 
 + 
 + 
 +Le fichier de configuration permet de définir/sélectionner les métriques à présenter à Prometheus 
 + 
 +<code yaml> 
 +# Liste des métriques valides. Seules les métriques listées ci-dessous seront exportées. 
 +metrics: 
 +    # Nom de la métrique exposée pour Prometheus 
 +  - prom_name: temperature_celsius 
 +    # Correspondance avec la valeur du message JSON MQTT 
 +    mqtt_name: t 
 +    # Description de la métrique 
 +    help: temperature ambiante (°C) 
 +    # Type de la métrique Prometheus. Valeurs possibles: "gauge" ou "counter" 
 +    type: gauge 
 +    # Nom de la métrique exposée pour Prometheus 
 +  - prom_name: humidity_ratio 
 +    # Correspondance avec la valeur du message JSON MQTT 
 +    mqtt_name: u 
 +    # Description de la métrique 
 +    help: Humidité relative (%) 
 +    # Type de la métrique Prometheus. Valeurs possibles: "gauge" ou "counter" 
 +    type: gauge 
 +</code> 
 + 
 +===== Scraping par Prometheus ===== 
 + 
 +Par défaut mqtt2prometheus écoute sur le port **9641**. Vérifier que depuis le conteneur Prometheus, on peut atteindre l'exporteur:
  
 <code bash> <code bash>
Ligne 19: Ligne 99:
 wget -O - "http://mqtt2prometheus:9641/metrics" wget -O - "http://mqtt2prometheus:9641/metrics"
 </code> </code>
- 
  
 ===== logs ===== ===== logs =====
Ligne 33: Ligne 112:
 ^ panic     | Journalisation de l'erreur et panic                                                 | ^ panic     | Journalisation de l'erreur et panic                                                 |
 ^ fatal     | Journalisation de l'événement et appel de os.Exit(1)                                | ^ fatal     | Journalisation de l'événement et appel de os.Exit(1)                                |
- 
- 
  
 ===== Références ===== ===== Références =====
software/applications/mqtt2prometheus.1649944801.txt.gz · Dernière modification : 2022/04/14 14:00 de yoann