Added metric collection to server

This commit is contained in:
Manuel Forcén Muñoz 2024-12-10 19:22:04 +01:00
parent d7c3b9cdaa
commit a7bbea491c
4 changed files with 1746 additions and 0 deletions

1649
files/collectd/collectd.conf Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,25 @@
services:
prometheus:
image: prom/prometheus
container_name: infra-prometheus
restart: unless-stopped
logging:
driver: local
networks:
infra-network:
ipv4_address: 172.28.0.5
aliases:
- prom.mforcen.dev
volumes:
- type: bind
source: /opt/infra/prometheus/prometheus.yml
target: /etc/prometheus/prometheus.yml
- type: volume
source: prom-data
target: /prometheus
volumes:
prom-data:
networks:
infra-network:
external: true

View file

@ -0,0 +1,32 @@
# my global config
global:
scrape_interval: 60s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 60s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
#alerting:
# alertmanagers:
# - static_configs:
# - targets:
# - alertmanager: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"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ["localhost:9090"]
- job_name: "host"
static_configs:
- targets: ["172.28.0.1:9103"]

40
install-metrics.yml Normal file
View file

@ -0,0 +1,40 @@
---
- name: installing metrics storage
hosts: server
gather_facts: false
tasks:
- name: Create prometheus directory if it does not exist
ansible.builtin.file:
path: /opt/infra/prometheus
state: directory
mode: '0755'
- name: Create prometheus config file
ansible.builtin.copy:
src: prometheus/prometheus.yml
dest: /opt/infra/prometheus/prometheus.yml
- name: Install collectd
ansible.builtin.apt:
name: collectd
state: present
update_cache: yes
become: true
- name: Install collectd config file
ansible.builtin.copy:
src: collectd/collectd.conf
dest: /etc/collectd/collectd.conf
become: true
- name: Restart collectd service
ansible.builtin.systemd_service:
name: collectd.service
state: restarted
become: true
- name: Create prometheus compose file
ansible.builtin.copy:
src: prometheus/compose.yml
dest: /opt/infra/prometheus/compose.yml
- name: Deploy prometheus compose file
community.docker.docker_compose_v2:
project_src: /opt/infra/prometheus
files:
- compose.yml