diff options
Diffstat (limited to 'ansible/roles/monitoring')
| -rw-r--r-- | ansible/roles/monitoring/tasks/main.yaml | 5 | ||||
| -rw-r--r-- | ansible/roles/monitoring/tasks/setup.yaml | 20 | ||||
| -rw-r--r-- | ansible/roles/monitoring/templates/prometheus.yml.j2 | 47 |
3 files changed, 72 insertions, 0 deletions
diff --git a/ansible/roles/monitoring/tasks/main.yaml b/ansible/roles/monitoring/tasks/main.yaml new file mode 100644 index 0000000..256a09f --- /dev/null +++ b/ansible/roles/monitoring/tasks/main.yaml @@ -0,0 +1,5 @@ +--- + +- name: 'Run the setup tasks' + ansible.builtin.import_tasks: 'setup.yaml' + tags: 'monitoring' diff --git a/ansible/roles/monitoring/tasks/setup.yaml b/ansible/roles/monitoring/tasks/setup.yaml new file mode 100644 index 0000000..824d2db --- /dev/null +++ b/ansible/roles/monitoring/tasks/setup.yaml @@ -0,0 +1,20 @@ +--- + +- name: 'setup | Install required pkgs' + ansible.builtin.package: + name: + - 'prometheus' + - 'prometheus-node-exporter' + - 'prometheus-blackbox-exporter' + +- name: 'setup | Set the Prom config' + ansible.builtin.template: + src: 'prometheus.yml.j2' + dest: '/etc/prometheus/prometheus.yml' + mode: '644' + +- name: 'setup | Start the service' + ansible.builtin.service: + name: 'prometheus' + state: 'restarted' + enabled: true diff --git a/ansible/roles/monitoring/templates/prometheus.yml.j2 b/ansible/roles/monitoring/templates/prometheus.yml.j2 new file mode 100644 index 0000000..a5f3b46 --- /dev/null +++ b/ansible/roles/monitoring/templates/prometheus.yml.j2 @@ -0,0 +1,47 @@ +{{ ansible_managed | comment }} +global: + scrape_interval: 1m + evaluation_interval: 1m + # scrape_timeout is set to the global default (10s). + + # Attach these labels to any time series or alerts when communicating with + # external systems (federation, remote storage, Alertmanager). + external_labels: + monitor: 'example' + +# Alertmanager configuration +alerting: + alertmanagers: + - static_configs: + - targets: ['localhost:9093'] + +# Load rules once and periodically evaluate them according to the global 'evaluation_interval'. +rule_files: + # - "first_rules.yml" + # - "second_rules.yml" + +# A scrape configuration containing exactly one endpoint to scrape: +# Here it's Prometheus itself. +scrape_configs: + # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. + - job_name: 'prometheus' + + # Override the global default and scrape targets from this job every 5 seconds. + # scrape_interval: 30s + # scrape_timeout: 30s + + # metrics_path defaults to '/metrics' + # scheme defaults to 'http'. + + static_configs: + - targets: ['localhost:9090'] + + - job_name: node + # If prometheus-node-exporter is installed, grab stats about the local + # machine by default. + static_configs: + - targets: ['localhost:9100'] + + - job_name: caddy + static_configs: + - targets: ['rproxy:2019', 'sites:2019'] |
