Add prometheus-federate role
This commit is contained in:
parent
45d8ca80a4
commit
d8924abe66
8 changed files with 739 additions and 0 deletions
|
@ -119,6 +119,8 @@
|
||||||
- prometheus-fleming.adm.auro.re
|
- prometheus-fleming.adm.auro.re
|
||||||
- prometheus-pacaterie.adm.auro.re
|
- prometheus-pacaterie.adm.auro.re
|
||||||
- prometheus-rives.adm.auro.re
|
- prometheus-rives.adm.auro.re
|
||||||
|
- prometheus-aurore.adm.auro.re
|
||||||
|
- prometheus-ovh.adm.auro.re
|
||||||
roles:
|
roles:
|
||||||
- prometheus-federate
|
- prometheus-federate
|
||||||
|
|
||||||
|
|
10
roles/prometheus-federate/handlers/main.yml
Normal file
10
roles/prometheus-federate/handlers/main.yml
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
---
|
||||||
|
- name: Restart Prometheus
|
||||||
|
service:
|
||||||
|
name: prometheus
|
||||||
|
state: restarted
|
||||||
|
|
||||||
|
- name: Restart prometheus-snmp-exporter
|
||||||
|
service:
|
||||||
|
name: prometheus-snmp-exporter
|
||||||
|
state: restarted
|
46
roles/prometheus-federate/tasks/main.yml
Normal file
46
roles/prometheus-federate/tasks/main.yml
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
---
|
||||||
|
- name: Install Prometheus
|
||||||
|
apt:
|
||||||
|
update_cache: true
|
||||||
|
name:
|
||||||
|
- prometheus
|
||||||
|
register: apt_result
|
||||||
|
retries: 3
|
||||||
|
until: apt_result is succeeded
|
||||||
|
|
||||||
|
- name: Configure Prometheus
|
||||||
|
template:
|
||||||
|
src: prometheus/prometheus.yml.j2
|
||||||
|
dest: /etc/prometheus/prometheus.yml
|
||||||
|
mode: 0644
|
||||||
|
notify: Restart Prometheus
|
||||||
|
|
||||||
|
- name: Configure Prometheus alert rules
|
||||||
|
template:
|
||||||
|
src: "prometheus/{{ item }}.j2"
|
||||||
|
dest: "/etc/prometheus/{{ item }}"
|
||||||
|
mode: 0644
|
||||||
|
notify: Restart Prometheus
|
||||||
|
loop:
|
||||||
|
- alert.rules.yml
|
||||||
|
- django.rules.yml
|
||||||
|
|
||||||
|
# We don't need to restart Prometheus when updating nodes
|
||||||
|
- name: Configure Prometheus Federate devices
|
||||||
|
copy:
|
||||||
|
content: "{{ [{'targets': prometheus_targets }] | to_nice_json }}"
|
||||||
|
dest: /etc/prometheus/targets.json
|
||||||
|
mode: 0644
|
||||||
|
when: prometheus_targets is defined
|
||||||
|
|
||||||
|
- name: Activate prometheus service
|
||||||
|
systemd:
|
||||||
|
name: prometheus
|
||||||
|
enabled: true
|
||||||
|
state: started
|
||||||
|
|
||||||
|
- name: Indicate role in motd
|
||||||
|
template:
|
||||||
|
src: update-motd.d/05-service.j2
|
||||||
|
dest: /etc/update-motd.d/05-prometheus
|
||||||
|
mode: 0755
|
|
@ -0,0 +1,129 @@
|
||||||
|
# {{ ansible_managed }}
|
||||||
|
{# As this is also Jinja2 it will conflict without a raw block #}
|
||||||
|
{# Depending of Prometheus Node exporter version, rules can change depending of version #}
|
||||||
|
{% raw %}
|
||||||
|
groups:
|
||||||
|
- name: alert.rules
|
||||||
|
rules:
|
||||||
|
|
||||||
|
# Alert for any instance that is unreachable for >3 minutes.
|
||||||
|
- alert: InstanceDown
|
||||||
|
expr: up == 0
|
||||||
|
for: 3m
|
||||||
|
labels:
|
||||||
|
severity: critical
|
||||||
|
annotations:
|
||||||
|
summary: "{{ $labels.instance }} est invisible depuis plus de 3 minutes !"
|
||||||
|
|
||||||
|
# Alert for out of memory
|
||||||
|
- alert: OutOfMemory
|
||||||
|
expr: (node_memory_MemFree_bytes + node_memory_Cached_bytes + node_memory_Buffers_bytes) / node_memory_MemTotal_bytes * 100 < 10
|
||||||
|
for: 5m
|
||||||
|
labels:
|
||||||
|
severity: warning
|
||||||
|
annotations:
|
||||||
|
summary: "Mémoire libre de {{ $labels.instance }} à {{ humanize $value }}%."
|
||||||
|
|
||||||
|
# Alert for out of disk space
|
||||||
|
- alert: OutOfDiskSpace
|
||||||
|
expr: node_filesystem_free_bytes{fstype="ext4"} / node_filesystem_size_bytes{fstype="ext4"} * 100 < 10
|
||||||
|
for: 5m
|
||||||
|
labels:
|
||||||
|
severity: warning
|
||||||
|
annotations:
|
||||||
|
summary: "Espace libre de {{ $labels.mountpoint }} sur {{ $labels.instance }} à {{ humanize $value }}%."
|
||||||
|
|
||||||
|
# Alert for out of inode space on disk
|
||||||
|
- alert: OutOfInodes
|
||||||
|
expr: node_filesystem_files_free{fstype="ext4"} / node_filesystem_files{fstype="ext4"} * 100 < 10
|
||||||
|
for: 5m
|
||||||
|
labels:
|
||||||
|
severity: warning
|
||||||
|
annotations:
|
||||||
|
summary: "Presque plus d'inodes disponibles ({{ $value }}% restant) dans {{ $labels.mountpoint }} sur {{ $labels.instance }}."
|
||||||
|
|
||||||
|
# Alert for high CPU usage
|
||||||
|
- alert: CpuUsage
|
||||||
|
expr: (100 - avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 75
|
||||||
|
for: 10m
|
||||||
|
labels:
|
||||||
|
severity: warning
|
||||||
|
annotations:
|
||||||
|
summary: "CPU sur {{ $labels.instance }} à {{ humanize $value }}%."
|
||||||
|
|
||||||
|
# Check systemd unit (> buster)
|
||||||
|
- alert: SystemdServiceFailed
|
||||||
|
expr: node_systemd_unit_state{state="failed"} == 1
|
||||||
|
for: 10m
|
||||||
|
labels:
|
||||||
|
severity: warning
|
||||||
|
annotations:
|
||||||
|
summary: "{{ $labels.name }} a échoué sur {{ $labels.instance }}"
|
||||||
|
|
||||||
|
# Check UPS
|
||||||
|
- alert: UpsOutputSourceChanged
|
||||||
|
expr: upsOutputSource != 3
|
||||||
|
for: 1m
|
||||||
|
labels:
|
||||||
|
severity: warning
|
||||||
|
annotations:
|
||||||
|
summary: "La source d'alimentation de {{ $labels.instance }} a changé !"
|
||||||
|
|
||||||
|
- alert: UpsBatteryStatusWarning
|
||||||
|
expr: upsBatteryStatus == 3
|
||||||
|
for: 2m
|
||||||
|
labels:
|
||||||
|
severity: warning
|
||||||
|
annotations:
|
||||||
|
summary: "L'état de la batterie de {{ $labels.instance }} est faible !"
|
||||||
|
|
||||||
|
- alert: UpsBatteryStatusCritical
|
||||||
|
expr: upsBatteryStatus == 4
|
||||||
|
for: 10m
|
||||||
|
labels:
|
||||||
|
severity: warning
|
||||||
|
annotations:
|
||||||
|
summary: "L'état de la batterie de {{ $labels.instance }} est affaibli !"
|
||||||
|
|
||||||
|
- alert: UpsHighLoad
|
||||||
|
expr: upsOutputPercentLoad > 70
|
||||||
|
for: 5m
|
||||||
|
labels:
|
||||||
|
severity: critical
|
||||||
|
annotations:
|
||||||
|
summary: "La charge de {{ $labels.instance }} est de {{ $value }}% !"
|
||||||
|
|
||||||
|
- alert: UpsWrongInputVoltage
|
||||||
|
expr: (upsInputVoltage < 210) or (upsInputVoltage > 250)
|
||||||
|
for: 10m
|
||||||
|
labels:
|
||||||
|
severity: warning
|
||||||
|
annotations:
|
||||||
|
summary: "La tension d'entrée de {{ $labels.instance }} est de {{ $value }}V."
|
||||||
|
|
||||||
|
- alert: UpsWrongOutputVoltage
|
||||||
|
expr: (upsOutputVoltage < 220) or (upsOutputVoltage > 240)
|
||||||
|
for: 10m
|
||||||
|
labels:
|
||||||
|
severity: warning
|
||||||
|
annotations:
|
||||||
|
summary: "La tension de sortie de {{ $labels.instance }} est de {{ $value }}V."
|
||||||
|
|
||||||
|
- alert: UpsTimeRemainingWarning
|
||||||
|
expr: upsEstimatedMinutesRemaining < 15
|
||||||
|
for: 1m
|
||||||
|
labels:
|
||||||
|
severity: warning
|
||||||
|
annotations:
|
||||||
|
summary: "L'autonomie restante sur {{ $labels.instance }} est de {{ $value }} min."
|
||||||
|
|
||||||
|
- alert: UpsTimeRemainingCritical
|
||||||
|
expr: upsEstimatedMinutesRemaining < 5
|
||||||
|
for: 1m
|
||||||
|
labels:
|
||||||
|
severity: critical
|
||||||
|
annotations:
|
||||||
|
summary: "L'autonomie restante sur {{ $labels.instance }} est de {{ $value }} min."
|
||||||
|
|
||||||
|
|
||||||
|
{% endraw %}
|
|
@ -0,0 +1,106 @@
|
||||||
|
# {{ ansible_managed }}
|
||||||
|
{# As this is also Jinja2 it will conflict without a raw block #}
|
||||||
|
{% raw %}
|
||||||
|
groups:
|
||||||
|
- name: django.rules
|
||||||
|
rules:
|
||||||
|
- record: job:django_http_requests_before_middlewares_total:sum_rate30s
|
||||||
|
expr: sum(rate(django_http_requests_before_middlewares_total[30s])) BY (job)
|
||||||
|
- record: job:django_http_requests_unknown_latency_total:sum_rate30s
|
||||||
|
expr: sum(rate(django_http_requests_unknown_latency_total[30s])) BY (job)
|
||||||
|
- record: job:django_http_ajax_requests_total:sum_rate30s
|
||||||
|
expr: sum(rate(django_http_ajax_requests_total[30s])) BY (job)
|
||||||
|
- record: job:django_http_responses_before_middlewares_total:sum_rate30s
|
||||||
|
expr: sum(rate(django_http_responses_before_middlewares_total[30s])) BY (job)
|
||||||
|
- record: job:django_http_requests_unknown_latency_including_middlewares_total:sum_rate30s
|
||||||
|
expr: sum(rate(django_http_requests_unknown_latency_including_middlewares_total[30s]))
|
||||||
|
BY (job)
|
||||||
|
- record: job:django_http_requests_body_total_bytes:sum_rate30s
|
||||||
|
expr: sum(rate(django_http_requests_body_total_bytes[30s])) BY (job)
|
||||||
|
- record: job:django_http_responses_streaming_total:sum_rate30s
|
||||||
|
expr: sum(rate(django_http_responses_streaming_total[30s])) BY (job)
|
||||||
|
- record: job:django_http_responses_body_total_bytes:sum_rate30s
|
||||||
|
expr: sum(rate(django_http_responses_body_total_bytes[30s])) BY (job)
|
||||||
|
- record: job:django_http_requests_total:sum_rate30s
|
||||||
|
expr: sum(rate(django_http_requests_total_by_method[30s])) BY (job)
|
||||||
|
- record: job:django_http_requests_total_by_method:sum_rate30s
|
||||||
|
expr: sum(rate(django_http_requests_total_by_method[30s])) BY (job, method)
|
||||||
|
- record: job:django_http_requests_total_by_transport:sum_rate30s
|
||||||
|
expr: sum(rate(django_http_requests_total_by_transport[30s])) BY (job, transport)
|
||||||
|
- record: job:django_http_requests_total_by_view:sum_rate30s
|
||||||
|
expr: sum(rate(django_http_requests_total_by_view_transport_method[30s])) BY (job,
|
||||||
|
view)
|
||||||
|
- record: job:django_http_requests_total_by_view_transport_method:sum_rate30s
|
||||||
|
expr: sum(rate(django_http_requests_total_by_view_transport_method[30s])) BY (job,
|
||||||
|
view, transport, method)
|
||||||
|
- record: job:django_http_responses_total_by_templatename:sum_rate30s
|
||||||
|
expr: sum(rate(django_http_responses_total_by_templatename[30s])) BY (job, templatename)
|
||||||
|
- record: job:django_http_responses_total_by_status:sum_rate30s
|
||||||
|
expr: sum(rate(django_http_responses_total_by_status[30s])) BY (job, status)
|
||||||
|
- record: job:django_http_responses_total_by_charset:sum_rate30s
|
||||||
|
expr: sum(rate(django_http_responses_total_by_charset[30s])) BY (job, charset)
|
||||||
|
- record: job:django_http_exceptions_total_by_type:sum_rate30s
|
||||||
|
expr: sum(rate(django_http_exceptions_total_by_type[30s])) BY (job, type)
|
||||||
|
- record: job:django_http_exceptions_total_by_view:sum_rate30s
|
||||||
|
expr: sum(rate(django_http_exceptions_total_by_view[30s])) BY (job, view)
|
||||||
|
- record: job:django_http_requests_latency_including_middlewares_seconds:quantile_rate30s
|
||||||
|
expr: histogram_quantile(0.5, sum(rate(django_http_requests_latency_including_middlewares_seconds_bucket[30s]))
|
||||||
|
BY (job, le))
|
||||||
|
labels:
|
||||||
|
quantile: "50"
|
||||||
|
- record: job:django_http_requests_latency_including_middlewares_seconds:quantile_rate30s
|
||||||
|
expr: histogram_quantile(0.95, sum(rate(django_http_requests_latency_including_middlewares_seconds_bucket[30s]))
|
||||||
|
BY (job, le))
|
||||||
|
labels:
|
||||||
|
quantile: "95"
|
||||||
|
- record: job:django_http_requests_latency_including_middlewares_seconds:quantile_rate30s
|
||||||
|
expr: histogram_quantile(0.99, sum(rate(django_http_requests_latency_including_middlewares_seconds_bucket[30s]))
|
||||||
|
BY (job, le))
|
||||||
|
labels:
|
||||||
|
quantile: "99"
|
||||||
|
- record: job:django_http_requests_latency_including_middlewares_seconds:quantile_rate30s
|
||||||
|
expr: histogram_quantile(0.999, sum(rate(django_http_requests_latency_including_middlewares_seconds_bucket[30s]))
|
||||||
|
BY (job, le))
|
||||||
|
labels:
|
||||||
|
quantile: "99.9"
|
||||||
|
- record: job:django_http_requests_latency_seconds:quantile_rate30s
|
||||||
|
expr: histogram_quantile(0.5, sum(rate(django_http_requests_latency_seconds_bucket[30s]))
|
||||||
|
BY (job, le))
|
||||||
|
labels:
|
||||||
|
quantile: "50"
|
||||||
|
- record: job:django_http_requests_latency_seconds:quantile_rate30s
|
||||||
|
expr: histogram_quantile(0.95, sum(rate(django_http_requests_latency_seconds_bucket[30s]))
|
||||||
|
BY (job, le))
|
||||||
|
labels:
|
||||||
|
quantile: "95"
|
||||||
|
- record: job:django_http_requests_latency_seconds:quantile_rate30s
|
||||||
|
expr: histogram_quantile(0.99, sum(rate(django_http_requests_latency_seconds_bucket[30s]))
|
||||||
|
BY (job, le))
|
||||||
|
labels:
|
||||||
|
quantile: "99"
|
||||||
|
- record: job:django_http_requests_latency_seconds:quantile_rate30s
|
||||||
|
expr: histogram_quantile(0.999, sum(rate(django_http_requests_latency_seconds_bucket[30s]))
|
||||||
|
BY (job, le))
|
||||||
|
labels:
|
||||||
|
quantile: "99.9"
|
||||||
|
- record: job:django_model_inserts_total:sum_rate1m
|
||||||
|
expr: sum(rate(django_model_inserts_total[1m])) BY (job, model)
|
||||||
|
- record: job:django_model_updates_total:sum_rate1m
|
||||||
|
expr: sum(rate(django_model_updates_total[1m])) BY (job, model)
|
||||||
|
- record: job:django_model_deletes_total:sum_rate1m
|
||||||
|
expr: sum(rate(django_model_deletes_total[1m])) BY (job, model)
|
||||||
|
- record: job:django_db_new_connections_total:sum_rate30s
|
||||||
|
expr: sum(rate(django_db_new_connections_total[30s])) BY (alias, vendor)
|
||||||
|
- record: job:django_db_new_connection_errors_total:sum_rate30s
|
||||||
|
expr: sum(rate(django_db_new_connection_errors_total[30s])) BY (alias, vendor)
|
||||||
|
- record: job:django_db_execute_total:sum_rate30s
|
||||||
|
expr: sum(rate(django_db_execute_total[30s])) BY (alias, vendor)
|
||||||
|
- record: job:django_db_execute_many_total:sum_rate30s
|
||||||
|
expr: sum(rate(django_db_execute_many_total[30s])) BY (alias, vendor)
|
||||||
|
- record: job:django_db_errors_total:sum_rate30s
|
||||||
|
expr: sum(rate(django_db_errors_total[30s])) BY (alias, vendor, type)
|
||||||
|
- record: job:django_migrations_applied_total:max
|
||||||
|
expr: max(django_migrations_applied_total) BY (job, connection)
|
||||||
|
- record: job:django_migrations_unapplied_total:max
|
||||||
|
expr: max(django_migrations_unapplied_total) BY (job, connection)
|
||||||
|
{% endraw %}
|
|
@ -0,0 +1,55 @@
|
||||||
|
# {{ ansible_managed }}
|
||||||
|
|
||||||
|
global:
|
||||||
|
# scrape_interval is set to the global default (60s)
|
||||||
|
# evaluation_interval is set to the global default (60s)
|
||||||
|
# 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
|
||||||
|
# Use prometheus alertmanager installed on the same machine
|
||||||
|
alerting:
|
||||||
|
alertmanagers:
|
||||||
|
- static_configs:
|
||||||
|
- targets: ['{{ prometheus_alertmanager }}']
|
||||||
|
|
||||||
|
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
|
||||||
|
rule_files:
|
||||||
|
- "alert.rules.yml" # Monitoring alerts, this is the file you may be searching!
|
||||||
|
- "django.rules.yml" # Custom rules specific for Django project monitoring
|
||||||
|
|
||||||
|
# A scrape configuration containing exactly one endpoint to scrape:
|
||||||
|
# Here it's Prometheus itself.
|
||||||
|
scrape_configs:
|
||||||
|
# The .json in file_sd_configs is dynamically reloaded
|
||||||
|
|
||||||
|
|
||||||
|
- job_name: federate
|
||||||
|
scrape_interval: 15s
|
||||||
|
metrics_path: '/federate'
|
||||||
|
file_sd_configs:
|
||||||
|
- files:
|
||||||
|
- '/etc/prometheus/targets.json'
|
||||||
|
relabel_configs:
|
||||||
|
# Do not put :9100 in instance name, rather here
|
||||||
|
- source_labels: [__address__]
|
||||||
|
target_label: __param_target
|
||||||
|
- source_labels: [__param_target]
|
||||||
|
target_label: instance
|
||||||
|
- source_labels: [__param_target]
|
||||||
|
target_label: __address__
|
||||||
|
replacement: '$1:9090'
|
||||||
|
params:
|
||||||
|
'match[]':
|
||||||
|
- '{job="servers"}'
|
||||||
|
- '{job="prometheus"}'
|
||||||
|
- '{job="unifi_snmp"}'
|
||||||
|
- '{job="django"}'
|
||||||
|
- '{job="ups_snmp"}'
|
||||||
|
- '{job="django"}'
|
||||||
|
- '{job="docker"}'
|
||||||
|
|
387
roles/prometheus-federate/templates/prometheus/snmp.yml.j2
Normal file
387
roles/prometheus-federate/templates/prometheus/snmp.yml.j2
Normal file
|
@ -0,0 +1,387 @@
|
||||||
|
# {{ ansible_managed }}
|
||||||
|
# TODOlist :
|
||||||
|
# - Faire fonctionner le monitoring des switchs défini ici
|
||||||
|
# * Configurer tous les switchs avec un compte SNMPv3
|
||||||
|
# * Mettre l'inventaire des switchs dans Ansible
|
||||||
|
# - Optimiser les règles pour les bornes Unifi,
|
||||||
|
# on pourrait indexer avec les SSID
|
||||||
|
|
||||||
|
eatonups:
|
||||||
|
walk:
|
||||||
|
- 1.3.6.1.2.1.33.1.2
|
||||||
|
- 1.3.6.1.2.1.33.1.3
|
||||||
|
- 1.3.6.1.2.1.33.1.4
|
||||||
|
- 1.3.6.1.4.1.534.1.6
|
||||||
|
get:
|
||||||
|
- 1.3.6.1.2.1.1.3.0
|
||||||
|
metrics:
|
||||||
|
- name: sysUpTime
|
||||||
|
oid: 1.3.6.1.2.1.1.3
|
||||||
|
type: gauge
|
||||||
|
help: The time (in hundredths of a second) since the network management portion
|
||||||
|
of the system was last re-initialized. - 1.3.6.1.2.1.1.3
|
||||||
|
- name: upsBatteryStatus
|
||||||
|
oid: 1.3.6.1.2.1.33.1.2.1
|
||||||
|
type: gauge
|
||||||
|
help: The indication of the capacity remaining in the UPS system's batteries -
|
||||||
|
1.3.6.1.2.1.33.1.2.1
|
||||||
|
- name: upsEstimatedMinutesRemaining
|
||||||
|
oid: 1.3.6.1.2.1.33.1.2.3
|
||||||
|
type: gauge
|
||||||
|
help: An estimate of the time to battery charge depletion under the present load
|
||||||
|
conditions if the utility power is off and remains off, or if it were to be
|
||||||
|
lost and remain off. - 1.3.6.1.2.1.33.1.2.3
|
||||||
|
- name: upsInputVoltage
|
||||||
|
oid: 1.3.6.1.2.1.33.1.3.3.1.3
|
||||||
|
type: gauge
|
||||||
|
help: The magnitude of the present input voltage. - 1.3.6.1.2.1.33.1.3.3.1.3
|
||||||
|
indexes:
|
||||||
|
- labelname: upsInputLineIndex
|
||||||
|
type: gauge
|
||||||
|
- name: upsOutputSource
|
||||||
|
oid: 1.3.6.1.2.1.33.1.4.1
|
||||||
|
type: gauge
|
||||||
|
help: The present source of output power - 1.3.6.1.2.1.33.1.4.1
|
||||||
|
- name: upsOutputVoltage
|
||||||
|
oid: 1.3.6.1.2.1.33.1.4.4.1.2
|
||||||
|
type: gauge
|
||||||
|
help: The present output voltage. - 1.3.6.1.2.1.33.1.4.4.1.2
|
||||||
|
indexes:
|
||||||
|
- labelname: upsOutputLineIndex
|
||||||
|
type: gauge
|
||||||
|
- name: upsOutputPower
|
||||||
|
oid: 1.3.6.1.2.1.33.1.4.4.1.4
|
||||||
|
type: gauge
|
||||||
|
help: The present output true power. - 1.3.6.1.2.1.33.1.4.4.1.4
|
||||||
|
indexes:
|
||||||
|
- labelname: upsOutputLineIndex
|
||||||
|
type: gauge
|
||||||
|
- name: upsOutputPercentLoad
|
||||||
|
oid: 1.3.6.1.2.1.33.1.4.4.1.5
|
||||||
|
type: gauge
|
||||||
|
help: The percentage of the UPS power capacity presently being used on this output
|
||||||
|
line, i.e., the greater of the percent load of true power capacity and the percent
|
||||||
|
load of VA. - 1.3.6.1.2.1.33.1.4.4.1.5
|
||||||
|
indexes:
|
||||||
|
- labelname: upsOutputLineIndex
|
||||||
|
type: gauge
|
||||||
|
- name: xupsEnvRemoteTemp
|
||||||
|
oid: 1.3.6.1.4.1.534.1.6.5
|
||||||
|
type: gauge
|
||||||
|
help: The reading of an EMP's temperature sensor. - 1.3.6.1.4.1.534.1.6.5
|
||||||
|
- name: xupsEnvRemoteHumidity
|
||||||
|
oid: 1.3.6.1.4.1.534.1.6.6
|
||||||
|
type: gauge
|
||||||
|
help: The reading of an EMP's humidity sensor. - 1.3.6.1.4.1.534.1.6.6
|
||||||
|
version: 1
|
||||||
|
auth:
|
||||||
|
community: public
|
||||||
|
|
||||||
|
|
||||||
|
procurve_switch:
|
||||||
|
walk:
|
||||||
|
- 1.3.6.1.2.1.31.1.1.1.10
|
||||||
|
- 1.3.6.1.2.1.31.1.1.1.6
|
||||||
|
get:
|
||||||
|
- 1.3.6.1.2.1.1.3.0
|
||||||
|
- 1.3.6.1.2.1.1.5.0
|
||||||
|
- 1.3.6.1.2.1.1.6.0
|
||||||
|
metrics:
|
||||||
|
- name: sysUpTime
|
||||||
|
oid: 1.3.6.1.2.1.1.3
|
||||||
|
type: gauge
|
||||||
|
help: The time (in hundredths of a second) since the network management portion
|
||||||
|
of the system was last re-initialized. - 1.3.6.1.2.1.1.3
|
||||||
|
- name: sysName
|
||||||
|
oid: 1.3.6.1.2.1.1.5
|
||||||
|
type: DisplayString
|
||||||
|
help: An administratively-assigned name for this managed node - 1.3.6.1.2.1.1.5
|
||||||
|
- name: sysLocation
|
||||||
|
oid: 1.3.6.1.2.1.1.6
|
||||||
|
type: DisplayString
|
||||||
|
help: The physical location of this node (e.g., 'telephone closet, 3rd floor')
|
||||||
|
- 1.3.6.1.2.1.1.6
|
||||||
|
- name: ifHCOutOctets
|
||||||
|
oid: 1.3.6.1.2.1.31.1.1.1.10
|
||||||
|
type: counter
|
||||||
|
help: The total number of octets transmitted out of the interface, including framing
|
||||||
|
characters - 1.3.6.1.2.1.31.1.1.1.10
|
||||||
|
indexes:
|
||||||
|
- labelname: ifIndex
|
||||||
|
type: gauge
|
||||||
|
- name: ifHCInOctets
|
||||||
|
oid: 1.3.6.1.2.1.31.1.1.1.6
|
||||||
|
type: counter
|
||||||
|
help: The total number of octets received on the interface, including framing
|
||||||
|
characters - 1.3.6.1.2.1.31.1.1.1.6
|
||||||
|
indexes:
|
||||||
|
- labelname: ifIndex
|
||||||
|
type: gauge
|
||||||
|
version: 3
|
||||||
|
auth:
|
||||||
|
username: prometheus
|
||||||
|
|
||||||
|
ubiquiti_unifi:
|
||||||
|
walk:
|
||||||
|
- 1.3.6.1.4.1.41112.1.6
|
||||||
|
get:
|
||||||
|
- 1.3.6.1.2.1.1.5.0
|
||||||
|
- 1.3.6.1.2.1.1.6.0
|
||||||
|
metrics:
|
||||||
|
# Pour faire une WifiMap un jour, on peut entrer la location dans la conf des bornes
|
||||||
|
# - name: sysLocation
|
||||||
|
# oid: 1.3.6.1.2.1.1.6
|
||||||
|
# type: DisplayString
|
||||||
|
# help: The physical location of this node (e.g., 'telephone closet, 3rd floor')
|
||||||
|
# - 1.3.6.1.2.1.1.6
|
||||||
|
- name: unifiVapIndex
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.1.2.1.1
|
||||||
|
type: gauge
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.1.2.1.1'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiVapIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiVapChannel
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.1.2.1.4
|
||||||
|
type: gauge
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.1.2.1.4'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiVapIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiVapEssId
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.1.2.1.6
|
||||||
|
type: DisplayString
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.1.2.1.6'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiVapIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiVapName
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.1.2.1.7
|
||||||
|
type: DisplayString
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.1.2.1.7'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiVapIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifi_vap_num_stations
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.1.2.1.8
|
||||||
|
type: gauge
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.1.2.1.8'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifi_vap_index
|
||||||
|
type: gauge
|
||||||
|
lookups:
|
||||||
|
- labels: [unifi_vap_index]
|
||||||
|
labelname: unifi_vap_essid
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.1.2.1.6
|
||||||
|
type: DisplayString
|
||||||
|
- labels: [unifi_vap_index]
|
||||||
|
labelname: unifi_vap_radio
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.1.2.1.9
|
||||||
|
type: DisplayString
|
||||||
|
- labels: []
|
||||||
|
labelname: unifi_vap_index
|
||||||
|
# - name: unifiVapNumStations
|
||||||
|
# oid: 1.3.6.1.4.1.41112.1.6.1.2.1.8
|
||||||
|
# type: gauge
|
||||||
|
# help: ' - 1.3.6.1.4.1.41112.1.6.1.2.1.8'
|
||||||
|
# indexes:
|
||||||
|
# - labelname: unifiVapIndex
|
||||||
|
# type: gauge
|
||||||
|
- name: unifiVapRadio
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.1.2.1.9
|
||||||
|
type: DisplayString
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.1.2.1.9'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiVapIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiVapRxBytes
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.1.2.1.10
|
||||||
|
type: counter
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.1.2.1.10'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiVapIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiVapRxCrypts
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.1.2.1.11
|
||||||
|
type: counter
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.1.2.1.11'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiVapIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiVapRxDropped
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.1.2.1.12
|
||||||
|
type: counter
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.1.2.1.12'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiVapIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiVapRxErrors
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.1.2.1.13
|
||||||
|
type: counter
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.1.2.1.13'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiVapIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiVapRxFrags
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.1.2.1.14
|
||||||
|
type: counter
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.1.2.1.14'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiVapIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiVapRxPackets
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.1.2.1.15
|
||||||
|
type: counter
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.1.2.1.15'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiVapIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiVapTxBytes
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.1.2.1.16
|
||||||
|
type: counter
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.1.2.1.16'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiVapIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiVapTxDropped
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.1.2.1.17
|
||||||
|
type: counter
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.1.2.1.17'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiVapIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiVapTxErrors
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.1.2.1.18
|
||||||
|
type: counter
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.1.2.1.18'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiVapIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiVapTxPackets
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.1.2.1.19
|
||||||
|
type: counter
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.1.2.1.19'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiVapIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiVapTxRetries
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.1.2.1.20
|
||||||
|
type: counter
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.1.2.1.20'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiVapIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiVapTxPower
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.1.2.1.21
|
||||||
|
type: gauge
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.1.2.1.21'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiVapIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiVapUp
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.1.2.1.22
|
||||||
|
type: gauge
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.1.2.1.22'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiVapIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiVapUsage
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.1.2.1.23
|
||||||
|
type: DisplayString
|
||||||
|
help: guest or regular user - 1.3.6.1.4.1.41112.1.6.1.2.1.23
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiVapIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiIfIndex
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.2.1.1.1
|
||||||
|
type: gauge
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.2.1.1.1'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiIfIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiIfName
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.2.1.1.5
|
||||||
|
type: DisplayString
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.2.1.1.5'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiIfIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiIfRxBytes
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.2.1.1.6
|
||||||
|
type: counter
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.2.1.1.6'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiIfIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiIfRxDropped
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.2.1.1.7
|
||||||
|
type: counter
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.2.1.1.7'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiIfIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiIfRxError
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.2.1.1.8
|
||||||
|
type: counter
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.2.1.1.8'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiIfIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiIfRxMulticast
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.2.1.1.9
|
||||||
|
type: counter
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.2.1.1.9'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiIfIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiIfRxPackets
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.2.1.1.10
|
||||||
|
type: counter
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.2.1.1.10'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiIfIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiIfTxBytes
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.2.1.1.12
|
||||||
|
type: counter
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.2.1.1.12'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiIfIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiIfTxDropped
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.2.1.1.13
|
||||||
|
type: counter
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.2.1.1.13'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiIfIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiIfTxError
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.2.1.1.14
|
||||||
|
type: counter
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.2.1.1.14'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiIfIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiIfTxPackets
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.2.1.1.15
|
||||||
|
type: counter
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.2.1.1.15'
|
||||||
|
indexes:
|
||||||
|
- labelname: unifiIfIndex
|
||||||
|
type: gauge
|
||||||
|
- name: unifiApSystemModel
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.3.3
|
||||||
|
type: DisplayString
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.3.3'
|
||||||
|
- name: unifiApSystemUptime
|
||||||
|
oid: 1.3.6.1.4.1.41112.1.6.3.5
|
||||||
|
type: counter
|
||||||
|
help: ' - 1.3.6.1.4.1.41112.1.6.3.5'
|
||||||
|
version: 3
|
||||||
|
auth:
|
||||||
|
security_level: authPriv
|
||||||
|
username: snmp_prometheus
|
||||||
|
password: {{ snmp_unifi_password }}
|
||||||
|
auth_protocol: SHA
|
||||||
|
priv_protocol: AES
|
||||||
|
priv_password: {{ snmp_unifi_password }}
|
4
roles/prometheus-federate/templates/update-motd.d/05-service.j2
Executable file
4
roles/prometheus-federate/templates/update-motd.d/05-service.j2
Executable file
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# {{ ansible_managed }}
|
||||||
|
echo "> prometheus a été déployé sur cette machine."
|
||||||
|
echo " Voir /etc/prometheus/"
|
Loading…
Reference in a new issue