ipr-cnrs.netdata

Netdata

  1. 概述
  2. 角色变量
  3. 示例剧本
  4. 配置
  5. 开发
  6. 许可
  7. 作者信息

概述

一个用于管理 Netdata 安装和配置的角色。

角色变量

  • netdata__base_packages : 提供 Netdata 所需的基本软件包列表 [默认 : netdata].
  • netdata__install_recommends : 是否安装推荐的软件包 [默认 : True].
  • netdata__deploy_state : 这个角色期望达到的状态 [默认 : present].
  • netdata__group_name : 包含此特定组配置文件的目录名称 [默认 : nonexistent-host-group].
  • netdata__default_etc_src : 此角色中包含 Netdata 配置文件的目录 [默认 : ../templates/etc/netdata].
  • netdata__etc_src : 应在所有主机上管理的配置文件目录 [默认 : ../templates/etc/netdata].
  • netdata__group_etc_src : 应由特定 Ansible 清单组管理的 Netdata 配置文件目录 [默认 : {{ (inventory_dir | realpath + "/../resources/") + "files/by-group/" + netdata__group_name + "/etc/netdata" }}].
  • netdata__host_etc_src : 应在特定主机上管理的 Netdata 配置文件目录 [默认 : {{ (inventory_dir | realpath + "/../resources/") + "files/by-host/" + inventory_hostname + "/etc/netdata" }}].
  • netdata__service_name : 要管理的服务名称 [默认 : netdata].
  • netdata__service_manage : 是否管理 Netdata 服务 [默认 : True].
  • netdata__conf_bind_ip : Netdata 监听所用的 IP 地址 [默认 : 127.0.0.1].
  • netdata__conf_bind_port : Netdata 监听所用的端口 [默认 : 19999].
  • netdata__conf_memory_mode : 数据库的内存模式 [默认 : ram].
  • netdata__conf_recipient_email : 如果角色未定义,则使用的默认电子邮件接收者 [默认 : root].
  • netdata__registry_enable : 节点是否应该成为注册表 [默认 : False].
  • netdata__registry_announce : 注册表的 URL [默认 : ''].
  • netdata__registry_hostname : 在注册表上显示的服务器名称(最多50个字符) [默认 : {{ ansible_hostname }}].
  • netdata__slave_enable : 节点是否应该向母体发送指标 [默认 : False].
  • netdata__slave_destination : 发送指标的目标 [默认 : netdata.{{ ansible_domain }}].
  • netdata__slave_api_key : 用于识别母体的 API 密钥 [默认 : ''].
  • netdata__slave_buffer_size : 用于发送指标的缓冲区 [默认 : ``].
  • netdata__slave_reconnect : 如果连接失败或断开,重新连接的时间(秒) [默认 : 5].
  • netdata__master_enable : 节点是否应该接收来自其他节点的指标 [默认 : False].
  • netdata__master_api_key : 用于验证从属节点的 API 密钥 [默认 : ''].
  • netdata__master_history : 每个主机在数据库中的条目数量 [默认 : 3600].
  • netdata__master_memory_mode : 使用此 API 密钥的所有主机所用的内存模式 [默认 : ram].
  • netdata__master_health_alarm : 母体是否应为使用此 API 密钥的主机发送警报 [默认 : auto].

示例剧本

  • 使用默认变量:
- hosts: mynode.DOMAIN
  roles:
    - role: ipr-cnrs.netdata
      tags: ['role::netdata', 'ipr']
  • 使用您自己的 Netdata 配置作为源:
    • 确保您有资源目录,其中只包含模板或子目录,例如:
inventory
├── group_vars
│   ├── all
│   │   ├── ….yml
│   │   └── netdata.yml
│   └── …
resources
├── files
│   ├── by-group
│   │   └── all
│   │   │   ├── etc
│   │   │   │   ├── netdata
│   │   │   │   │   ├── health.d
│   │   │   │   │   │   └── ram.conf.j2
│   │   │   │   │   ├── plugins.d
│   │   │   │   │   │   └── python.d.plugin
│   │   │   │   │   └── python.d
│   │   │   │   │       └── fail2ban.chart.py
  • 在局域网内监听,注意,Netdata 不适合暴露在外部(见 [问题 64][netdata issue 164]):
- hosts: mynode.DOMAIN
  roles:
    - role: ipr-cnrs.netdata
      netdata__etc_src: '{{ inventory_dir + "/../resources/host/mynode.DOMAIN/etc/netdata/" }}'
  • 您至少可以通过防火墙限制对端口 19999 的访问,仅允许已知 IP 地址 [见有关安全性的文档][netdata wiki security]。

配置

该角色将:

  • 安装所需的软件包以提供 netdata 服务。
  • 从多个来源管理 Netdata 配置目录 (/etc/netdata)(netdata__default_etc_src、netdata__etc_src、netdata__group_etc_src 和 netdata__host_etc_src)。
  • 确保 Netdata 服务已启用并启动。
  • 设置一些基本配置(绑定 IP、端口等)。
  • 设置注册表配置(请查看 [文档][netdata wiki registry])。
  • 可以设置从属/主控配置,但强烈建议首先查看注册表。

开发

此源代码来自我们的 [Gogs 实例][netdata source],而 [Github 仓库][netdata github] 只是为了能够将角色发送到 Ansible Galaxy…

但欢迎在这里发送问题/PR :)

感谢这个 [钩子][gogs to github hook],Github 自动从我们的 [Gogs 实例][netdata source] 获得更新 :)

许可

[WTFPL][wtfpl website]

作者信息

Jérémy Gardais

  • 来源 : [在 IPR 的 Gogs][netdata source]
  • [IPR][ipr website](雷恩物理研究所)
关于项目

Manage Netdata configuration

安装
ansible-galaxy install ipr-cnrs.netdata
许可证
Unknown
下载
78
拥有者
Institut de Physique de Rennes https://ipr.univ-rennes1.fr/ Tutelles CNRS et Université Rennes 1