我目前正忙于创建一个自动的Netdata临时集群,这意味着我有一个主Netdata节点,从属节点连接到该节点。 我发现了类似的question + answer,但是我没有使用谷物,而是使用了支柱。
我正在尝试获取Netdata主IP,并通过模板将其分发给运行Netdata的奴才。但这也可以应用于其他主从配置(例如postgres,elasticsearch等)
我正在通过支柱来分配角色。 所以我的支柱文件看起来像:
<div class="list-group">
<a href="#" class="list-group-item">Add New entry</a>
<a class="list-group-item">Disabled entry</a>
</div>
还有我的jinja模板:
server:
roles:
- netdata-master
- grafana
现在,我希望var {% set netdatamaster = ..... %}
[stream]
# stream metrics to another netdata
enabled = yes
# the IP and PORT of the master
destination = {% netdatamaster %}:19999
包含Netdata master的ipv4 adres。我只是想不出办法。
答案 0 :(得分:1)
您可以使用盐矿。
首先将mine_function添加到您的netdata-master服务器。可以在支柱中或在minion配置文件中进行配置。
mine_functions:
eth0_ip_addrs:
mine_function: network.ip_addrs
interface: eth0
上面的mine_function使其他奴才可以为您的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') %}