Grafana: [Funktionsanfrage] Erweiterung des Organisationsmodells um Benutzer- und Dashboard-(Unter-)Gruppen

Erstellt am 3. Mai 2016  ·  3Kommentare  ·  Quelle: grafana/grafana

Hintergrund

Datenquelle: InfluxDB, möglicherweise PostgreSQL für sich selten ändernde Daten.

Diese Funktionsanfrage ist eine allgemeine Erweiterung der Diskussionen in:

2132, #2777, #1611

Es basiert auf dem Slack Post: Grafana Cloud Hosting Best Practices, den ich am 20.04.2016 im grafana Channel auf raintank.slack.com .

Für Neugierige:
Um herauszufinden, was ein Off-Grid- oder Hybridsystem ist, lesen Sie bitte dieses leicht zugängliche Dokument:

Hybride Stromsysteme auf Basis erneuerbarer Energien (Quelle: Alliance for Rural Electrification )

Die Herausforderung

Unten ist ein Beispiel für einen meiner komplexesten Grafana-Anwendungsfälle.

├── Off-Grid manufacturer 1
│   └── Technical staff
│   └── Finance staff
│   └── Investors
│   └── Public (i.e. demo dashboards)
│   │
│   └── Plant hire company 1.1
│   │   ├── Finance staff
│   │   ├── Technical staff
│   │   └── Investors
│   │   └── Public (i.e. demo dashboards)
│   │   │
│   │   └── Building company 1.1.1
│   │   │   ├── Technical staff
│   │   │   ├── Finance staff
│   │   │   └── Investors
│   │   │   └── Public (i.e. demo dashboards)
│   │   .
│   │   .
│   │   └── Building company 1.1.n
│   .
│   .
│   └── Plant hire company 1.n
.
.
└── Off-Grid manufacturer n

Beachten Sie, dass ich mich nicht nur mit mehreren Organisationen befassen muss, sondern mit mehreren Organisationen, die einige Ebenen tiefer liegen.

Innerhalb von Off-Grid manufacturer 1 gibt es 5 verschiedene Benutzergruppen, nämlich:

• Technisches Personal
• Finanzpersonal
• Investoren
• Öffentlich
• Kunden (dh Anlagenvermieter; im Wesentlichen eine Unterorganisation)

Jede dieser Gruppen hat sehr unterschiedliche Anforderungen an die Datenvisualisierung und es wäre fantastisch, Standard-Dashboards für jede Gruppe einrichten zu können. Einigen Gruppen, wie den Technikern, möchte ich vollen Zugriff gewähren, um ihre eigenen Dashboards zu erstellen und alles grafisch darstellen zu können. Die öffentliche Gruppe möchte ich komplett abriegeln, während jede andere Gruppe irgendwo zwischen diesen beiden Extremen liegt. Ich möchte nicht, dass sich Gruppen in die Dashboards oder Datenquellen des anderen einmischen oder Zugriff darauf haben.

Off-Grid manufacturer 1 muss auf alle Daten aller darunter liegenden Unternehmen zugreifen können, während Plant hire company 1.1 auf alle darunter liegenden Unternehmen zugreifen können muss, jedoch nicht auf die Daten anderer Anlagenmieter zugreifen können Unternehmen auf derselben Ebene wie sie selbst oder Organisationen über ihnen.

Ein etwas extremes Beispiel, das ich kenne, aber das ist meine Realität!

Die Feature-Anfrage

Um den Dashboard-Zugriff zu vereinfachen, wäre es großartig, Benutzergruppen und Dashboard-Gruppen innerhalb von Organisationen zu haben und jedem Benutzer oder jeder Benutzergruppe Anzeige-/Bearbeitungsrechte für Dashboards gewähren zu können. Untergruppen (oder Unterorganisationen) mit der Möglichkeit, bestimmten Benutzern innerhalb einer bestimmten Gruppe Administratorrollen zuzuweisen, wobei diese Administratorrechte auf diese Untergruppe (oder Unterorganisation) beschränkt sind, wären ebenfalls praktisch 😈

Wenn Sie eine einzelne Organisation zeichnen müssten, würde sie ungefähr so ​​aussehen:

users     :  u1   u2    u3   u4   u5 |
              \ /    \ /     /   /   |
               |      |     /   /    |
user      :   ug1    ug2   /   /     |
groups    :    |   /  |   /   /      |
               |  /   |  /   /       |>- organisation
               | /    | /   /        |
dashboard :   dg1    dg2   /         |
groups    :    |      |   /          |
              / \    / \ /           |
dashboards:  d1 d2  d3 d4            |
                                   --

Notiz:

  • Benutzer 1 ( u1 ) hat über Benutzergruppe 1 ( ug1 ) nur Zugriff auf die Dashboards 1 & 2 ( d1 & d2 ).
  • Benutzer 2 ( u2 ) gehört zu beiden Benutzergruppen und hat somit Zugriff auf alle 4 Dashboards.
  • Jeder Benutzer der Benutzergruppe 2 ( ug2 ) hat Zugriff auf beide Dashboard-Gruppen und hat somit auch Zugriff auf alle 4 Dashboards.
  • Benutzer 4 ( u4 ) gehört direkt zur Dashboard-Gruppe 2 ( dg2 ), nicht über eine Benutzergruppe.
  • Benutzer 5 ( u5 ) hat nur die Berechtigung zum Anzeigen von Dashboard 4 ( d4 ). Soweit ich das verstanden habe, ist dies das aktuelle Berechtigungsmodell in Organisationen?

Eine Organisation mit mehreren Unterorganisationen würde in etwa so aussehen:

                                  | sub-users     :  su1 su2  su3 su4
                                  |                    \ /     \ /  
                                  |                     |       |   
             sub-organisation 1 -<| sub-user      :    sug1    sug2 
            /                     | groups        :     |  \    |   
organisation                      |                     |   \   |   
            \                     |                     |    \  |  
     sub-organisation 2           | sub-dashboard :    sdg1    sdg2  
                                  | groups        :     |       |   
                                  |                    / \     /  \  
                                  | sub-dashboards:  sd1   sd2    sd3
                                   --

Notiz:

  • Sub-Dashboard 2 ( sd2 ) gehört zu beiden Sub-Dashboard-Gruppen und ist somit für alle 4 Benutzer zugänglich.
  • sub-organisation 1 hat keinen Zugriff auf Daten, die zu sub-organisation 2 oder zu organisation , außer auf seine eigenen.

Real-Life-Szenarien

Hier ist ein Anwendungsszenario, um ein Bild davon zu zeichnen, wie ich mir dies in der Realität vorstelle:

Ich habe einen Kunden, Off-Grid manufacturer 1 , der Off-Grid-Systeme baut und an Anlagenvermieter verkauft, die diese wiederum an Baufirmen vermieten, die Strom auf ihren Baustellen benötigen (Anmerkung: 4 Organisationsebenen).

Off-Grid manufacturer 1 gewinnt einen neuen Kunden, Plant hire company 1.2 , der alle Off-Grid-Systeme überwachen möchte, die sie von Off-Grid manufacturer 1 kaufen. Plant hire company 1.2 hat zwei Kunden, Building companies 1.2.1 & 1.2.2 , die ihre eigenen Benutzerzugriffsrechte verwalten möchten.

Off-Grid manufacturer 1 hat einen Standardsatz von Dashboards für jedes Off-Grid-System erstellt, auf das sie allen ihren Kunden Zugriff geben möchten.

Beispiel für verwaltende Organisationen:

  • Ich erstelle eine neue Organisation namens Off-Grid manufacturer 1
  • Ich erstelle einen einzelnen Benutzer innerhalb dieser Organisation und erteile ihm Administratorrechte.

    Beispiel für die Verwaltung von Gruppen:

  • Der Administrator der Organisation Off-Grid manufacturer 1 erstellt 2 Dashboards.

    • Dashboard 1: zeigt sensible Finanzzahlen für die Buchhalter an
    • Dashboard 2: zeigt die Batteriespannung für die Techniker an
  • Der Admin-Benutzer erstellt eine neue Gruppe namens "Finanzen" und gewährt ihr Zugriff auf Dashboard 1.
  • Der Admin-Benutzer erstellt eine neue Gruppe namens "Techniker" und gewährt ihr Zugriff auf Dashboard 2.

    Beispiel für die Verwaltung von Benutzern:

  • Der Admin-Benutzer der Organisation Off-Grid manufacturer 1 erstellt einen neuen Benutzer (zB finance_user_1 ).

  • finance_user_1 wird der Gruppe "Finanzen" hinzugefügt (sie haben sofortigen Zugriff auf Dashboard 1)

    Administratoren von Untergruppen/Unterorganisationen

  • Der Admin-Benutzer der Off-Grid manufacturer 1 Organisation erstellt eine neue Gruppe oder Unterorganisation (zB hire_company_1.2 ).

  • Der Admin-Benutzer erstellt einen neuen Benutzer namens hire_company_1.2_admin .
  • hire_company_1.2_admin können:

    • neue Benutzer erstellen (die automatisch auf die Gruppe hire_company_1.2 sind.

    • Unterbenutzergruppen erstellen

    • Unterbenutzer zu Unterbenutzergruppen zuweisen

    • Dashboards erstellen

    • Sub-Dashboard-Gruppen erstellen

    • Zuweisen von Dashboards zu Sub-Dashboard-Gruppen

typfeature-request

Hilfreichster Kommentar

Ich würde vorschlagen, auch Datenquellen zu isolieren und die Administratoren der Gruppen ihre eigenen sicher verwalten zu lassen.

Alle 3 Kommentare

Ich würde vorschlagen, auch Datenquellen zu isolieren und die Administratoren der Gruppen ihre eigenen sicher verwalten zu lassen.

Vorschlag für Dashboard-Gruppen und ein Berechtigungsmodell: https://github.com/grafana/grafana/issues/1611#issuecomment -287742633

getan in v5 über Teams & Dashboard-Ordner

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen