summaryrefslogtreecommitdiff
path: root/roles/monitoring
diff options
context:
space:
mode:
Diffstat (limited to 'roles/monitoring')
-rw-r--r--roles/monitoring/graphite/web/tasks/main.yml6
-rw-r--r--roles/monitoring/landingpage/defaults/main.yml8
-rw-r--r--roles/monitoring/landingpage/tasks/main.yml22
-rw-r--r--roles/monitoring/landingpage/templates/index.html.j26
-rw-r--r--roles/monitoring/prometheus/exporter/base/tasks/main.yml10
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