我'm currently busy creating a automated netdata ephemeral cluster, which means I have a master netdata node which the slaves connect to. I'发现了一个类似的question + answer,但我没有使用谷物,而是使用支柱 .
我正在尝试获取Netdata主ip,并通过模板将其分发给运行Netdata的小兵 . 但这也可以应用于其他主从配置(例如postgres,elasticsearch等)
我通过支柱分配角色 . 所以我的支柱文件看起来像:
server:
roles:
- netdata-master
- grafana
我的jinja模板:
{% set netdatamaster = ..... %}
[stream]
# stream metrics to another netdata
enabled = yes
# the IP and PORT of the master
destination = {% netdatamaster %}:19999
现在我希望var netdatamaster
包含Netdata master的ipv4 adres . 我只是想不出办法做到这一点 .
1 回答
你可以使用盐矿 .
首先将mine_function添加到netdata-master服务器 . 这可以在柱子或minion配置文件中配置 .
上面的mine_function使其他minion能够为你的netdata-master服务器请求
network.ip_addrs
的值 .您可以通过不同方式请求此数据:
来自cli:
salt 'other_minion_id' mine.get 'netstat-master_id' eth0_ip_addrs
在您的州档案中:
{{ salt['mine.get']('netstat-master_id', 'eth0_ip_addrs') }}
在您的情况下,您可以将它放在Jinja模板文件的顶部 .
{% set netdatamaster = salt['mine.get']('netstat-master_id', 'eth0_ip_addrs') %}