Lassen Sie uns über Gladys V4 sprechen

Ich gebe zu, dass ich von dieser Art von Reaktion überrascht bin!

Es ist extrem selten, dass man öffentlich darüber spricht (ich denke, dass Software versucht, nicht darüber zu sprechen, um die Benutzer nicht zu erschrecken, besonders bei Open Source), aber ich kenne keine einzige Open-Source-Software, die keine Statistiken über die Versionsfragmentierung, die Nutzung nach Ländern und die Anzahl der Installationen kennt. Entschuldigung, dass ich den Stein ins Rollen gebracht habe :smiley:

Hast du schon mit VSCode entwickelt? Firefox (oder anderes) verwendet? Oder sogar Nachrichten auf einem Discourse-Forum wie diesem hier geschrieben? :smiley: All diese Software sammelt Statistiken.

Ich sage nicht « weil sie es tun, müssen wir es auch tun ». Ich spreche nicht einmal davon, detaillierte Statistiken zu sammeln, wie diese Software es tut, ich spreche nicht einmal davon, die IPs zu speichern, ich spreche nur davon, « serverseitig » ein Log der Update-Aufrufe zu speichern, nur um den Installationspark zu kennen.

Bist du schockiert, dass es Analytics auf der Gladys-Website gibt? :slight_smile:

Genau! Es ist extrem wichtig zu wissen, welche Versionen im Umlauf sind, allein aus Sicherheitsgründen.

Man denkt an Frankreich, das ein kleines Land ist, aber zum Beispiel in den USA nur « Vereinigte Staaten » zu wissen, gibt wenig Informationen, oder? Eine gekürzte Breiten-/Längengradangabe zu haben, um zu wissen, ob es eher die Westküste/Ostküste ist, scheint mir nicht schlecht zu sein, um zu wissen, wo die Community ist.

Vielleicht habe ich ein zu starkes Wort verwendet, als ich von Telemetrie sprach… :smiley:

Ich schlage nur vor, serverseitig die API-Aufrufe für Updates zu zählen und Statistiken über den User-Agent des Programms zu erstellen, das den Aufruf tätigt.

Im Grunde genommen, bei jedem Update-Aufruf, wenn das Programm, das den Aufruf tätigt, als User-Agent « gladys v4.0.1 » hat, im Grunde zähle ich +1 für Gladys v4.0.1, und ich mache ein GeoIP, um das Land + die Region + einen sehr ungenauen Breiten-/Längengrad zu erhalten.

Ich denke an dieses Datenmodell:

CREATE TABLE t_gladys_usage (
    id uuid DEFAULT uuid_generate_v4() NOT NULL,
    version character varying(255), -- Ex: v4.0.0
    country character varying(255), -- Ex: US
    region character varying(255), -- Ex: CA
    timezone character varying(255), -- America/San-Francisco
    region_latitude character varying(255), -- ex: 44.2
    region_longitude character varying(255), -- ex: 2.3
    created_at timestamptz NOT NULL default now()
);

Ich sehe keinen Nutzen, außer für die Zeitzone.

Solange wir die Wahl haben, ist das kein Problem @pierre-gilles

Hallo,
Ich gehöre zu denen, die es heruntergeladen und dann installiert haben, um es auszuprobieren.
Ich nutze Gladys nicht täglich, da ich nicht genug Geräte habe.
Ich möchte die Spracherkennung installieren, aber ich möchte keine Bankdaten und Statistiken an Google weitergeben.
Dass Gladys minimale Informationen sammelt, erscheint mir normal, um die Versionen weiterzuentwickeln.
Aber das sollte weit gefasst sein oder die Wahl lassen, was man senden möchte.
Die Version, das Land, die Region erscheinen mir akzeptabel.

@pierre-gilles arff vielleicht hätte ich ein kleines Smiley einfügen sollen, damit man meinen billigen Humor versteht… Es war ein Scherz, auch wenn er hier vielleicht nicht hingehört, sorry!

Aber was die vielen Tracking-Möglichkeiten im Web angeht, denke ich, dass ich ziemlich gut geschützt bin: uBlock, ESET Smart Security mit Firewall im strikten und interaktiven Modus, und dann entscheide ich selbst, was blockiert wird oder nicht… Ich bin kein Entwickler, ich bin Maurer.
Noch einmal, sorry, dass du dich erschrocken hast, das war nicht die Absicht meiner Nachricht.

PS: Ich bekomme gelegentlich Fehler 502 von nginx, wenn ich Nachrichten sende.

Wie hilft es, das zu wissen? Wie verbessert das die Sicherheit?

OK, du weißt zum Beispiel, dass eine bestimmte Version von Gladys eine Schwachstelle enthält. Super, aber wenn deine Daten anonym sind, bringt es dir nichts, Informationen zu haben. Es bleiben Statistiken.

Gleiches Problem, heute Morgen ging es nicht so gut :grin:

Ich spreche nicht über Telemetrie, die vom Client gesendet wird, bei der du dich tatsächlich « opt-out » kannst. Ich spreche nur darüber, Serveraufrufe zu zählen. Es wird nicht einmal eine « opt-in »-Option geben, denn Gladys wird nichts Besonderes tun! Wir sammeln nicht einmal persönliche Daten, alles geschieht anonym auf Serverseite.

Ich werde einige Vergleichsbeispiele geben, denn ich habe das Gefühl, dass die Reaktionen im Verhältnis zum Anliegen übertrieben sind ^^ Ich habe wohl zu starke Worte verwendet.

Wenn du folgendes ausführst:

docker pull gladysassistant/gladys
npm install 

Sind wir uns einig, dass docker-cli und npm-cli Aufrufe an die Docker- und NPM-Server tätigen?

Docker speichert diese Aufrufe, bereits weil sie ihre Infrastruktur nutzen (sie müssen wissen, wie viel Verkehr auf ihren eigenen Servern herrscht, das ist das Minimum, wenn sie ihre API dimensionieren wollen), und zusätzlich, weil sie Statistiken über die verschiedenen Repositories bereitstellen.

Dadurch können sie Folgendes berechnen:

Docker möchte wahrscheinlich auch wissen, welche Version des « docker-cli » bei den Kunden läuft, um zu wissen, ob sie API-Routen älterer Versionen deprecieren können oder ob diese Versionen noch zu häufig verwendet werden.

Ich möchte einfach diese gleichen Statistiken « serverseitig » haben.

Es ist wichtig, die Fragmentierung der installierten Basis zu kennen, denn du kannst Entscheidungen auf der Grundlage dieser Statistiken treffen.

Beispiel: Die Android-App basiert auf der Gladys-API. Wenn wir in der Version 4.2.1 von Gladys eine neue Route hinzufügen, möchten wir wissen, ob wir diese Route in der Android-App verwenden können.

Wenn wir sehen, dass 99% der installierten Basis Gladys 4.3.0 ausführt, das nach 4.2.1 kommt, können wir uns sagen « ok, wir können die Funktion implementieren ».

Das ist nur ein Beispiel, aber nicht das einzige. Es ist auch ein gutes Mittel, um zu sehen, ob das Update-System richtig funktioniert und die installierte Basis regelmäßig aktualisiert wird.

Seltsam! Ich werde mal schauen, ob der Server in Ordnung ist.

Bearbeitet: Alles scheint in Ordnung zu sein, auch wenn ich den Eindruck habe, dass wir beim RAM gerade… nur noch 200 MB von 2 GB RAM übrig haben. Ich behalte das im Auge.

Man kann sich folgendes Szenario vorstellen:

Gladys V4.1.2 ist extrem weit verbreitet und wird genutzt. Aber sie ist von einer Schwachstelle betroffen, die es einem Angreifer ermöglicht, die Kontrolle aus der Ferne zu übernehmen (also Datenklau, Spionage, Infektionen, Zombie-PCs, Ransomware und was es sonst noch gibt).
Eine Version v4.1.3 wird veröffentlicht, um das schnell zu patchen, aber nach einigen Wochen sieht man dank der Statistiken, dass nur etwa 20% der Nutzer das Patch angewendet haben.
In diesem Fall könnte man eine zweite Kommunikation starten oder über neue Maßnahmen nachdenken, um alle zu schützen.

Darum verlangen auch viele Lösungen eine E-Mail-Adresse, bevor man die Software herunterladen kann. Im Falle eines Problems kann man so schnell alle erreichen.

Hallo,
Es macht mir überhaupt keine Sorgen, dass du diese Daten speicherst (auch die Stadt, solange es nicht die genaue Adresse ist, aber das ist ja nicht möglich).

Sobald ein Nutzer im Web surft, hinterlässt er diese Spuren auf den Servern, die er besucht.

Es ist nicht die Open-Source-Software auf der Client-Seite, die diese Daten sendet, sondern der Server, der seine Logs verwendet. Für mich also kein Problem.

Schau mal, ich habe die Dokumentation von Gatsby (Open-Source-Projekt für statische Websites) zu den anonymen Statistiken, die sie erfassen, gefunden. Das ist interessant:

Ok ok, los geht’s :slight_smile:

@pierre-gilles und die anderen hallo :slight_smile:

Frage bezüglich Gladys 4. Es geht um Sicherheit usw. … Denkt ihr, dass es interessant wäre, auf Gladys ein Tool wie z. B. Pi-hole zu installieren, das es ermöglichen würde, die Anfragen, die unser Netzwerk verlassen, zu verwalten?

Wir haben viele vernetzte Geräte, und eigentlich wissen wir nicht, was sie machen. Die Idee ist, sie daran zu hindern, nach außen zu gehen, sondern nur mit unserem Gladys zu interagieren. Ich denke dabei insbesondere an die Xiaomi-Reihe, die super ist, aber es bleibt trotzdem chinesisch … Und man weiß nicht, was sie damit machen.

Was denkt ihr? Habt ihr vielleicht andere Lösungen?

Ich möchte ein Netzwerk für die Hausautomatisierung erstellen, das vom „öffentlichen“ Netzwerk, das von Telefonen und Computern genutzt wird, getrennt ist. In diesem Fall wäre es interessant, Anfragen, die von einem vernetzten Gerät nach außen initiiert werden, zu blockieren und zu überwachen.
Aber wäre Pi-hole entweder eine Anwendung, die völlig außerhalb von Gladys liegt und die jeder installieren kann (auch wenn man sie auf demselben Raspberry Pi installiert), oder ein Plugin, das in Gladys aktiviert werden kann und das jemand entwickelt?

Letztlich ist es das Wort „Telemetrie“, das Angst macht, obwohl das, was du vorhast, ganz anders ist: Wenn ich (oder lese :slight_smile:) dieses Wort höre, denke ich sofort an Windows (unter anderem) und die enorme Menge an Daten, die das Betriebssystem von selbst sendet!
Gladys wird dagegen nichts senden, sie wird nur fragen, ob ein Update verfügbar ist, und ihre aktuelle Version angeben. Auf Serverseite kannst du dann Statistiken über die verwendeten Versionen und ungefähre Standorte erstellen.

Wenn das dazu beitragen kann, Gladys und die Nutzercommunity weiterzuentwickeln, bin ich für die Erfassung von Statistiken.

  • verwendete Gladys-Version
  • Land

Ich werde zwei Gladys haben (Wohnsitz und Arbeitsplatz), also ein Download für zwei Instanzen, und dann sind deine Statistiken falsch.

Na klar, @pierre-gilles hat heute Morgen das Streichholz angezündet :collision: :grin:

Dann gibt es mehrere Möglichkeiten, das Problem zu betrachten. Man kann natürlich sagen, dass die Anwendung von den Personen installiert werden muss. Die zweite Idee könnte sein, sie auch in das Rasbian-Image von Gladys zu integrieren und sie standardmäßig zu aktivieren. Anschließend könnte Gladys mit der API von Pi-hole kommunizieren, um die Regeln zu ändern oder einfach nur Pi-hole zu aktivieren/deaktivieren.

Das ist eine Idee, die nicht schlecht ist. Außerdem kann man sogar ein Docker direkt daneben erstellen.

Super! Schön, dass ihr den Bedarf versteht :slight_smile: Ich will nichts Böses, ich möchte nur den Einsatz etwas besser verstehen und die Werkzeuge haben, um die Entwicklung der Installation zu sehen, ohne die Privatsphäre der Nutzer zu gefährden.

Die aktuelle Implementierung, die ich gemacht habe, vollständig serverseitig wie vorgesehen, speichert in einer Tabelle:

CREATE TABLE t_gladys_usage (
    id uuid DEFAULT uuid_generate_v4() NOT NULL,
    client_id uuid NULL,
    event_type character varying(255),
    user_agent character varying(255),
    system character varying(255),
    node_version character varying(255),
    is_docker boolean, 
    country character varying(255),
    region character varying(255),
    timezone character varying(255),
    region_latitude double precision,
    region_longitude double precision,
    created_at timestamptz NOT NULL default now()
);

Einige Ergänzungen:

  • system: (linux, macos, windows). Das wird nützlich sein, um den Anteil jedes Betriebssystems zu kennen.
  • node_version: (v10.0.0) die verwendete Node.js-Version
  • is_docker (true/false): Läuft Gladys in Docker?

Alles anonymisierte Informationen, aber sehr nützlich für das Projekt.

Warum nicht ein Dienst, der den pi-hole-Container + die Konfiguration startet :slight_smile:

Für mich ist es super, zu erklären, wie man es macht, und alles bereitzustellen, damit es einfach zu konfigurieren ist, neben Gladys, aber es sollte nicht standardmäßig installiert werden.

Das Bild sollte minimal sein.

Auch okay für ein paar Statistiken, aber nicht auf Stadtebene.
Darum habe ich mich auch nicht auf der Forumskarte registriert: Stell dir vor, es gibt eine Sicherheitslücke und ich habe nicht aktualisiert…

Selbst wenn es nur ungefähr ist, ist es nicht schwer, mich durch das Abgleichen von Webdaten zu finden (ich frage mich sogar jetzt schon, ob das nicht schon der Fall ist…) und dann mit der Sicherheitslücke herumzuspielen.

Das ist ein bisschen paranoid, aber auch nicht übertrieben, weil ich nicht alles filtere, was von mir nach draußen geht (Xiaomi). Aber ich hoffe schon, die Kontrolle über solche Daten zu haben.

Aber tatsächlich: Land, Betriebssystem, Version, Hardware?, und andere nette Dinge, wenn es Gladys nützt… :wink: