cloudalchemy.grafana
VERALTET
Diese Rolle wurde zugunsten der grafana-ansible-collection Sammlung veraltet.
Ansible Rolle: grafana
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 denbasename
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.
Grafana - platform for analytics and monitoring
ansible-galaxy install cloudalchemy.grafana