diff --git a/functions b/functions index 900377e4f72486f6699ecf736f96adfbc04e92da..e8a049414bca2b14b158444dac1b94c2ca90d9be 160000 --- a/functions +++ b/functions @@ -1 +1 @@ -Subproject commit 900377e4f72486f6699ecf736f96adfbc04e92da +Subproject commit e8a049414bca2b14b158444dac1b94c2ca90d9be diff --git a/intern/docker_grafana/templates/datasources.yml b/intern/docker_grafana/templates/datasources.yml index 5e2ba6ca3bafdf3e6b7d0b6ef5299168a061ff59..2c3e31a00bcc5f03bd6117de1d3bedf4aba192e7 100644 --- a/intern/docker_grafana/templates/datasources.yml +++ b/intern/docker_grafana/templates/datasources.yml @@ -26,3 +26,12 @@ datasources: httpHeaderName1: 'Authorization' secureJsonData: httpHeaderValue1: 'Token {{ influxdb_token }}' + +{% if inventory_hostname == 'hix' %} + + - name: Prometheus + type: prometheus + access: proxy + url: http://{{ int_ip4 }}:9090 + +{% endif %} diff --git a/remote/docker_prometheus/tasks/main.yml b/remote/docker_prometheus/tasks/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..1d79a50e262d010a86551a961eabf7f035da39e9 --- /dev/null +++ b/remote/docker_prometheus/tasks/main.yml @@ -0,0 +1,26 @@ + +--- + +- name: "create folder struct for {{ basedir }}" + file: + path: "{{ basedir }}" + state: "directory" + +- name: "create folder struct for {{ basedir }}" + file: + path: "{{ basedir }}/data" + state: "directory" + +- name: "create config files for {{ basedir }}" + template: + src: "{{ item }}" + dest: "{{ basedir }}/{{ item }}" + with_items: + - docker-compose.yml + - prometheus.yml + +- name: "start {{ basedir }} docker" + docker_compose: + project_src: "{{ basedir }}" + state: present + diff --git a/remote/docker_prometheus/templates/docker-compose.yml b/remote/docker_prometheus/templates/docker-compose.yml new file mode 100644 index 0000000000000000000000000000000000000000..29f04144bcab08a688d54daf7699dee4817403bc --- /dev/null +++ b/remote/docker_prometheus/templates/docker-compose.yml @@ -0,0 +1,36 @@ + +version: "3" + +services: + + app: + + image: prom/prometheus:v2.41.0 + restart: always + ports: + - 9090:9090 + volumes: + - "{{ basedir }}/data:/prometheus" + - "{{ basedir }}/prometheus.yml:/etc/prometheus/prometheus.yml" + environment: + PGID: 1001 + PUID: 1001 + MEM_LIMIT: 256 + labels: + - traefik.enable=true + - traefik.http.routers.{{ servicename }}.rule=Host(`{{ domain }}`) + - traefik.http.routers.{{ servicename }}.entrypoints=websecure + - traefik.http.services.{{ servicename }}.loadbalancer.serversTransport={{ servicename }} + - traefik.http.services.{{ servicename }}.loadbalancer.server.port=9090 + networks: + - default + - web + + snmp: + image: quay.io/prometheus/snmp-exporter:v0.21.0 + restart: always + + +networks: + web: + external: true diff --git a/remote/docker_prometheus/templates/prometheus.yml b/remote/docker_prometheus/templates/prometheus.yml new file mode 100644 index 0000000000000000000000000000000000000000..6a34e16264bf4e56b50956ff1871ad40146ac0ee --- /dev/null +++ b/remote/docker_prometheus/templates/prometheus.yml @@ -0,0 +1,47 @@ + +global: + scrape_interval: 15s + evaluation_interval: 30s + # scrape_timeout is set to the global default (10s). + + +scrape_configs: + + - job_name: hex-metrics + static_configs: + - targets: [ "{{ hostvars['hex'].int_ip4 }}:9100" ] + labels: + server: hex + + - job_name: hix-metrics + static_configs: + - targets: [ "{{ int_ip4 }}:9100" ] + labels: + server: hix + + - job_name: hix-docker + static_configs: + - targets: [ "{{ int_ip4 }}:9323" ] + labels: + server: hix + + - job_name: hix-dockerstats + static_configs: + - targets: [ "{{ int_ip4 }}:9487" ] + labels: + server: hix + + - job_name: 'snmp-switch' + static_configs: + - targets: + - 10.111.10.91 + metrics_path: /snmp + params: + module: [if_mib] + relabel_configs: + - source_labels: [__address__] + target_label: __param_target + - source_labels: [__param_target] + target_label: instance + - target_label: __address__ + replacement: snmp:9116 # The SNMP exporter's real hostname:port. diff --git a/site.yml b/site.yml index 6540cdf9d64ffdc8cd19ef4c003822e4eec94d24..c49a94b806e38e904a7402c16a55a90ee5c9ef05 100644 --- a/site.yml +++ b/site.yml @@ -294,6 +294,7 @@ roles: - { role: common/proxmox, tags: proxmox } - { role: common/cronapt, tags: cronapt } + - { role: common/prometheus-node, tags: prometheus-node } - hosts: hix remote_user: root @@ -322,6 +323,13 @@ mqtt_port: 1883, influxdb_port: 18086 } + - { + role: remote/docker_prometheus, tags: prometheus, + servicename: prometheus, + basedir: /srv/prometheus, + domain: "prometheus.warpzone.remote", + prometheus_port: 9090 + } - { role: intern/docker_grafana, tags: grafana, servicename: grafana,