cloudalchemy.grafana

VERALTET

Diese Rolle wurde zugunsten der grafana-ansible-collection Sammlung veraltet.

grafana logo

Ansible Rolle: grafana

Build-Status Lizenz Ansible Rolle GitHub Tag

Bereitstellung und Verwaltung von grafana - Plattform für Analysen und Monitoring

Anforderungen

  • Ansible >= 2.7 (Es könnte mit früheren Versionen funktionieren, aber wir können das nicht garantieren)
  • libselinux-python auf dem Bereitstellungs-Host (nur wenn die Bereitstellungsmaschine SELinux hat)
  • grafana >= 5.1 (für ältere grafana-Versionen verwenden Sie diese Rolle in Version 0.10.1 oder früher)
  • jmespath auf der Bereitstellungsmaschine. Wenn Sie Ansible aus einer Python-Virtualenv verwenden, installieren Sie jmespath in derselben Virtualenv über pip.

Rollenvariablen

Alle überschreibbaren Variablen sind in der Datei defaults/main.yml sowie in der folgenden Tabelle gespeichert.

Name Standardwert Beschreibung
grafana_use_provisioning true Nutzung der Grafana-Provisionierungsfunktion sofern möglich (grafana_version=latest geht von >= 5.0 aus).
grafana_provisioning_synced false Sicherstellen, dass keine zuvor bereitgestellten Dashboards behalten werden, wenn sie nicht mehr referenziert werden.
grafana_version latest Grafana-Paketversion
grafana_yum_repo_template etc/yum.repos.d/grafana.repo.j2 Yum-Vorlage für Verwendung
grafana_manage_repo true Verwaltung des Paket-Repos (oder nicht)
grafana_instance {{ ansible_fqdn | default(ansible_host) | default(inventory_hostname) }} Name der Grafana-Instanz
grafana_logs_dir /var/log/grafana Pfad zum Log-Verzeichnis
grafana_data_dir /var/lib/grafana Pfad zum Datenbankverzeichnis
grafana_address 0.0.0.0 Adresse, an der Grafana lauscht
grafana_port 3000 Port, an dem Grafana lauscht
grafana_cap_net_bind_service false Ermöglicht die Nutzung von Ports unter 1024 ohne Root-Rechte, indem die 'Capabilities' des Linux-Kernels genutzt werden. Lesen Sie: http://man7.org/linux/man-pages/man7/capabilities.7.html
grafana_url "http://{{ grafana_address }}:{{ grafana_port }}" Vollständige URL, die verwendet wird, um Grafana über einen Webbrowser zuzugreifen
grafana_api_url "{{ grafana_url }}" URL, die für API-Aufrufe in der Bereitstellung verwendet wird, falls sie sich von der öffentlichen URL unterscheidet. Siehe dieses Problem.
grafana_domain "{{ ansible_fqdn | default(ansible_host) | default('localhost') }}" Einstellung wird nur als Teil der Option root_url verwendet. Nützlich, wenn GitHub oder Google OAuth verwendet wird
grafana_server { protocol: http, enforce_domain: false, socket: "", cert_key: "", cert_file: "", enable_gzip: false, static_root_path: public, router_logging: false } Server Konfigurationsabschnitt
grafana_security { admin_user: admin, admin_password: "" } Sicherheits Konfigurationsabschnitt
grafana_database { type: sqlite3 } Datenbanken Konfigurationsabschnitt
grafana_welcome_email_on_sign_up false Senden Sie eine Willkommens-E-Mail nach der Anmeldung
grafana_users { allow_sign_up: false, auto_assign_org_role: Viewer, default_theme: dark } Benutzer Konfigurationsabschnitt
grafana_auth {} Autorisierung Konfigurationsabschnitt
grafana_ldap {} LDAP Konfigurationsabschnitt. gruppen_mappings werden erweitert, siehe Standardeinstellungen für ein Beispiel
grafana_session {} Sitzungs Management-Konfigurationsabschnitt
grafana_analytics {} Google Analytics Konfigurationsabschnitt
grafana_smtp {} SMTP Konfigurationsabschnitt
grafana_alerting {} Alarmierung Konfigurationsabschnitt
grafana_log {} Log Konfigurationsabschnitt
grafana_metrics {} Metriken Konfigurationsabschnitt
grafana_tracing {} Tracing Konfigurationsabschnitt
grafana_snapshots {} Snapshots Konfigurationsabschnitt
grafana_image_storage {} Bildspeicher Konfigurationsabschnitt
grafana_dashboards [] Liste der Dashboards, die importiert werden sollen
grafana_dashboards_dir "dashboards" Pfad zu einem lokalen Verzeichnis mit Dashboard-Dateien im json-Format
grafana_datasources [] Liste der Datenquellen, die konfiguriert werden sollen
grafana_environment {} Optionale Umgebungsparameter für die Grafana-Installation, z.B. für die Einstellung von http_proxy
grafana_plugins [] Liste der Grafana-Plugins, die installiert werden sollen
grafana_alert_notifications [] Liste der zu erstellenden, zu aktualisierenden oder zu löschenden Alert-Benachrichtigungskanäle

Beispiel für Datenquelle:

grafana_datasources:
  - name: prometheus
    type: prometheus
    access: proxy
    url: 'http://{{ prometheus_web_listen_address }}'
    basicAuth: false

Beispiel für Dashboard:

grafana_dashboards:
  - dashboard_id: 111
    revision_id: 1
    datasource: prometheus

Beispiel für einen Alarmbenachrichtigungskanal:

HINWEIS: Die Einstellung der Variable grafana_alert_notifications tritt nur in Kraft, wenn grafana_use_provisioning auf true gesetzt ist. Das bedeutet, dass das neue Bereitstellungssystem, das ab Grafana v5.0 verfügbar ist und Konfigurationsdateien verwendet, genutzt werden muss.

grafana_alert_notifications:
  notifiers:
    - name: Kanal 1
      type: email
      uid: channel1
      is_default: false
      send_reminder: false
      settings:
        addresses: "[email protected]"
        autoResolve: true
  delete_notifiers:
    - name: Kanal 2
      uid: channel2

Beispiel für die Verwendung einer benutzerdefinierten Grafana Yum-Repo-Vorlage:

  • Legen Sie Ihre Vorlage neben Ihrem Playbook im templates-Ordner ab.

  • Verwenden Sie einen anderen Pfad als den Standardpfad, da Ansible, wenn Sie einen relativen Pfad verwenden, die erste gefundene Vorlage verwendet und zuerst im Rollendirectory und dann im Playbookverzeichnis sucht.

  • Die Vorlagenexpansion wird unter /etc/yum.repos.d/ platziert und hat als Namen den basename des Vorlagenpfads ohne die .j2.

    Beispiel:

    grafana_yum_repo_template: my_yum_repos/grafana.repo.j2
    
    # [playbook_dir]/templates/my_yum_repos/grafana.repo.j2
    # wird unter
    # /etc/yum.repos.d/grafana.repo
    # auf dem Remote-Host abgelegt
    

Unterstützte CPU-Architekturen

Historisch wurden Pakete je nach CPU-Architektur aus verschiedenen Kanälen bezogen. Insbesondere wurden armv6/armv7 und aarch64/arm64 Pakete über inoffizielle Pakete, die von fg2it verteilt wurden bereitgestellt. Jetzt, da Grafana offizielle ARM-Bauten veröffentlicht, werden alle Pakete von den offiziellen Debian/Ubuntu oder RPM Paketen bezogen.

Beispiel

Playbook

Füllen Sie das Feld für das Admin-Passwort mit Ihrer Wahl, die Grafana-Webseite wird beim ersten Login nicht fragen, es zu ändern.

- hosts: all
  roles:
    - role: cloudalchemy.grafana
      vars:
        grafana_security:
          admin_user: admin
          admin_password: geben_sie_ihre_sichere_passwort_ein

Demo-Seite

Wir stellen eine Demoseite für die vollständige Überwachungslösung basierend auf Prometheus und Grafana bereit. Das Repository mit dem Code und Links zu den laufenden Instanzen ist auf GitHub verfügbar und die Seite wird auf DigitalOcean gehostet.

Lokale Tests

Der bevorzugte Weg, die Rolle lokal zu testen, ist die Verwendung von Docker und molecule (v2.x). Sie müssen Docker auf Ihrem System installieren. Siehe "Erste Schritte" für ein passendes Docker-Paket für Ihr System. Wir verwenden tox, um den Prozess des Testens mit mehreren Ansible-Versionen zu vereinfachen. Um tox zu installieren, führen Sie aus:

pip3 install tox

Um Tests mit allen Ansible-Versionen auszuführen (WARNUNG: das kann einige Zeit in Anspruch nehmen)

tox

Um einen benutzerdefinierten Molecule-Befehl in einer benutzerdefinierten Umgebung mit nur dem Standard-Test-Szenario auszuführen:

tox -e py35-ansible28 -- molecule test -s default

Für weitere Informationen über Molecule besuchen Sie deren Dokumentation.

Wenn Sie Tests auf einem Remote-Docker-Host ausführen möchten, geben Sie einfach die Variable DOCKER_HOST an, bevor Sie die Tox-Tests ausführen.

Travis CI

Die Kombination von Molecule und Travis CI ermöglicht es uns zu testen, wie neue PRs sich bei der Verwendung mit mehreren Ansible-Versionen und mehreren Betriebssystemen verhalten. Dies ermöglicht uns auch, Testszenarien für verschiedene Rollen-Konfigurationen zu erstellen. Infolgedessen haben wir eine ziemlich große Testmatrix, die länger dauert als lokale Tests, also haben Sie bitte Geduld.

Mitwirken

Siehe Beitragsrichtlinien.

Fehlersuche

Siehe Fehlersuche.

Lizenz

Dieses Projekt steht unter der MIT-Lizenz. Siehe LICENSE für weitere Details.

Über das Projekt

Grafana - platform for analytics and monitoring

Installieren
ansible-galaxy install cloudalchemy.grafana
Lizenz
mit
Downloads
1.9M
Besitzer
Setup your monitoring stack with ansible