Intégration (& monitoring) Proxmox

C’est une bonne raison alors :wink:

Je tente d’implémenter ton script sur mes deux machines.

Création d’un fichier info_system.py dans le répertoire /sh où j’ai un script pour les température déjà.

ensuite dans le crontab -e je mets ceci (modification du chemin) :

*/1 * * * * /usr/bin/python3 /sh/info_system.py

ton script modifié à mon contexte normalement (normal pas de user et mdp mqtt broker de test) :

import os
import psutil
import paho.mqtt.client as mqtt

def mqtt_pub(topic, value):
        mqttc = mqtt.Client(client_id="ProxmoxPVE02")
        mqttc.username_pw_set("", "")
        mqttc.connect("192.168.1.140", 1883, 60)
        mqttc.publish(topic,value, qos=0, retain=True)
        mqttc.disconnect()


stream = os.popen('/usr/sbin/hddtemp --numeric /dev/sda')
ssd1_temp = stream.read()
stream = os.popen('/usr/sbin/hddtemp --numeric /dev/sdb')
ssd2_temp = stream.read()
stream = os.popen('/usr/sbin/hddtemp --numeric /dev/sdc')
ssd3_temp = stream.read()
stream = os.popen('/usr/sbin/hddtemp --numeric /dev/sdd')
ssd4_temp = stream.read()


temps = psutil.sensors_temperatures()
fans = psutil.sensors_fans()

myjson="{\"ssd_nvme\": " + str(temps['nvme'][0].current) + ",\"cpu_temp\": " + str(temps['coretemp'][0].current) + ",\"cpu_fan\": " + str(fans['nct6798'][1].current)  + ",\"ssd1_temp\": " + ssd1_temp  + ",\"ssd2_temp\": " + ssd2_temp  + ",\"ssd3_temp\": " + ssd3_temp  + ",\"ssd4_temp\": " + ssd4_temp + ",\"cpu_percent\": " + str(psutil.cpu_percent(2)) + ",\"memory_percent\":" + str(psutil.virtual_memory()[2]) + ",\"media_free\": "  + str(psutil.disk_usage('/mnt/pve/media/')[3])  + ",\"mytank_free\": "  + str(psutil.disk_usage('/mytank/')[3]) + "}"

mqtt_pub('proxmox/nuc72_pve02', myjson)

j’ai modifié l’IP broker, le client_id et le topic mais visiblement rien ne se passe !
En tout cas j’ai rien qui arrive sur mon broker :frowning:
J’ai tenté du mon EMQX aussi fraichement installé et rien (mais là je suis pas certain de bien connaitre l’outil pour juger de si cela marche ou pas)

tu vois un oubli ou une erreur ICC @AlexHass ?

Salut @jerome6994

T’as essayé de lancer le script manuellement ?

Le mieux c’est de commenter la dernière ligne mqtt_pub(...) et de remplacer par print(myjson)
Puis lancer en ligne de commande python3 /sh/info_system.py pour voir le résultat…

Ca risque clairement de planter, le script est adapté à ma config et au matos que j’ai!
Par exemple :

  • si tu n’a pas 4 ssd sur /dev/sda b c & d … ça risque de planter, pas besoin des 4 hddtemp.
  • Je vois aussi que tu as gardé le disk_usage('/mytank/')[3]) … mytank c’est le nom de mon pool ZFS :slight_smile:
  • fans[‹ nct6798 ›][1].current ça correspond à une puce sur ma carte mère, ce n’est pas le même modèle sur toutes les cartes mères…

Bref un copier coller ça va être chaud.

J’ai ma 2eme machine, vachement plus simple avec le même script qui devrait être copié-collable.
Là il n’y a qu’un disque système et les autres valeurs sont assez standard pour une machine qui tourne sous proxmox.

import os
import glob
import psutil
import paho.mqtt.client as mqtt

def mqtt_pub(topic, value):
        mqttc = mqtt.Client(client_id="ProxTwoStats")
        mqttc.username_pw_set("xxxx", "xxxxx")
        mqttc.connect("192.168.x.x", 1883, 60)
        mqttc.publish(topic,value, qos=0, retain=True)
        mqttc.disconnect()

stream = os.popen('df | grep pve-root | awk \'{printf (\"%.0f\",$3*100/($3+$4))}\'')
boot_used = stream.read()

temps = psutil.sensors_temperatures()
cpu_temp = str(temps['coretemp'][0].current)
ram_used = str(psutil.virtual_memory()[2])
cpu_load = str(psutil.cpu_percent(2))

stream = os.popen('echo -n `uptime -ps`')
myuptime = stream.read()

myjson="{\"boot_used\": " + boot_used + ",\"cpu_temp\": " + cpu_temp + ",\"ram_used\": " + ram_used + ",\"cpu_load\": " + cpu_load  + ",\"myuptime\": \"" + myuptime  + "\"}"

#print(myjson)
mqtt_pub('monitoring/proxtwo', myjson)

Et voici le yaml poru les sensor Mqtt dans HA:

- name: "Serveur2 Last Boot"
  state_topic: "monitoring/proxtwo"
  device_class: date
  value_template: "{{ value_json.myuptime }}"
- name: "Serveur2 Cpu"
  state_topic: "monitoring/proxtwo"
  unit_of_measurement: "%"
  value_template: "{{ value_json.cpu_load }}"
- name: "Serveur2 Ram"
  state_topic: "monitoring/proxtwo"
  unit_of_measurement: "%"
  value_template: "{{ value_json.ram_used }}"
- name: "Serveur2 CPU Temp"
  state_topic: "monitoring/proxtwo"
  unit_of_measurement: "°C"
  value_template: "{{ value_json.cpu_temp }}"
- name: "Serveur2 Boot Used"
  state_topic: "monitoring/proxtwo"
  unit_of_measurement: "%"
  value_template: "{{ value_json.boot_used }}"

merci @AlexHass de l’éclairage de l’écriture du script
Il y avait bien des choses que je ne captais pas mais parfois on capte pas tout et ça passe :slight_smile: mais là non

Par contre le second plus simple effectivement passe tout droit en manuel en tout cas

j’avais un script bash pour les température que je voulais compléter, j’avais d’ailleurs trouver quelques commande complémentaire n’arrivant pas à débugger le tien :slight_smile:

il me restait à tenter la syntaxe d’un langage encore inconnu il y a peu :upside_down_face:

Pour ceux qui chercherait la doc associé : psutil documentation — psutil 5.9.5 documentation

Je vais regardé car j’ai deux machines normalement identique mais qui ne présente pas les mêmes températures par exemple (sur j’ai t1, t2 et t3 sur l’autre j’ai t1, t2 et t4) et une machine peut avoir des T° très haute ! à vigiler et surtout à checker le bios si même réglage ou pas et peut être un ventilateur encrassé ou fatigué

Tu peux installer lm-sensors: apt-get install lm-sensors
et ensuite simplement appeler la commande sensors.
Ca va te lister tous les sensors dispos sur la carte mère et toutes les valeurs.
Ce sont les même avec les même noms que tu devrais trouver dans psutil.

Super ça encore une découverte de plus.
J’ai le bloc note qui va exploser avec ces différentes découvertes :rofl:

@AlexHass
image

J’ai bien un serveur qui est chaud quand même !!
Je vais voir si le ventilateur est pas trop salle déjà

proxmoxha
Bonjour, J’ai trouvée cette petite ingration pour Proxmox.

3 « J'aime »

Je l’ai testé rapidement sur mon HA de test la suppression est pas simple
L’intégration s’accroche

Bonjour, pas simple mais tu y es arrive tout de même? ( Comment)
Car ça me fait hésiter à tester.

J’ai mis un backup de HA donc bof
j’ai peut être loupé un truc

Bonjour
Perso j’ai installé le serveur Glances sur mon NUC proxmox :

Ca marche nickel avec l’intégration Glances HA.
En 5 minutes c’était fait !
J’ai environ 30 entités qui remontent (Différentes températures du NUC, RAM, …)

Perso j’ai fini par le virer.

Il me pompait 2% de proc en plus en permanence (qui chauffait donc plus), juste pour les trois entités que j’utilisais.

Après s’il y a quelques trucs pour le rendre plus léger… je suis pas contre.

Pas vraiment remarqué maia bon je suis pas à 2% près. C est un i7 et il tourne aux alentours de 15%.
Je l ai surtout installé pour les températures.
Mon nuc plante quand il fait chaud (pas d’isolation garage et baie mal ventilee) et j essaie ee voie a combien environ pour trouver une solution.

Oui normalement moi aussi. Mais juste c’est les 2 % de plus qui me mettent le ventilo en route alors que mon nuc est silencieux. Donc le choix est vite fait. :grin:

C’est etonnant 2% car ce genre de serveur API ne consomme quasi rien.
Apres tout depend aussi du cpu de ton nuc.
Pour le mien j’ai forcé le ventilo dans le bios. Je le trouve extremement sensible a la temperature…
Faut dire que dans mon garage en plein été il fait 35 et avec l’empilement du matos… c’est chaud dans tous les sens du terme…

Salut,

Cette petite image de Proxmox dans ta carte me plait bien, tu pourrais la partager @AlexHass . Merci.

Salut,

je l’ai empruntée sur ce site:

Je viens de le mettre en oeuvre aussi et en effet, en 5 minutes, c’est fonctionnel !

1 « J'aime »

Désolé, pas vu ta réponse…

C’est un NUC8i5BEH, CPU :

Je suis très économe sur le proc :

Avec :
image
et sur docker :

Donc avec ce qui tourne toujours et je suis dans le 3-5% et quand je lance glance, je suis à 7-8% … ça me fait mal juste pour la remontée de température…

Après au passage, quand je lis :

Pour le mien j’ai forcé le ventilo dans le bios

et dans un autre message juste au dessus :

Mon nuc plante quand il fait chaud

Tu chercherais pas les problèmes ? :sweat_smile:

Sinon le miens chauffe aussi pas mal, le problème des mini PC… donc je limite les taches de fond. Ce qui ne m’empêche pas de faire tourner un Win 10, une debian ou un serv de jeu quand j’ai besoin.