PCG logo
Artikel

AWS Managed Grafana für eine oder mehrere AWS-Organisationen

In diesem Artikel erkläre ich, wie AWS Managed Grafana verwendet werden kann, um CloudWatch-Protokollgruppen und Metriken in ganzen AWS-Organisationen zu überwachen und umfassende Dashboards zu erstellen. Bei Bedarf können mehrere AWS-Konten und -Organisationen mit AWS Managed Grafana verbunden werden, indem die CloudWatch-Funktion zur kontoübergreifenden Beobachtung genutzt wird.

image-a4ea097a828e

Überblick

Wie im Architekturdiagramm dargestellt, wird AWS Managed Grafana in einem AWS Monitoring Account erstellt. Außerdem wird für jede AWS-Organisation, die verbunden werden muss, eine IAM-Rolle erstellt. Diese Rolle kann von AWS Managed Grafana übernommen werden und hat die Berechtigung CloudWatchReadOnlyAccess. Die kontoübergreifende Beobachtungsfunktion von CloudWatch kann auch im Überwachungskonto aktiviert werden. Dazu wird eine Senke im Monitoring Account erstellt und eine Verknüpfung in allen AWS-Konten, die verbunden werden müssen, hergestellt.

Mit dieser Einrichtung kann die IAM-Rolle und damit AWS Managed Grafana auf alle CloudWatch Log Groups und Metriken zugreifen, für die ein Link erstellt wurde.

Dies kann auch über mehrere AWS-Organisationen hinweg verwendet werden, indem eine IAM-Rolle in der zusätzlichen AWS-Organisation erstellt und die kontenübergreifende Beobachtbarkeit von CloudWatch aktiviert wird.

Deployment der Lösung

1. Erstellen von CloudWatch kontoübergreifender Beobachtungsmöglichkeit Sink

Im Monitoring Account wird der CloudWatch Cross-Account Observability Sink mithilfe einer CloudFormation-Vorlage erstellt. Bei Bedarf können die oam:ResourceTypes erweitert werden; derzeit sind nur „AWS::CloudWatch::Metric“ und „AWS::Logs::LogGroup“ zugelassen.

yaml
Code kopiert!copy-button
AWSTemplateFormatVersion: '2010-09-09'
Description: Create a Sink and attach a Policy for CloudWatch cross-account observability

Parameters:
  PrincipalOrgID:
    Type: String
    Description: 'The AWS Organization ID for which the policy will allow access'

Resources:
  ObservabilitySink:
    Type: 'AWS::Oam::Sink'
    Properties:
      Name: 'observabilitySink'
      Policy:
        Version: '2012-10-17'
        Statement:
        - Effect: Allow
          Principal: "*"
          Resource: "*"
          Action:
          - "oam:CreateLink"
          - "oam:UpdateLink"
          Condition:
            StringEquals:
              aws:PrincipalOrgID: !Ref PrincipalOrgID
            ForAllValues:StringEquals:
              oam:ResourceTypes:
                - "AWS::CloudWatch::Metric"
                - "AWS::Logs::LogGroup"

Outputs:
  SinkIdentifier:
    Description: 'The Sink identifier of the created sink'
    Value: !GetAtt 
      - ObservabilitySink
      - Arn

2. Erstellen eines CloudWatch Cross-Account Observability Links

In allen Konten, in denen Grafana auf CloudWatch LogGroups und Metriken zugreifen muss, muss der CloudWatch Cross-Account Observability Link mit einer CloudFormation-Vorlage erstellt werden. Diese Vorlage kann einfach als StackSet auf alle gewünschten Konten ausgerollt werden.

yaml
Code kopiert!copy-button
AWSTemplateFormatVersion: 2010-09-09

Parameters:
  MonitoringAccountID:
    Type: String
    Description: AccountID from Monitoring Account

  SinkIdentifier:
    Type: String
    Description: SinkIdentifier for OAM-Link

Conditions:
  SkipMonitoringAccount: !Not
    - !Equals
      - !Ref AWS::AccountId
      - !Ref MonitoringAccountID

Resources:
  Link:
    Type: AWS::Oam::Link
    Condition: SkipMonitoringAccount
    Properties:
      LabelTemplate: "$AccountName"
      ResourceTypes: 
        - "AWS::CloudWatch::Metric"
        - "AWS::Logs::LogGroup"
      SinkIdentifier: !Ref SinkIdentifier

3. IAM-Rolle für Grafana erstellen

Im Monitoring Account muss die folgende IAM Role erstellt werden, die von Grafana mit der CloudWatchReadOnlyAccess-Policy übernommen werden kann.

yaml
Code kopiert!copy-button
AWSTemplateFormatVersion: 2010-09-09
Description: Set up an IAM Role for Grafana in the Monitoring Accounts so it can access CloudWatch Metrics and Log Groups

Parameters:
  MonitoringAccountID:
    Type: String
    Description: The AWS Account ID of the monitoring account (e.g., Grafana account)

Resources:
  CloudWatchGrafanaRole:
    Type: AWS::IAM::Role
    Properties: 
      RoleName: CloudWatchGrafanaRole
      AssumeRolePolicyDocument: 
        Version: '2012-10-17'
        Statement: 
          - Effect: 'Allow'
            Principal: 
              AWS: !Sub 'arn:aws:iam::${MonitoringAccountID}:root'
            Action: 'sts:AssumeRole'
            Condition: 
              StringEquals: 
                'sts:ExternalId': 'grafana'
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/CloudWatchReadOnlyAccess


4. AWS Managed Grafana erstellen

Im Monitoring Account kann nun Grafana erstellt werden. Es gibt verschiedene Optionen, die ausgewählt werden können, wie z. B. PluginAdminEnabled oder AuthenticationProviders. Nachfolgend finden Sie eine CloudFormation-Vorlage, die für die von mir beschriebene Lösung funktioniert und AWS Identity Center als Authentifizierungsanbieter verwendet.

Unter Resources -> AmazonGrafanaWorkspaceIAMRole -> Properties -> Policies -> PolicyDocument -> Statement -> Resource -> müssen alle ARNs der in Schritt 3 erstellten IAM-Rollen eingefügt werden.

yaml
Code kopiert!copy-button
AWSTemplateFormatVersion: '2010-09-09'
Description: CloudFormation template to create an Amazon Managed Grafana workspace for Monitoring

Resources:
  AmazonGrafanaWorkspaceIAMRole:
    Type: 'AWS::IAM::Role'
    Properties:
      ManagedPolicyArns:
        - 'arn:aws:iam::aws:policy/service-role/AmazonGrafanaCloudWatchAccess'
      AssumeRolePolicyDocument:
        Version: 2012-10-17
        Statement:
          - Effect: Allow
            Principal:
              Service:
                - grafana.amazonaws.com
            Action:
              - 'sts:AssumeRole'
      Policies:
        - PolicyName: AllowSTSforCloudWatch
          PolicyDocument:
            Version: 2012-10-17
            Statement:
              - Effect: Allow
                Action: 'sts:AssumeRole'
                Resource:
                  - 'arn:aws:iam::1234567890:role/CloudWatchGrafanaRole'

  GrafanaWorkspace:
    Type: AWS::Grafana::Workspace
    Properties: 
      AccountAccessType: CURRENT_ACCOUNT
      AuthenticationProviders: 
        - AWS_SSO
      DataSources: 
        - CLOUDWATCH
      Description: "Monitoring for all CloudWatch Log Groups and Metrics solution"
      Name: Monitoring-CloudWatch-Solution
      PermissionType: SERVICE_MANAGED
      PluginAdminEnabled: true
      GrafanaVersion: 10.4
      RoleArn: !GetAtt 
        - AmazonGrafanaWorkspaceIAMRole
        - Arn 


Hinweis: Die Schritte 1-3 müssen in jeder AWS-Organisation durchgeführt werden, die mit Grafana verknüpft werden soll!

Verwendung der Lösung

Sie können sich nun über den Amazon Managed Grafana Service als Administrator hinzufügen.

image-810a90cca1e3

Anschließend müssen Sie die Datenquellen verbinden. Dazu geben Sie einfach die IAM-Rollen der einzelnen AWS-Organisationen ein und klicken auf „ Save & Test“.

image-c74e06bb10e4

In diesem Fall habe ich zwei Datenquellen eingerichtet: eine für die Prod AWS Organization und eine für die Test AWS Organization.

image-05c6315896f9

Schließlich können Sie jetzt Dashboards nach Belieben erstellen und auf alle CloudWatch Log-Gruppen und Metriken von allen verbundenen Konten zugreifen.

image-101dc742fa9f

Kosten der Lösung

Die kontoübergreifende Beobachtbarkeit in CloudWatch ist ohne zusätzliche Kosten für Protokolle und Metriken möglich.

Der Amazon Managed Grafana Service wird auf der Grundlage aktiver Benutzer berechnet, was eine noch kostengünstigere Lösung darstellt. Und so funktioniert es:

  • Admin-/Editor-Benutzer: $9 USD pro aktivem Benutzer pro Monat
  • Viewer-Benutzer: $5 USD pro aktivem Benutzer pro Monat

Wichtig ist, dass die Abrechnung auf der Grundlage der aktiven Benutzer erfolgt, nicht auf der Grundlage der Gesamtzahl der Benutzer mit Zugang. Ein Beispiel:

Wenn Sie 100 Editoren und 100 Viewern Zugriff gewährt haben, sich aber in einem bestimmten Monat nur 20 Editoren und 30 Viewer tatsächlich in den Arbeitsbereich einloggen, werden Ihnen nur diese aktiven Benutzer in Rechnung gestellt: 20 Editoren und 30 Viewer.

Diese Lösung bietet Ihnen ein hervorragendes Preis-Leistungs-Verhältnis. Sie ermöglicht Ihnen die Überwachung mehrerer AWS-Organisationen von einem Ort aus zu niedrigen Kosten pro Benutzer. Sie ist besonders nützlich für Unternehmen mit vielen AWS-Konten, die alles auf einmal im Auge behalten müssen.

Fazit

Diese AWS Managed Grafana-Lösung für die Überwachung mehrerer AWS-Organisationen verdeutlicht die Leistungsfähigkeit von Cloud-nativen Tools bei der Vereinfachung komplexer Überwachungsaufgaben. Sie bietet einen zentralisierten, kostengünstigen und skalierbaren Ansatz für die Überwachung verschiedener AWS-Umgebungen.

Die wichtigsten Vorteile sind:

  • Vereinfachte Überwachung über mehrere AWS-Organisationen hinweg
  • Kosteneffizienz mit aktiver benutzerbasierter Preisgestaltung
  • Einfache Skalierbarkeit, wenn Ihre Infrastruktur wächst
  • Sichere Überwachung mit den integrierten Funktionen von AWS
  • Anpassbare Dashboards für spezifische Anforderungen

Ich hoffe, Sie fanden diesen Artikel hilfreich und informativ. Die Implementierung dieser Lösung kann Ihre AWS-Überwachungsfunktionen erheblich verbessern, aber wir wissen, dass jedes Unternehmen seine eigenen Bedürfnisse und Herausforderungen hat.

Wenn Sie Unterstützung bei der Einrichtung dieser Lösung benötigen, sie an Ihre spezifischen Anforderungen anpassen möchten oder Fragen zur AWS-Überwachung und -Verwaltung haben, zögern Sie bitte nicht, sich an unser Team bei PCG zu wenden.

Sehen Sie sich unsere AWS Landing Zone & Überwachung an!

Teilen Sie uns gerne Ihr Feedback und Ihre Gedanken zu diesem Thema mit!


Genutzte Services

Weiterlesen

Artikel
AWS Lambda: Vermeiden Sie diese Fallstricke

Ein großartiges Angebot, um schnell Ergebnisse zu erzielen, aber wie jedes gute Tool muss es richtig eingesetzt werden.

Mehr erfahren
Fallstudie
Finanzdienste
Cloud Migration
Die Cloud Journey der VHV Gruppe - Mit Strategie zum Erfolg

Wie meistert ein Versicherungskonzern mit über 4.000 Mitarbeitern den Spagat zwischen Compliance, Modernisierung und Kosteneffizienz?

Mehr erfahren
Fallstudie
Finanzdienste
DevOps
KYC – Archivsystem für die digitale Bank

Aufbau eines KYC-Cloud-Archivs für eine digitale Bank zur Speicherung von KYC-Kundendaten.

Mehr erfahren
Fallstudie
Software
DevOps
Mehr Tempo für die Buchhaltung

Was als Start-up im elterlichen Keller begann, hat sich innerhalb von wenigen Jahren zum führenden Anbieter cloudbasierter Buchhaltungs- und Finanzsoftware entwickelt: sevDesk.

Mehr erfahren
Alles sehen

Gemeinsam durchstarten

United Kingdom
Arrow Down