cloudalchemy.grafana

DEPRECATED

Este rol ha sido desaprobado en favor de la colección grafana-ansible-collection.

logo de grafana

Rol de Ansible: grafana

Estado de construcción Licencia Rol de Ansible Etiqueta de GitHub

Provisión y gestión de grafana - plataforma para análisis y monitoreo.

Requisitos

  • Ansible >= 2.7 (puede funcionar en versiones anteriores, pero no podemos garantizarlo).
  • libselinux-python en el host de despliegue (solo si la máquina de despliegue tiene SELinux).
  • grafana >= 5.1 (para versiones antiguas de grafana, usa este rol en la versión 0.10.1 o anterior).
  • jmespath en la máquina de despliegue. Si usas Ansible desde un virtualenv de Python, instala jmespath en el mismo virtualenv a través de pip.

Variables del Rol

Todas las variables que se pueden sobrescribir están almacenadas en el archivo defaults/main.yml así como en la tabla a continuación.

Nombre Valor Por Defecto Descripción
grafana_use_provisioning true Utiliza la capacidad de aprovisionamiento de Grafana cuando sea posible (grafana_version=latest asumirá >= 5.0).
grafana_provisioning_synced false Asegura que no se mantengan tableros previamente aprovisionados si ya no se hacen referencia a ellos.
grafana_version latest Versión del paquete de Grafana
grafana_yum_repo_template etc/yum.repos.d/grafana.repo.j2 Plantilla Yum a utilizar
grafana_manage_repo true Gestionar el repositorio de paquetes (o no)
grafana_instance {{ ansible_fqdn | default(ansible_host) | default(inventory_hostname) }} Nombre de la instancia de Grafana
grafana_logs_dir /var/log/grafana Ruta al directorio de registros
grafana_data_dir /var/lib/grafana Ruta al directorio de la base de datos
grafana_address 0.0.0.0 Dirección en la que Grafana escucha
grafana_port 3000 Puerto en el que Grafana escucha
grafana_cap_net_bind_service false Permite el uso de puertos por debajo de 1024 sin privilegios de root aprovechando las 'capacidades' del núcleo de linux. Lee: http://man7.org/linux/man-pages/man7/capabilities.7.html
grafana_url "http://{{ grafana_address }}:{{ grafana_port }}" URL completa utilizada para acceder a Grafana desde un navegador web
grafana_api_url "{{ grafana_url }}" URL utilizada para llamadas API en aprovisionamiento si es diferente de la URL pública. Ver este problema.
grafana_domain "{{ ansible_fqdn | default(ansible_host) | default('localhost') }}" Esta configuración solo se utiliza como parte de la opción root_url. Útil cuando se usa OAuth de GitHub o Google
grafana_server { protocol: http, enforce_domain: false, socket: "", cert_key: "", cert_file: "", enable_gzip: false, static_root_path: public, router_logging: false } Sección de configuración del servidor
grafana_security { admin_user: admin, admin_password: "" } Sección de configuración de seguridad
grafana_database { type: sqlite3 } Sección de configuración de base de datos
grafana_welcome_email_on_sign_up false Enviar correo de bienvenida después de registrarse
grafana_users { allow_sign_up: false, auto_assign_org_role: Viewer, default_theme: dark } Sección de configuración de usuarios
grafana_auth {} Sección de configuración de autorización
grafana_ldap {} Sección de configuración de ldap. Mapeos de grupos están expandidos, ver por defecto para ejemplo
grafana_session {} Sección de configuración de gestión de sesiones
grafana_analytics {} Sección de configuración de Google analytics
grafana_smtp {} Sección de configuración de smtp
grafana_alerting {} Sección de configuración de alertas
grafana_log {} Sección de configuración de registros
grafana_metrics {} Sección de configuración de métricas
grafana_tracing {} Sección de configuración de trazado
grafana_snapshots {} Sección de configuración de instantáneas
grafana_image_storage {} Sección de configuración de almacenamiento de imágenes
grafana_dashboards [] Lista de tableros que deben ser importados
grafana_dashboards_dir "dashboards" Ruta a un directorio local que contiene archivos de tableros en formato json
grafana_datasources [] Lista de fuentes de datos que deben ser configuradas
grafana_environment {} Parámetro opcional del entorno para la instalación de Grafana, útil por ejemplo para configurar http_proxy
grafana_plugins [] Lista de plugins de Grafana que deben ser instalados
grafana_alert_notifications [] Lista de canales de notificación de alertas que deben ser creados, actualizados o eliminados

Ejemplo de fuente de datos:

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

Ejemplo de tablero:

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

Ejemplo de canal de notificación de alerta:

NOTA: establecer la variable grafana_alert_notifications solo surtirá efecto cuando grafana_use_provisioning sea true. Eso significa que el nuevo sistema de aprovisionamiento usando archivos de configuración, que está disponible a partir de Grafana v5.0, necesita estar en uso.

grafana_alert_notifications:
  notifiers:
    - name: Canal 1
      type: email
      uid: canal1
      is_default: false
      send_reminder: false
      settings:
        addresses: "[email protected]"
        autoResolve: true
  delete_notifiers:
    - name: Canal 2
      uid: canal2

Usar una plantilla de repositorio Yum personalizada de Grafana:

  • Coloca tu plantilla junto a tu playbook en la carpeta templates.

  • Usa una ruta diferente a la predeterminada, porque ansible, al usar rutas relativas, busca la primera plantilla encontrada y mira primero bajo el directorio del rol y luego el del playbook.

  • La expansión de la plantilla se pondrá bajo /etc/yum.repos.d/, y tendrá como nombre el basename de la ruta de la plantilla sin el .j2

    Ejemplo:

    grafana_yum_repo_template: my_yum_repos/grafana.repo.j2
    
    # [playbook_dir]/templates/my_yum_repos/grafana.repo.j2
    # se pondrá en
    # /etc/yum.repos.d/grafana.repo
    # en el host remoto
    

Arquitecturas de CPU Soportadas

Históricamente, los paquetes se tomaron de diferentes canales según la arquitectura de CPU. Específicamente, los paquetes armv6/armv7 y aarch64/arm64 eran a través de paquetes no oficiales distribuidos por fg2it. Ahora que Grafana publica construcciones oficiales para ARM, todos los paquetes se toman de los oficiales Debian/Ubuntu o paquetes RPM.

Ejemplo

Playbook

Rellena el campo de la contraseña del administrador con tu elección, la página web de Grafana no pedirá que la cambies en el primer inicio de sesión.

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

Sitio de demostración

Proporcionamos un sitio de demostración para una solución completa de monitoreo basada en Prometheus y Grafana. El repositorio con el código y los enlaces a las instancias en funcionamiento está disponible en github y el sitio está alojado en DigitalOcean.

Pruebas Locales

La forma preferida de probar el rol localmente es usar Docker y molecule (v2.x). Necesitarás instalar Docker en tu sistema. Consulta "Comenzar" para un paquete de Docker adecuado para tu sistema. Utilizamos tox para simplificar el proceso de pruebas en múltiples versiones de Ansible. Para instalar tox ejecuta:

pip3 install tox

Para ejecutar pruebas en todas las versiones de Ansible (ADVERTENCIA: esto puede tardar un tiempo):

tox

Para ejecutar un comando de molécula personalizado en un entorno personalizado solo con el escenario de prueba por defecto:

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

Para más información sobre molécula, visita su documentación.

Si deseas ejecutar pruebas en un host remoto de Docker, solo especifica la variable DOCKER_HOST antes de ejecutar las pruebas de tox.

Travis CI

Combinar molécula y Travis CI nos permite probar cómo se comportarán las nuevas PRs cuando se usen con múltiples versiones de Ansible y múltiples sistemas operativos. Esto también nos permite crear escenarios de prueba para diferentes configuraciones del rol. Como resultado, tenemos una matriz de pruebas bastante grande que tomará más tiempo que las pruebas locales, así que, por favor, ten paciencia.

Contribuyendo

Consulta la guía para contribuidores.

Solución de Problemas

Consulta la solución de problemas.

Licencia

Este proyecto está licenciado bajo la Licencia MIT. Consulta LICENSE para más detalles.

Acerca del proyecto

Grafana - platform for analytics and monitoring

Instalar
ansible-galaxy install cloudalchemy.grafana
Licencia
mit
Descargas
1.9M
Propietario
Setup your monitoring stack with ansible