Как да инсталираме Prometheus и Node Exporter с Docker-Compose?

Prometheus е приложение за мониторинг с отворен код. Той има една от най-големите общности на сътрудници в света на отворения код.

Prometheus е предпочитан за наблюдение на системи и контейнери.

Какво е Prometheus?

Prometheus е система за мониторинг с отворен код за обработка на метрични данни за времеви серии. Той събира, организира и съхранява показатели, използвайки уникални идентификатори и времеви клейма.

Prometheus е уважаван поради много причини, но важна е дългият списък от лесни интеграции с други инструменти. За да улесни тези връзки, Prometheus използва износители вместо агенти за комуникация.

Prometheus Exporters

За всеки основен инструмент DevOps на пазара или излизащ от Open Source има конкретен износител, който да премести показатели в Prom. Най-важният от тях е Node_Exporter за експортиране на системни показатели.

Как да инсталираме Prometheus и Node Exporter с Docker-Compose?

За да започнем, ще ни трябва:

Инсталирана версия на Docker и Docker Compose.

Моля, проверете това ръководство, ако искате да инсталирате Docker и Docker Compose.

Като начало трябва да създадем Docker контейнер чрез Docker composer. Това включва създаване на файл docker-compose.yml с дефиницията на контейнера, както е показано по-долу:

mkdir -p prometheus
cd prometheus
vi docker-compose.yml

Във файла docker-compose.yml добавяме следното съдържание:

version: '3.8'

networks:
  default:
    external:
      name: monitoring-net

volumes:
  prometheus_data: {}

services:
  node-exporter:
    image: prom/node-exporter:latest
    container_name: node-exporter
    restart: unless-stopped
    volumes:
      - /proc:/host/proc:ro
      - /sys:/host/sys:ro
      - /:/rootfs:ro
    command:
      - '--path.procfs=/host/proc'
      - '--path.rootfs=/rootfs'
      - '--path.sysfs=/host/sys'
      - '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
    ports:
      - '9100:9100'
  
  prometheus:
    image: prom/prometheus:latest
    container_name: prometheus
    restart: unless-stopped
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
      - prometheus_data:/prometheus
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
      - '--storage.tsdb.path=/prometheus'
      - '--web.console.libraries=/etc/prometheus/console_libraries'
      - '--web.console.templates=/etc/prometheus/consoles'
      - '--web.enable-lifecycle'
    ports:
      - '9090:9090'

Записваме информацията с натискане на :wq

За да стартираме контейнера, използваме:

docker compose up -d

След като командата приключи, можете да проверите, дали докерът се е стартирал:

docker ps

Достъп до Prometheus от браузъра, като използвате портa по подразбиране:

http://serverip_or_hostname:9090

Ако отидете на status => targets ще можете да видите състоянието на целите си.

Може да харесате още...