diff options
Diffstat (limited to 'salt/profile/prometheus')
-rw-r--r-- | salt/profile/prometheus/node_exporter.sls | 36 | ||||
-rw-r--r-- | salt/profile/prometheus/targets.sls | 18 |
2 files changed, 54 insertions, 0 deletions
diff --git a/salt/profile/prometheus/node_exporter.sls b/salt/profile/prometheus/node_exporter.sls new file mode 100644 index 0000000..1e46b3d --- /dev/null +++ b/salt/profile/prometheus/node_exporter.sls @@ -0,0 +1,36 @@ +{%- set header = salt['pillar.get']('managed_header_pound') -%} +{%- set sysconfig = '/etc/sysconfig/prometheus-node_exporter' -%} + +node_exporter_packages: + pkg.installed: + - pkgs: + - golang-github-prometheus-node_exporter + +node_exporter_sysconfig_header: + file.prepend: + - name: {{ sysconfig }} + - text: '{{ header }}' + - require: + - pkg: node_exporter_packages + +node_exporter_sysconfig: + file.replace: + - name: {{ sysconfig }} + - pattern: | + ^ARGS=.*$ + - repl: | + ARGS="--web.listen-address=:9200 --collector.filesystem.fs-types-exclude='^(fuse.s3fs|fuse.cryfs|tmpfscgroup2?|debugfs|devpts|devtmpfs|fusectl|overlay|proc|procfs|pstore)\$' --no-collector.zfs --no-collector.thermal_zone --no-collector.powersupplyclass" + - require: + - pkg: node_exporter_packages + - file: node_exporter_sysconfig_header + +node_exporter_service: + service.running: + - name: prometheus-node_exporter.service + - enable: True + - full_restart: True + - require: + - pkg: node_exporter_packages + - file: node_exporter_sysconfig + - watch: + - file: node_exporter_sysconfig diff --git a/salt/profile/prometheus/targets.sls b/salt/profile/prometheus/targets.sls new file mode 100644 index 0000000..5f29e73 --- /dev/null +++ b/salt/profile/prometheus/targets.sls @@ -0,0 +1,18 @@ +{%- set mypillar = salt['pillar.get']('profile:prometheus:targets') %} +{%- set targetsdir = '/etc/prometheus/targets' %} + +{%- if mypillar | length %} +{{ targetsdir }}: + file.directory: + - group: prometheus + +{%- for group, nodes in mypillar.items() %} +{{ targetsdir }}/{{ group }}.json: + file.serialize: + - dataset: {{ nodes }} + - serializer: json +{%- endfor %} + +{%- else %} +{%- do salt.log.debug('profile.prometheus: no targets defined') %} +{%- endif %} |