cloudalchemy.grafana
DEPRECATED
Este rol ha sido desaprobado en favor de la colección grafana-ansible-collection.
Rol de Ansible: grafana
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 elbasename
de la ruta de la plantilla sin el .j2Ejemplo:
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.
Grafana - platform for analytics and monitoring
ansible-galaxy install cloudalchemy.grafana