blob: d12ee945b4e2d6ab6015d46a54a9293af2f971f2 [file] [log] [blame]
Bartosz Kupiduradf1f5302017-06-02 15:30:51 +02001{% from "telegraf/map.jinja" import telegraf_grains with context %}
2{%- set remote_agent = telegraf_grains.telegraf.get('remote_agent', {}) %}
3
4{%- if remote_agent.get('enabled', False) %}
5
Bartosz Kupidura03cc49b2017-07-05 11:29:38 +02006{%- set remote_agent_label = pillar.get('docker', {}).get('client', {}).get('stack', {}).get('monitoring', {}).get('service', {}).get('remote_agent', {}).get('deploy', {}).get('labels', {}).get('com.mirantis.monitoring', 'remote_agent') %}
Jiri Broulik8f8cc0c2017-08-22 14:04:06 +02007{%- set docker_ids = salt['cmd.shell']("docker ps -q -f 'label=com.mirantis.monitoring=" + remote_agent_label + "' 2> /dev/null") %}
Bartosz Kupidura03cc49b2017-07-05 11:29:38 +02008
Bartosz Kupiduradf1f5302017-06-02 15:30:51 +02009config_dir_remote_agent:
10 file.directory:
11 - name: {{remote_agent.dir.config}}
12 - makedirs: True
13 - mode: 755
14
15config_d_dir_remote_agent:
16 file.directory:
17 - name: {{remote_agent.dir.config_d}}
18 - makedirs: True
19 - mode: 755
20 - require:
21 - file: config_dir_remote_agent
22
Dmitry Kalashnike32c0252017-08-11 13:54:55 +040023config_d_dir_remote_agent_clean:
24 file.directory:
25 - name: {{remote_agent.dir.config_d}}
26 - clean: True
27 - onchanges_in:
28{%- for docker_id in docker_ids.split() %}
29 - cmd: {{docker_id}}_remote_agent_reload
30{%- endfor %}
31
Bartosz Kupiduradf1f5302017-06-02 15:30:51 +020032telegraf_config_remote_agent:
33 file.managed:
34 - name: {{ remote_agent.dir.config }}/telegraf.conf
35 - source: salt://telegraf/files/telegraf.conf
36 - user: root
37 - group: root
38 - mode: 644
39 - template: jinja
Bartosz Kupidura03cc49b2017-07-05 11:29:38 +020040 - onchanges_in:
41{%- for docker_id in docker_ids.split() %}
42 - cmd: {{docker_id}}_remote_agent_reload
43{%- endfor %}
Bartosz Kupiduradf1f5302017-06-02 15:30:51 +020044 - require:
45 - file: config_dir_remote_agent
Olivier Bourdon1109fdf2017-06-07 23:22:45 +020046 - context:
47 agent: {{ remote_agent }}
Bartosz Kupiduradf1f5302017-06-02 15:30:51 +020048
Dmitry Kalashnik23acddf2018-08-31 15:10:38 +040049{%- set remote_agent_inputs = {} %}
Bartosz Kupidura188bb522017-06-07 16:25:16 +020050{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
51 {%- set remote_agent_input = node_grains.get('telegraf', {}).get('remote_agent', {}).get('input', {}) %}
52 {%- if remote_agent_input %}
Dmitry Kalashnik23acddf2018-08-31 15:10:38 +040053 {%- do salt['defaults.merge'](remote_agent_inputs, remote_agent_input) %}
Bartosz Kupidura188bb522017-06-07 16:25:16 +020054 {%- endif %}
55{%- endfor %}
Dmitry Kalashnik23acddf2018-08-31 15:10:38 +040056{%- do salt['defaults.merge'](remote_agent_inputs, remote_agent.input) %}
Bartosz Kupidura188bb522017-06-07 16:25:16 +020057
Dmitry Kalashnik23acddf2018-08-31 15:10:38 +040058{%- for name,values in remote_agent_inputs.iteritems() %}
Bartosz Kupiduradf1f5302017-06-02 15:30:51 +020059
60{%- if values is not mapping or values.get('enabled', True) %}
61input_{{ name }}_remote_agent:
62 file.managed:
63 - name: {{ remote_agent.dir.config_d }}/input-{{ name }}.conf
64 - source:
Simon Pasquier0b7ad692017-06-21 12:09:14 +020065{%- if values.template is defined %}
66 - salt://{{ values.template }}
67{%- endif %}
Bartosz Kupiduradf1f5302017-06-02 15:30:51 +020068 - salt://telegraf/files/input/{{ name }}.conf
69 - salt://telegraf/files/input/generic.conf
70 - user: root
71 - group: root
72 - mode: 644
73 - template: jinja
Bartosz Kupidura03cc49b2017-07-05 11:29:38 +020074 - onchanges_in:
75{%- for docker_id in docker_ids.split() %}
76 - cmd: {{docker_id}}_remote_agent_reload
77{%- endfor %}
Bartosz Kupiduradf1f5302017-06-02 15:30:51 +020078 - require:
79 - file: config_d_dir_remote_agent
Dmitry Kalashnike32c0252017-08-11 13:54:55 +040080 - require_in:
81 - file: config_d_dir_remote_agent_clean
Bartosz Kupiduradf1f5302017-06-02 15:30:51 +020082 - defaults:
83 name: {{ name }}
Simon Pasquierb6fbbac2017-08-25 11:30:46 +020084{%- if values is mapping %}
Bartosz Kupiduradf1f5302017-06-02 15:30:51 +020085 values: {{ values }}
Simon Pasquierb6fbbac2017-08-25 11:30:46 +020086{%- else %}
87 values: {}
88{%- endif %}
Bartosz Kupiduradf1f5302017-06-02 15:30:51 +020089
Bartosz Kupiduradf1f5302017-06-02 15:30:51 +020090{%- endif %}
91
92{%- endfor %}
93
Dmitry Kalashnik23acddf2018-08-31 15:10:38 +040094{%- set remote_agent_outputs = {} %}
Ildar Svetlov25c67bc2018-04-05 11:58:05 +040095{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
96 {%- set remote_agent_output = node_grains.get('telegraf', {}).get('remote_agent', {}).get('output', {}) %}
97 {%- if remote_agent_output %}
Dmitry Kalashnik23acddf2018-08-31 15:10:38 +040098 {%- do salt['defaults.merge'](remote_agent_outputs, remote_agent_output) %}
Ildar Svetlov25c67bc2018-04-05 11:58:05 +040099 {%- endif %}
100{%- endfor %}
Dmitry Kalashnik23acddf2018-08-31 15:10:38 +0400101{%- do salt['defaults.merge'](remote_agent_outputs, remote_agent.output) %}
Ildar Svetlov25c67bc2018-04-05 11:58:05 +0400102
Dmitry Kalashnik23acddf2018-08-31 15:10:38 +0400103{%- for name,values in remote_agent_outputs.iteritems() %}
Bartosz Kupiduradf1f5302017-06-02 15:30:51 +0200104
105output_{{ name }}_remote_agent:
106 file.managed:
107 - name: {{ remote_agent.dir.config_d }}/output-{{ name }}.conf
Ildar Svetlovb8920872018-04-04 15:58:48 +0400108 - source:
109{%- if values.template is defined %}
110 - salt://{{ values.template }}
111{%- endif %}
112 - salt://telegraf/files/output/{{ name }}.conf
113 - salt://telegraf/files/output/generic.conf
Bartosz Kupiduradf1f5302017-06-02 15:30:51 +0200114 - user: root
115 - group: root
116 - mode: 644
117 - template: jinja
Bartosz Kupidura03cc49b2017-07-05 11:29:38 +0200118 - onchanges_in:
119{%- for docker_id in docker_ids.split() %}
120 - cmd: {{docker_id}}_remote_agent_reload
121{%- endfor %}
Bartosz Kupiduradf1f5302017-06-02 15:30:51 +0200122 - require:
123 - file: config_d_dir_remote_agent
Dmitry Kalashnike32c0252017-08-11 13:54:55 +0400124 - require_in:
125 - file: config_d_dir_remote_agent_clean
Bartosz Kupiduradf1f5302017-06-02 15:30:51 +0200126 - defaults:
127 name: {{ name }}
Simon Pasquierb6fbbac2017-08-25 11:30:46 +0200128{%- if values is mapping %}
Bartosz Kupiduradf1f5302017-06-02 15:30:51 +0200129 values: {{ values }}
Simon Pasquierb6fbbac2017-08-25 11:30:46 +0200130{%- else %}
131 values: {}
132{%- endif %}
Bartosz Kupiduradf1f5302017-06-02 15:30:51 +0200133
134{%- endfor %}
Bartosz Kupidura03cc49b2017-07-05 11:29:38 +0200135
Ildar Svetlov7e267852018-12-17 12:22:02 +0400136{%- set remote_agent_processors = {} %}
137{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
138 {%- set remote_agent_processor = node_grains.get('telegraf', {}).get('remote_agent', {}).get('processor', {}) %}
139 {%- if remote_agent_processor %}
140 {%- do salt['defaults.merge'](remote_agent_processors, remote_agent_processor) %}
141 {%- endif %}
142{%- endfor %}
143{%- do salt['defaults.merge'](remote_agent_processors, remote_agent.processor) %}
144
145{%- for name,values in remote_agent_processors.iteritems() %}
146
147processor_{{ name }}_remote_agent:
148 file.managed:
149 - name: {{ remote_agent.dir.config_d }}/processor-{{ name }}.conf
150 - source:
151{%- if values.template is defined %}
152 - salt://{{ values.template }}
153{%- endif %}
154 - salt://telegraf/files/processor/{{ name }}.conf
155 - user: root
156 - group: root
157 - mode: 644
158 - template: jinja
159 - onchanges_in:
160{%- for docker_id in docker_ids.split() %}
161 - cmd: {{docker_id}}_remote_agent_reload
162{%- endfor %}
163 - require:
164 - file: config_d_dir_remote_agent
165 - require_in:
166 - file: config_d_dir_remote_agent_clean
167 - defaults:
168 name: {{ name }}
169{%- if values is mapping %}
170 values: {{ values }}
171{%- else %}
172 values: {}
173{%- endif %}
174
175{%- endfor %}
176
Bartosz Kupidura03cc49b2017-07-05 11:29:38 +0200177{%- for docker_id in docker_ids.split() %}
178{{docker_id }}_remote_agent_reload:
179 cmd.run:
180 - name: docker kill -s SIGHUP {{ docker_id }}
181{%- endfor %}
Bartosz Kupiduradf1f5302017-06-02 15:30:51 +0200182{%- endif %}