cloudalchemy.grafana

已废弃

该角色已被弃用,建议使用 grafana-ansible-collection 集合。

grafana logo

Ansible 角色: grafana

构建状态 许可证 Ansible 角色 GitHub 标签

grafana 提供分析和监控平台的配置和管理。

要求

  • Ansible >= 2.7(可能在早期版本上有效,但无法保证)
  • 部署主机上的 libselinux-python(仅当部署机器使用 SELinux 时)
  • grafana >= 5.1(对于旧版 grafana,请使用版本 0.10.1 或更早的版本)
  • 在部署机器上安装 jmespath。如果您在 Python 虚拟环境中使用 Ansible,请通过 pip 将 jmespath 安装到相同的虚拟环境中。

角色变量

所有可以被重写的变量存储在 defaults/main.yml 文件中,下面的表格也包含这些变量。

名称 默认值 描述
grafana_use_provisioning true 在可能的情况下使用 Grafana 的配置功能(grafana_version=latest 将假设 >= 5.0)。
grafana_provisioning_synced false 确保没有不再引用的先前配置仪表板被保留。
grafana_version latest Grafana 包版本
grafana_yum_repo_template etc/yum.repos.d/grafana.repo.j2 使用的 Yum 模板
grafana_manage_repo true 管理软件包仓库(或不管理)
grafana_instance {{ ansible_fqdn | default(ansible_host) | default(inventory_hostname) }} Grafana 实例名称
grafana_logs_dir /var/log/grafana 日志目录路径
grafana_data_dir /var/lib/grafana 数据库目录路径
grafana_address 0.0.0.0 Grafana 监听的地址
grafana_port 3000 Grafana 监听的端口
grafana_cap_net_bind_service false 允许在不使用 root 权限的情况下使用低于 1024 的端口,利用 Linux 内核的“能力”。阅读: http://man7.org/linux/man-pages/man7/capabilities.7.html
grafana_url "http://{{ grafana_address }}:{{ grafana_port }}" 用于从网页浏览器访问 Grafana 的完整 URL
grafana_api_url "{{ grafana_url }}" 用于配置中 API 调用的 URL,如需与公共 URL 不同。查看 此问题
grafana_domain "{{ ansible_fqdn | default(ansible_host) | default('localhost') }}" 该设置仅用作 root_url 选项的一部分。在使用 GitHub 或 Google OAuth 时很有用
grafana_server { protocol: http, enforce_domain: false, socket: "", cert_key: "", cert_file: "", enable_gzip: false, static_root_path: public, router_logging: false } server 配置部分
grafana_security { admin_user: admin, admin_password: "" } security 配置部分
grafana_database { type: sqlite3 } database 配置部分
grafana_welcome_email_on_sign_up false 注册后发送欢迎邮件
grafana_users { allow_sign_up: false, auto_assign_org_role: Viewer, default_theme: dark } users 配置部分
grafana_auth {} authorized 配置部分
grafana_ldap {} ldap 配置部分。group_mappings 已扩展,示例请参见 defaults
grafana_session {} session 管理配置部分
grafana_analytics {} Google analytics 配置部分
grafana_smtp {} smtp 配置部分
grafana_alerting {} alerting 配置部分
grafana_log {} log 配置部分
grafana_metrics {} metrics 配置部分
grafana_tracing {} tracing 配置部分
grafana_snapshots {} snapshots 配置部分
grafana_image_storage {} image storage 配置部分
grafana_dashboards [] 应导入的仪表板列表
grafana_dashboards_dir "dashboards" 包含仪表板文件的本地目录路径,文件格式为 json
grafana_datasources [] 应配置的数据源列表
grafana_environment {} Grafana 安装的可选环境参数,例如设置 http_proxy
grafana_plugins [] 应安装的 Grafana 插件列表
grafana_alert_notifications [] 要创建、更新或删除的警报通知通道列表

数据源示例:

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

仪表板示例:

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

警报通知通道示例:

注意:设置变量 grafana_alert_notifications 只有在 grafana_use_provisioningtrue 时才会生效。这意味着需要使用从 Grafana v5.0 开始提供的新配置系统及其配置文件。

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

使用自定义的 Grafana Yum 仓库模板示例:

  • 将您的模板放在播放剧本旁边的 templates 文件夹中

  • 使用不同于默认路径的路径,因为 Ansible 在使用相对路径时,首先查找在角色目录中的模板,然后在播放剧本目录中查找第一个找到的模板。

  • 模板展开将被放置在 /etc/yum.repos.d/ 下,名称将为模板路径的 basename,不带 .j2 扩展名。

示例:

grafana_yum_repo_template: my_yum_repos/grafana.repo.j2

# [playbook_dir]/templates/my_yum_repos/grafana.repo.j2
# 将被放置在
# /etc/yum.repos.d/grafana.repo
# 在远程主机上

支持的 CPU 架构

历史上,软件包是根据 CPU 架构从不同渠道获取的。具体来说,armv6/armv7 和 aarch64/arm64 软件包来自 fg2it 分发的非官方软件包。现在 Grafana 发布官方的 ARM 构建,所以所有软件包均来自官方 Debian/UbuntuRPM 包。

示例

播放剧本

在管理员密码字段中填写您选择的密码,Grafana 网页在首次登录时不会要求更改。

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

演示网站

我们提供基于 Prometheus 和 Grafana 的完整监控解决方案的演示网站。代码仓库和运行实例的链接可以在 GitHub 上获得,该网站托管在 DigitalOcean 上。

本地测试

本地测试该角色的首选方式是使用 Docker 和 molecule (v2.x)。您需要在系统上安装 Docker。关于适合您系统的 Docker 包,请查看“入门”部分。 我们使用 tox 简化在多个 ansible 版本上的测试过程。要安装 tox,请执行:

pip3 install tox

在所有 ansible 版本上运行测试(警告:这可能需要一些时间)

tox

在自定义环境中运行仅包含默认测试场景的自定义 molecule 命令:

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

有关 molecule 的更多信息,请访问其 文档

如果您希望在远程 Docker 主机上运行测试,只需在运行 tox 测试之前指定 DOCKER_HOST 变量。

Travis CI

将 molecule 和 travis CI 结合使用,可以测试新 PR 在多个 ansible 版本和多个操作系统上的表现。这也使我们能够为不同的角色配置创建测试场景。因此,我们有一个相当大的测试矩阵,这将比本地测试需要更长的时间,所以请耐心等待。

贡献

请参阅 贡献指南

故障排查

请参阅 故障排查

许可证

该项目根据 MIT 许可证发布。有关更多详细信息,请参阅 许可证

关于项目

Grafana - platform for analytics and monitoring

安装
ansible-galaxy install cloudalchemy.grafana
许可证
mit
下载
1.9M
拥有者
Setup your monitoring stack with ansible