cloudalchemy.grafana
已废弃
该角色已被弃用,建议使用 grafana-ansible-collection 集合。
Ansible 角色: grafana
为 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_provisioning
为 true
时才会生效。这意味着需要使用从 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/Ubuntu 或 RPM 包。
示例
播放剧本
在管理员密码字段中填写您选择的密码,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