diff options
Diffstat (limited to 'roles/monitoring')
-rw-r--r-- | roles/monitoring/graphite/web/tasks/main.yml | 6 | ||||
-rw-r--r-- | roles/monitoring/landingpage/defaults/main.yml | 8 | ||||
-rw-r--r-- | roles/monitoring/landingpage/tasks/main.yml | 22 | ||||
-rw-r--r-- | roles/monitoring/landingpage/templates/index.html.j2 | 6 | ||||
-rw-r--r-- | roles/monitoring/prometheus/exporter/base/tasks/main.yml | 10 |
5 files changed, 44 insertions, 8 deletions
diff --git a/roles/monitoring/graphite/web/tasks/main.yml b/roles/monitoring/graphite/web/tasks/main.yml index 7c796722..e450fac4 100644 --- a/roles/monitoring/graphite/web/tasks/main.yml +++ b/roles/monitoring/graphite/web/tasks/main.yml @@ -41,10 +41,14 @@ include_role: name: uwsgi/app +- name: render nginx-vhost config template + set_fact: + graphite_web_nginx_vhost_content: "{{ lookup('template', 'nginx-vhost.conf.j2') }}" + - name: install nginx vhost vars: nginx_vhost: name: graphite - content: "{{ lookup('template', 'nginx-vhost.conf.j2') }}" + content: "{{ graphite_web_nginx_vhost_content }}" include_role: name: nginx/vhost diff --git a/roles/monitoring/landingpage/defaults/main.yml b/roles/monitoring/landingpage/defaults/main.yml index ad2a3895..8cdaba86 100644 --- a/roles/monitoring/landingpage/defaults/main.yml +++ b/roles/monitoring/landingpage/defaults/main.yml @@ -2,6 +2,12 @@ # monitoring_landingpage_hostnames: # - "mon.example.com" -monitoring_landingpage_acme: no +# monitoring_landingpage_tls: +# certificate_provider: "{{ acme_client }}" #monitoring_landingpage_title: "Example Monitoring Host" + +monitoring_landingpage_services: + - prometheus + - alertmanager + - grafana diff --git a/roles/monitoring/landingpage/tasks/main.yml b/roles/monitoring/landingpage/tasks/main.yml index 3158770b..85543294 100644 --- a/roles/monitoring/landingpage/tasks/main.yml +++ b/roles/monitoring/landingpage/tasks/main.yml @@ -9,21 +9,37 @@ src: index.html.j2 dest: "/var/www/landingpage/index.html" -- name: configure nginx vhost +- name: compute nginx vhost config vars: - nginx_vhost: + monitoring_landingpage_vhost_base: name: landingpage template: generic hostnames: "{{ monitoring_landingpage_hostnames }}" - acme: "{{ monitoring_landingpage_acme }}" locations: '/': root: /var/www/landingpage + monitoring_landingpage_vhost_override__yaml: | + {% if monitoring_landingpage_tls is defined %} + tls: "{{ monitoring_landingpage_tls }}" + {% endif %} + locations: + {% if 'prometheus' in monitoring_landingpage_services %} '/prometheus/': proxy_pass: "http://{{ prometheus_server_web_listen_address | default('127.0.0.1:9090') }}" + {% endif %} + {% if 'alertmanager' in monitoring_landingpage_services %} '/alertmanager/': proxy_pass: "http://{{ prometheus_alertmanager_web_listen_address | default('127.0.0.1:9093') }}" + {% endif %} + {% if 'grafana' in monitoring_landingpage_services %} '/grafana/': proxy_pass: "http://{{ grafana_config_server.http_addr | default('localhost') }}:{{ grafana_config_server.http_port | default(3000) }}" + {% endif %} + set_fact: + monitoring_landingpage_vhost: "{{ monitoring_landingpage_vhost_base | combine(monitoring_landingpage_vhost_override__yaml | from_yaml, recursive=True) }}" + +- name: configure nginx vhost + vars: + nginx_vhost: "{{ monitoring_landingpage_vhost }}" include_role: name: nginx/vhost diff --git a/roles/monitoring/landingpage/templates/index.html.j2 b/roles/monitoring/landingpage/templates/index.html.j2 index a340f1db..a9bb8aca 100644 --- a/roles/monitoring/landingpage/templates/index.html.j2 +++ b/roles/monitoring/landingpage/templates/index.html.j2 @@ -8,9 +8,15 @@ <div style="text-align:center; margin-left:auto; margin-right:auto;"> <h1>{{ monitoring_landingpage_title }}</h1> <ul style="list-style-type: none;"> +{% if 'prometheus' in monitoring_landingpage_services %} <li><a target='_blank' href='/prometheus/'>Prometheus</a></li> +{% endif %} +{% if 'alertmanager' in monitoring_landingpage_services %} <li><a target='_blank' href='/alertmanager/'>Prometheus Alertmanager</a></li> +{% endif %} +{% if 'grafana' in monitoring_landingpage_services %} <li><a target='_blank' href='/grafana/'>Grafana</a></li> +{% endif %} </ul> </div> </body> diff --git a/roles/monitoring/prometheus/exporter/base/tasks/main.yml b/roles/monitoring/prometheus/exporter/base/tasks/main.yml index c69c6e05..235b7241 100644 --- a/roles/monitoring/prometheus/exporter/base/tasks/main.yml +++ b/roles/monitoring/prometheus/exporter/base/tasks/main.yml @@ -21,10 +21,14 @@ - name: create TLS certificate and key import_tasks: tls.yml +- name: render nginx-vhost config template + set_fact: + prometheus_exporter_nginx_vhost_content: "{{ lookup('template', 'nginx-vhost.j2') }}" + - name: configure nginx vhost - import_role: - name: nginx/vhost vars: nginx_vhost: name: prometheus-exporter - content: "{{ lookup('template', 'nginx-vhost.j2') }}" + content: "{{ prometheus_exporter_nginx_vhost_content }}" + include_role: + name: nginx/vhost |