cloudalchemy.grafana

DÉPRÉCIÉ

Ce rôle a été déprécié au profit de la collection grafana-ansible-collection.

logo grafana

Rôle Ansible : grafana

État de la construction Licence Rôle Ansible Tag GitHub

Provisionner et gérer grafana - plateforme pour l'analyse et la surveillance

Exigences

  • Ansible >= 2.7 (Il peut fonctionner sur des versions antérieures, mais nous ne pouvons pas le garantir)
  • libselinux-python sur l'hôte de déploiement (uniquement lorsque la machine de déploiement a SELinux)
  • grafana >= 5.1 (pour les anciennes versions de grafana, utilisez ce rôle dans la version 0.10.1 ou antérieure)
  • jmespath sur la machine de déploiement. Si vous utilisez Ansible depuis un environnement virtuel Python, installez jmespath dans le même environnement via pip.

Variables du rôle

Toutes les variables qui peuvent être remplacées sont stockées dans le fichier defaults/main.yml ainsi que dans le tableau ci-dessous.

Nom Valeur par défaut Description
grafana_use_provisioning true Utiliser la capacité de provisionnement de Grafana lorsque possible (grafana_version=latest supposera >= 5.0).
grafana_provisioning_synced false S'assurer qu'aucun tableau de bord précédemment provisionné n'est conservé s'il n'est plus référencé.
grafana_version latest Version du paquet Grafana
grafana_yum_repo_template etc/yum.repos.d/grafana.repo.j2 Modèle Yum à utiliser
grafana_manage_repo true Gérer le dépôt de paquets (ou ne pas le faire)
grafana_instance {{ ansible_fqdn default(ansible_host)
grafana_logs_dir /var/log/grafana Chemin vers le répertoire des logs
grafana_data_dir /var/lib/grafana Chemin vers le répertoire de base de données
grafana_address 0.0.0.0 Adresse sur laquelle Grafana écoute
grafana_port 3000 Port sur lequel Grafana écoute
grafana_cap_net_bind_service false Permet l'utilisation de ports inférieurs à 1024 sans privilèges root en utilisant les "capabilities" du noyau Linux. lisez : http://man7.org/linux/man-pages/man7/capabilities.7.html
grafana_url "http://{{ grafana_address }}:{{ grafana_port }}" URL complète utilisée pour accéder à Grafana depuis un navigateur web
grafana_api_url "{{ grafana_url }}" URL utilisée pour les appels API en provisionnement si différente de l'URL publique. Voir ce problème.
grafana_domain "{{ ansible_fqdn default(ansible_host)
grafana_server { protocol: http, enforce_domain: false, socket: "", cert_key: "", cert_file: "", enable_gzip: false, static_root_path: public, router_logging: false } Section de configuration serveur
grafana_security { admin_user: admin, admin_password: "" } Section de configuration sécurité
grafana_database { type: sqlite3 } Section de configuration base de données
grafana_welcome_email_on_sign_up false Envoyer un e-mail de bienvenue après l'inscription
grafana_users { allow_sign_up: false, auto_assign_org_role: Viewer, default_theme: dark } Section de configuration utilisateurs
grafana_auth {} Section de configuration autorisation
grafana_ldap {} Section de configuration ldap. group_mappings sont élargis, voir les valeurs par défaut pour un exemple
grafana_session {} Section de gestion de configuration session
grafana_analytics {} Section de configuration Google analytics
grafana_smtp {} Section de configuration smtp
grafana_alerting {} Section de configuration alerte
grafana_log {} Section de configuration journal
grafana_metrics {} Section de configuration métriques
grafana_tracing {} Section de configuration tracage
grafana_snapshots {} Section de configuration instantanés
grafana_image_storage {} Section de configuration stockage d'images
grafana_dashboards [] Liste des tableaux de bord qui doivent être importés
grafana_dashboards_dir "dashboards" Chemin vers un répertoire local contenant des fichiers de tableaux de bord au format json
grafana_datasources [] Liste des sources de données qui doivent être configurées
grafana_environment {} Paramètre d'environnement optionnel pour l'installation de Grafana, utile par exemple pour définir http_proxy
grafana_plugins [] Liste des plugins Grafana qui doivent être installés
grafana_alert_notifications [] Liste des canaux de notification d'alerte à créer, mettre à jour ou supprimer

Exemple de source de données :

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

Exemple de tableau de bord :

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

Exemple de canal de notification d'alerte :

REMARQUE : la définition de la variable grafana_alert_notifications ne prendra effet que lorsque grafana_use_provisioning est true. Cela signifie que le nouveau système de provisionnement utilisant des fichiers de configuration, disponible à partir de Grafana v5.0, doit être en usage.

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

Utiliser un modèle Yum Grafana personnalisé exemple :

  • Placez votre modèle à côté de votre playbook sous le dossier templates

  • Utilisez un chemin différent de celui par défaut, car Ansible, lorsqu'il utilise un chemin relatif, utilise le premier modèle trouvé et regarde d'abord sous le répertoire de rôle, puis sous le répertoire du playbook.

  • L'expansion du modèle sera placée sous /etc/yum.repos.d/, et aura comme nom le basename du chemin du modèle sans le .j2

    Exemple :

    grafana_yum_repo_template: my_yum_repos/grafana.repo.j2
    
    # [playbook_dir]/templates/my_yum_repos/grafana.repo.j2
    # sera placé sous
    # /etc/yum.repos.d/grafana.repo
    # sur l'hôte distant
    

Architectures CPU supportées

Historiquement, les paquets étaient pris dans différents canaux en fonction de l'architecture CPU. En particulier, les paquets armv6/armv7 et aarch64/arm64 étaient via des paquets non officiels distribués par fg2it. Maintenant que Grafana publie des versions officielles ARM, tous les paquets sont pris des paquets officiels Debian/Ubuntu ou RPM.

Exemple

Playbook

Remplissez le champ du mot de passe administrateur avec votre choix, la page Web de Grafana ne demandera pas de le changer lors de la première connexion.

- hosts: all
  roles:
    - role: cloudalchemy.grafana
      vars:
        grafana_security:
          admin_user: admin
          admin_password: entrez_votre_mot_de_passe_sécurisé

Site de démonstration

Nous fournissons un site de démonstration pour une solution de surveillance complète basée sur Prometheus et Grafana. Le dépôt avec le code et des liens vers des instances en cours d'exécution est disponible sur GitHub et le site est hébergé sur DigitalOcean.

Test local

La meilleure façon de tester localement le rôle est d'utiliser Docker et molecule (v2.x). Vous devrez installer Docker sur votre système. Voir "Commencer" pour un paquet Docker adapté à votre système. Nous utilisons tox pour simplifier le processus de test sur plusieurs versions d'Ansible. Pour installer tox, exécutez :

pip3 install tox

Pour exécuter des tests sur toutes les versions d'Ansible (AVERTISSEMENT : cela peut prendre un certain temps)

tox

Pour exécuter une commande molecule personnalisée sur un environnement personnalisé avec seulement le scénario de test par défaut :

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

Pour plus d'informations sur molecule, consultez leur documentation.

Si vous souhaitez exécuter des tests sur un hôte docker distant, spécifiez simplement la variable DOCKER_HOST avant d'exécuter les tests tox.

Travis CI

Combiner molecule et travis CI nous permet de tester comment de nouvelles PR se comporteront lorsqu'elles seront utilisées avec plusieurs versions d'Ansible et plusieurs systèmes d'exploitation. Cela nous permet également de créer des scénarios de test pour différentes configurations de rôles. En conséquence, nous avons une matrice de tests assez importante qui prendra plus de temps que les tests locaux, alors please soyez patient.

Contribuer

Voir les directives pour les contributeurs.

Dépannage

Voir dépannage.

Licence

Ce projet est sous licence MIT. Voir LICENSE pour plus de détails.

À propos du projet

Grafana - platform for analytics and monitoring

Installer
ansible-galaxy install cloudalchemy.grafana
Licence
mit
Téléchargements
1.9M
Propriétaire
Setup your monitoring stack with ansible