diff --git a/ansible/roles/nomad/templates/25-base.hcl.j2 b/ansible/roles/nomad/templates/25-base.hcl.j2 index 3e0508bb..cdb08b1d 100644 --- a/ansible/roles/nomad/templates/25-base.hcl.j2 +++ b/ansible/roles/nomad/templates/25-base.hcl.j2 @@ -1,4 +1,5 @@ data_dir = "/var/lib/nomad" +plugin_dir = "/usr/libexec/nomad" advertise { http = "{{void_mesh[inventory_hostname]}}" diff --git a/ansible/roles/nomad_client/tasks/main.yml b/ansible/roles/nomad_client/tasks/main.yml index 8687bcc3..07d053a9 100644 --- a/ansible/roles/nomad_client/tasks/main.yml +++ b/ansible/roles/nomad_client/tasks/main.yml @@ -1,4 +1,10 @@ --- +- name: Install plugins + community.general.xbps: + pkg: nomad-driver-exec2 + state: present + tags: [install_nomad] + - name: Install Configuration ansible.builtin.template: src: 40-client.hcl diff --git a/ansible/roles/nomad_client/templates/40-client.hcl b/ansible/roles/nomad_client/templates/40-client.hcl index f87adbc2..de1b040d 100644 --- a/ansible/roles/nomad_client/templates/40-client.hcl +++ b/ansible/roles/nomad_client/templates/40-client.hcl @@ -59,3 +59,9 @@ plugin "docker" { allow_caps = {{ ( nomad_default_caps + ( nomad_extra_caps | default([]) ) ) | to_json }} } } + +plugin "nomad-driver-exec2" { + config { + unveil_by_task = true + } +} diff --git a/services/nomad/monitoring/node_exporter.nomad b/services/nomad/monitoring/node_exporter.nomad new file mode 100644 index 00000000..81d34c08 --- /dev/null +++ b/services/nomad/monitoring/node_exporter.nomad @@ -0,0 +1,34 @@ +job "node_exporter" { + datacenters = [ + "VOID", + "VOID-MX", + "VOID-MIRROR", + "VOID-CONTROL", + ] + namespace = "monitoring" + type = "system" + priority = 99 + + group "app" { + network { + mode = "bridge" + port "metrics" { to = 9100 } + } + + task "vector" { + driver = "exec2" + + config { + command = "node_exporter" + args = ["--collector.runit", "--collector.runit.servicedir", "/var/service"] + } + + service { + provider = "nomad" + name = "node_exporter" + port = "metrics" + tags = ["prometheus_enable"] + } + } + } +} diff --git a/services/nomad/monitoring/prometheus.yml b/services/nomad/monitoring/prometheus.yml index 33211c1a..f0cd4e17 100644 --- a/services/nomad/monitoring/prometheus.yml +++ b/services/nomad/monitoring/prometheus.yml @@ -17,14 +17,6 @@ scrape_configs: static_configs: - targets: - localhost:9090 - - job_name: node - consul_sd_configs: - - server: '{{ env "NOMAD_HOST_IP_http" }}:8500' - datacenter: void - services: ['node-exporter'] - relabel_configs: - - source_labels: ['__meta_consul_node'] - target_label: instance # {{ range nomadService 1 $allocID "ssl-exporter?ns=monitoring" }} - job_name: 'ssl' metrics_path: /probe