본문 바로가기

Server/Ubuntu

Prometheus 소개및 설치

반응형

프로메테우스는 오픈 소스 기반의 모니터링 및 경고 도구로, 분산된 시스템에서 성능 및 상태를 실시간으로 수집하고 분석합니다. Prometheus는 간편한 설정과 확장성, 강력한 쿼리 언어를 제공하여 클라우드 및 온프레미스 환경에서 활용됩니다. 이를 통해 사용자는 시스템의 건강 상태를 모니터링하고 잠재적인 문제를 신속하게 식별하여 대응할 수 있습니다.

Architecture

https://www.notion.so/Prometheus-fcc1383f11274cb3bddc97e13e890970?pvs=4#53822522d3704e2f80e31a48029976fe

프로메테우스는 순수한 숫자 시계열을 기록하는 데 효과적입니다. 기계 중심 모니터링과 높은 동적 서비스 지향 아키텍처의 모니터링에 모두 잘 맞습니다. 마이크로서비스 환경에서 다차원 데이터 수집 및 쿼리 지원은 특히 강점입니다.

프로메테우스는 신뢰성을 갖추고 있어 장애 발생 시 빠르게 문제를 진단할 수 있는 시스템으로 설계되었습니다. 각 프로메테우스 서버는 독립적이며 네트워크 저장소나 기타 원격 서비스에 의존하지 않습니다. 다른 인프라 구성 요소가 고장 났을 때도 프로메테우스에 의지할 수 있으며, 확장된 인프라 설정이 필요하지 않습니다.

1.다운로드

https://prometheus.io/download

 

Download | Prometheus

An open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach.

prometheus.io

가장 최신 버전이 2.48.0입니다. .tar.gz URL을 복사하고 해당 URL을 서버의 어딘가에 wget이나 cURL을 사용하여 다운로드하세요.

wget https://github.com/prometheus/prometheus/releases/download/v2.48.0/prometheus-2.48.0.linux-amd64.tar.gz

Prometheus의 최신 버전을 다운로드한 후에, 다음 명령어를 사용하여 다운로드한 tar 파일의 내용물을 추출하십시오.

tar xvf prometheus-2.48.0.linux-amd64.tar.gz

cd prometheus-2.48.0.linux-amd64

시스템에 prometheus를 위한 사용자를 생성합니다.

sudo useradd --no-create-home --shell /bin/false prometheus

그리고 바이너리 파일인 prometheus의 소유자를 방금 만든 사용자로 설정합니다.

sudo chown prometheus:prometheus /etc/prometheus/prometheus-2.48.0.linux-amd64/prometheus

서버 부팅 시 항상 prometheus 서비스가 시작되어 정보를 수집할 수 있도록 설정해야 합니다. nano를 사용하여 prometheus.service 파일을 생성합니다.

sudo nano /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus Monitoring System
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus
Restart=always
ExecStart=/etc/prometheus/prometheus-2.48.0.linux-amd64/prometheus \
       --config.file=/etc/prometheus/prometheus-2.48.0.linux-amd64/prometheus.yml \
       --storage.tsdb.path=/etc/prometheus/prometheus-2.48.0.linux-amd64/tsdb/ \
       --web.console.templates=/etc/prometheus/prometheus-2.48.0.linux-amd64/consoles \
       --web.console.libraries=/etc/prometheus/prometheus-2.48.0.linux-amd64/console_libraries \
       --web.listen-address=0.0.0.0:9090

[Install]
WantedBy=default.target

nano를 닫고 파일에 대한 변경 사항을 저장하세요. 그런 다음 다음 명령으로 데몬을 다시 로드하세요

sudo systemctl daemon-reload

다음 명령을 사용하여 node_exporter 서비스를 활성화하세요

sudo systemctl enable prometheus

서비스를 시작하세요

sudo systemctl start prometheus
sudo systemctl status prometheus

● prometheus.service - Prometheus Monitoring System
     Loaded: loaded (/etc/systemd/system/prometheus.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2023-11-26 13:58:00 UTC; 3s ago
   Main PID: 2648915 (prometheus)
      Tasks: 5 (limit: 1033)
     Memory: 21.1M
        CPU: 103ms
     CGroup: /system.slice/prometheus.service
             └─2648915 /etc/prometheus/prometheus-2.48.0.linux-amd64/prometheus --config.file=/etc/prometheus/prometheus-2.48.0.linux-amd64/prometheus.yml --storage.tsdb.path=/etc/prometheus>

prometheus에 node_exporter등록

sudo nano prometheus.yml

global:
  scrape_interval: 5s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 5s # Evaluate rules every 15 seconds. The default is every 1 minute.
alerting:
  alertmanagers:
    - static_configs:
        - targets:
rule_files:
scrape_configs:
  - job_name: "prometheus"
    static_configs:
      - targets: ["localhost:9090"]
  - job_name: "NodeExporter"
    static_configs:
      - targets: ["localhost:9100"]

웹페이지에서 확인

localhost:9090 설치서버

반응형