• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
risorse monitoraggio

Monitoraggio risorse
#1
Ciao, ho allestito un piccolo cluster di raspberry che fanno girare BOINC per il calcolo distribuito. 
Avrei la necessità di tenere sotto controllo l'andamento nel tempo (per identificare eventuali anomalie) dei parametri più importanti come temperatura e utilizzo della memoria e cerco un tool che mi consenta di vedere i dati di tutti i singoli nodi in una sola schermata (anche da remoto). Cercando in rete ho trovato diversi software ma a pagamento… Mi consigliate qualcosa di gratuito? 
Risposta
#2
gratuito lo puoi fare tu con Python e un servizio on-line gratuito
O con Node-Red
sono due link alle nostre guide sul blog.
Sempre lì, ve ne sono molte altre per approfondire (ad esempio su Node-Red)
Risposta
#3
MQTT + NodeRed
Heart Libro  | Blog EnricoSartori.it | Idea YouTube
Se un utente ti è stato utile, aumenta la sua reputazione! premi il Pollicione! 
Risposta
#4
Visto che ho qualche giorno di ferie ho deciso di rimettermi al lavoro sul progetto e pensavo di usare thingspeak ... incontro però qualche problema perché forse le guide sono vecchiotte...
Esiste qualche tutorial più recente?
per ora mi basta capire come esportare la temperatura della CPU. Se trovo qualcosa di già fatto poi lo analizzo per bene
Risposta
#5
La guida è sicuramente vecchiotta
https://www.raspberryitaly.com/datalogge...pberry-pi/
Ma dicci dove trovi difficoltà e vediamo di aggiornarla insieme, se serve

Inviato dal mio A0001 utilizzando Tapatalk
Risposta
#6
Guide

[Immagine: es_dashboard_titolo1-660x330.png]

[Immagine: 07-07-22-2018_43_15-RaspberryItaly-Dashb...60x330.png]
Heart Libro  | Blog EnricoSartori.it | Idea YouTube
Se un utente ti è stato utile, aumenta la sua reputazione! premi il Pollicione! 
Risposta
#7
(30/04/2019, 14:17)Zzed Ha scritto: La guida è sicuramente vecchiotta
https://www.raspberryitaly.com/datalogge...pberry-pi/
Ma dicci dove trovi difficoltà e vediamo di aggiornarla insieme, se serve

Inviato dal mio A0001 utilizzando Tapatalk

Grazie!!
nel frattempo sono riuscito a combinare qualcosina. Ho cercato gli errori in google ed ho fatto qualche modifica allo script cambiando il nome di alcune librerie (ad esempio 'httplib' diventa 'http.client') ed aggiungendo qualche parentesi (ad esempio 'print "non trovo il file"' diventa 'print ("non trovo il file")') ecc.

In questo modo ora riesco a vedere le temperature di tutti e 7 i raspi in cluster in una sola pagina...
mi restano delle domande molto banali.. dovute alla mia scarsa conoscenza di linux... se non vi disturba le raccolgo e ve le scrivo....

qui come ho modificato il programma:


Codice:
#!/usr/bin/env python
__author__ = 'Zzed'
# Programma Datalogger di prova, con invio dati online su un canale Thingspeak
# per utilizzarlo, occorre sottoscrivere un account su Thingspeak.com, impostare un canale
# e prendere la KEY del canale https://thingspeak.com/docs/tutorials/
# Poi, incollare la propria KEY di canale nel codice sotto, come valore della variabile "key"
# se non si connette, salva i dati in locale, e prova a uploadarli non appena possibile

def main():
   pass

import http.client,urllib,datetime,random,os # importo le librerie
from time import sleep

#configurazione:
intervallo = 60 # tempo di attesa in secondi tra un invio e l'altro

#definizione funzioni:
def thermometer():
   # Calcoliamo la temperatura della CPU del RaspberryPi in gradi centigradi
   temp = int(open('/sys/class/thermal/thermal_zone0/temp').read()) / 1e3 # prende temperatura CPU
   #temp = str(random.randrange(40,51)) #valore random per test su pc
   return temp

def inviothinkspeak(valore):
   """invia il valore a Thingspeak, se impossibile lo salva in ram"""
   key = 'key'  # <-- key del canale Thingspeak da aggiornare
   dest = 'dati-temporanei.csv' # <- percorso del file dati temporanei locali

   params = urllib.parse.urlencode ({'field1': valore, 'key':key })
   headers = {"Content-typZZe": "application/x-www-form-urlencoded","Accept": "text/plain"}
   conn = http.client.HTTPConnection("api.thingspeak.com:80")
   try:
       f = open(dest,'r')
       righe = [x for x in f.readlines()]
       f.close()
       os.remove(dest)
   except (IOError, OSError):
       # non esiste file temporaneo
       pass
   try:
       conn.request("POST", "/update", params, headers)
       response = conn.getresponse()
       conn.close()
   except:
       #connessione fallita!: implementare memorizzazione locale in ramdisk
       t = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
       vst = str(valore)
       # Scrive un file.
       out_file = open(dest,'a') # apre file.csv Append
       out_file.write(t + ' CEST,'+ vst + '\n' )  # scrive i dati e va a capo
       out_file.close()                           # chiude il file

def importcsvthingspeak(file):
   try:
       f = open(file,'r')
       righe = [x for x in f.readlines()]
       f.close()
       for x in righe:
           print (x)
   except IOError:
       print ("non trovo il file")

# programma vero e proprio, loop con attesa
if __name__ == "__main__":
       while True:
           misura = thermometer()
           # print misura # TEST
           inviothinkspeak(misura)
           sleep(intervallo)
Risposta
#8
Stai usando Python 3 probabilmente. Lo script era scritto su Python 2.x ci sono piccole differenze

Inviato dal mio A0001 utilizzando Tapatalk
Risposta
  


Vai al forum:


Navigazione: 4 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect