본문 바로가기

인프라 환경

Prometheus 설치 및 설정

Prometherus 설치

Prometheus는 시스템 모니터링과 알림을 위한 오픈 소스 서비스입니다. 다음은 우분투에서 Prometheus를 설치하는 방법에 대한 지침입니다.

  1. 우선, 최신 버전의 Prometheus를 다운로드 받습니다. 이를 위해 웹 브라우저에서 Prometheus 다운로드 페이지(https://prometheus.io/download/)로%EB%A1%9C) 이동하거나, 아래의 명령어를 터미널에 입력하여 해당 작업을 수행할 수 있습니다.
cd ~
wget https://github.com/prometheus/prometheus/releases/download/v2.31.1/prometheus-2.31.1.linux-amd64.tar.gz

위의 링크는 2021년 9월 현재의 최신 버전을 가리키고 있으므로, 필요에 따라 적절한 버전으로 변경하여 사용하시면 됩니다.

  1. 다운로드한 파일을 압축 해제합니다.
tar xvf prometheus-*.tar.gz
  1. 압축을 해제하면, prometheuspromtool 바이너리 파일이 있는 'prometheus-2.31.1.linux-amd64' 디렉토리가 생성됩니다. 해당 디렉토리로 이동합니다.
cd prometheus-2.31.1.linux-amd64
  1. 이제 Prometheus를 실행할 수 있습니다. 아래의 명령어를 통해 Prometheus를 실행해 봅니다.
./prometheus

이렇게 하면 Prometheus가 실행되며, 브라우저에서 'localhost:9090'에 접속하면 Prometheus의 웹 인터페이스를 확인할 수 있습니다.

하지만, 위의 방법은 테스트 환경에서 직접 Prometheus를 실행하는 방법으로, 실제 프로덕션 환경에서는 systemd 서비스로 Prometheus를 설정하여 백그라운드에서 실행되도록 하는 것이 일반적입니다.


Prometheus systemd 서비스 설정

다음은 Prometheus를 systemd 서비스로 설정하는 간단한 예시입니다:

  1. Prometheus 사용자와 그룹을 생성합니다.
sudo useradd --no-create-home --shell /bin/false prometheus
  1. 필요한 디렉토리들을 생성하고 권한을 설정합니다.
sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus
  1. 바이너리 파일들과 설정파일을 적절한 위치로 이동시킵니다.
sudo cp prometheus.yml /etc/prometheus/
sudo cp prometheus /usr/local/bin/
sudo cp promtool /usr/local/bin/
sudo cp -r consoles /etc/prometheus
sudo cp -r console_libraries /etc/prometheus
  1. Prometheus 설정 파일을 작성합니다.
sudo nano /etc/prometheus/prometheus.yml

아래의 내용을 prometheus.yml 파일에 적어넣습니다:
targets 안에 주소는 '프로메테우스 메트릭'을 제공하는 주소를 작성하여야 합니다. (node_exporter 가 실행되고 있는 주소)

global:
  scrape_interval:     15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: 'prometheus'
    scrape_interval: 5s
    static_configs:
      - targets: ['localhost:9090']
  1. 모든 파일의 소유권을 Prometheus 사용자와 그룹으로 변경합니다.
sudo chown -R prometheus:prometheus /etc/prometheus
sudo chown -R prometheus:prometheus /var/lib/prometheus
  1. systemd 서비스 파일을 생성합니다.
sudo nano /etc/systemd/system/prometheus.service

아래의 내용을 prometheus.service 파일에 적어넣습니다:

[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
    --config.file /etc/prometheus/prometheus.yml \
    --storage.tsdb.path /var/lib/prometheus/ \
    --web.console.templates=/etc/prometheus/consoles \
    --web.console.libraries=/etc/prometheus/console_libraries

[Install]
WantedBy=multi-user.target

prometheus 명령어를 실행하여 프로메테우스를 구동시킨다.

웹 주소창에 localhost:9090을 실행하면 다음과 같이 프로메테우스의 화면을 확인할 수 있다.

반응형