메뉴 닫기

Ubuntu 24.04 에 Prometheus + Grafana 설치하기 (GPU 포함)

Prometheus 는 시스템 모니터링 도구로, 서버나 애플리케이션의 성능 데이터를 수집하고 경고를 설정해 문제 발생 시 알림을 주는 역할을 합니다.
Grafana 는 Prometheus 가 수집한 데이터를 시각화해 대시보드로 보여주는 도구로, 다양한 차트와 그래프로 데이터를 쉽게 분석할 수 있게 도와줍니다.
두 도구는 주로 함께 사용되어 실시간 모니터링과 시각화를 제공합니다.
Ubuntu 24.04 서버에 두개의 도구를 설치하고 사용하는 방법에 대해 설명합니다.

 

1. 프로메테우스 설치 및 설정

 

프로메테우스 사용자 계정을 생성합니다.

# useradd –no-create-home –shell /bin/false prometheus

 

구성 파일과 라이브러리를 저장할 디렉토리를 생성합니다.

# mkdir /etc/prometheus

# mkdir /var/lib/prometheus

# chown prometheus:prometheus /var/lib/prometheus

 

프로메테우스 바이너리 파일을 다운로드 합니다.

# wget https://github.com/prometheus/prometheus/releases/download/v2.54.1/prometheus-2.54.1.linux-amd64.tar.gz

# tar xvzf prometheus-2.54.1.linux-amd64.tar.gz

# cd prometheus-2.54.1.linux-amd64

# mv console* /etc/prometheus

# mv prometheus.yml /etc/prometheus

# chown -R prometheus:prometheus /etc/prometheus

# mv prometheus /usr/local/bin/

# chown prometheus:prometheus /usr/local/bin/prometheus

 

프로메테우스 시스템 파일을 생성합니다.

# vi /etc/systemd/system/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

 

변경 사항을 적용합니다.

# systemctl daemon-reload

 

프로메테우스 부팅 가동 설정과 데몬을 실행합니다.

# systemctl enable –now prometheus

 

다음 주소와 같이 웹브라우저에서 접속이 되는지 확인합니다.

http://grafana.testdomain.kr:9090

 

 

2. Node Exporter 설치

 

# wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz

# tar xvzf node_exporter-1.8.2.linux-amd64.tar.gz

# mv node_exporter-1.8.2.linux-amd64/node_exporter /usr/local/bin/

 

Node Exporter 계정을 생성합니다.

# useradd -rs /bin/false node_exporter

 

Node Exporter 시스템 파일을 생성합니다.

# vi /etc/systemd/system/node_exporter.service

[Unit]
Description=Node Exporter
After=network.target

[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target

 

변경 사항을 적용합니다.

# systemctl daemon-reload

 

Node Exporter 부팅 가동 설정과 데몬을 실행합니다.

# systemctl enable –now node_exporter

 

3. 프로메테우스 설정

 

프로메테우스에 Node Exporter 설정을 합니다.

# vi /etc/prometheus/prometheus.yml

scrape_configs:
  – job_name: “node_exporter”
    static_configs:
      – targets: [“localhost:9100”]
    basic_auth:
      username: ‘promadmin’
      password: ‘12345678’

 

데몬을 재시작하여 설정을 적용합니다.

# systemctl restart prometheus

 

 

4. Grafana 설치

 

다음 명령어로 Grafana GPG 키를 추가합니다.

# wget -q -O – https://packages.grafana.com/gpg.key | sudo apt-key add –

 

그라파나 저장소를 추가하고 설치를 진행합니다.

# add-apt-repository “deb https://packages.grafana.com/oss/deb stable main”

# apt -y update

# apt -y install grafana

 

부팅 실행 설정과 동시에 가동해줍니다.

# systemctl enable –now grafana-server

 

이제 웹브라우저에서 그라파나 대시보드에 접속할 수 있습니다.

주소는 아래와 같고, 기본 관리자 계정은 admin / admin 입니다.

로그인시 비밀번호 변경을 권장하고 있으므로, 바로 변경하여 보안을 강화하세요.

http://grafana.testdomain.kr:3000

 

 

5. 프로메테우스와 그라파나 연결

 

다음은 프로메테우스 데이터 소스를 가져와 대시보드로 출력하는 과정입니다.

그라파나 대시보드에 로그인하여 아래 메뉴를 따라 이동합니다.

– Home > Connections > Data sources

열린 페이지에서 계속 진행

[ Add data source ] 클릭 > [ Prometheus ] 클릭

– Prometheus server URL : http://grafana.testdomain.kr:9090

– Authentication methods : Basic authentication (선택), User, Password 입력 (prometheus.yml 에서 입력한 promadmin / 12345678)

– TLS settings : Skip TLS certificate validation (체크)

 

페이지 맨 하단의 [Save & test] 버튼을 눌러 이상이 없어야 합니다.

 

아래 메뉴를 따라 이동하여 대시보드 모니터링 스타일을 설정합니다.

– Dashboard > 열린 페이지에서 우측 상단 [New] 를 누르면 Import 가 보입니다. 이를 클릭합니다.

가운데 Grafana.com 의 대시보드 ID 를 넣을 수 있습니다. ‘15172’ 를 입력하고 로드 합니다.

맨 아래 메뉴 ‘Select a Prometheus data source’ 에서 ‘Prometheus’ 선택 후 [Import] 를 누릅니다.

 

마지막으로, 아래 메뉴를 따라 선택하면 선택한 스타일의 대시보드에 데이터 소스값이 출력됩니다.

– Dashboards > (리스트에서) Node Exporter for Prometheus Dashboard based on 11074 > ‘Resource Details: [grafana.testdomain.kr]’ 을 눌러 아래로 펼칩니다.

 

* 대시보드 레이아웃 제공 : https://grafana.com/grafana/dashboards/

 

 

※ GPU 서버 메트릭 수집

[참고] https://medium.com/@smda1215/nvidia-gpu-metrics-performance-monitor-in-grafana-prometheus-3a4bc7198cf9

 

NVIDIA GPU 서버를 모니터링 할 경우 아래와 같이 셋팅 합니다.

 

1) NVIDIA 드라이버 및 CUDA 설치

 

현재 시스템에서 사용 가능한 NVIDIA 드라이버 버전을 확인합니다.

# apt -y update

# apt -y install ubuntu-drivers-common alsa-utils

# ubuntu-drivers devices
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
udevadm hwdb is deprecated. Use systemd-hwdb instead.
== /sys/devices/pci0000:64/0000:64:00.0/0000:65:00.0 ==
modalias : pci:v000010DEd00001E82sv000010DEsd000012B0bc03sc00i00
vendor   : NVIDIA Corporation
model    : TU104 [GeForce RTX 2080]
driver   : nvidia-driver-470 – distro non-free
driver   : nvidia-driver-550 – distro non-free recommended
driver   : nvidia-driver-535 – distro non-free
driver   : nvidia-driver-470-server – distro non-free
driver   : nvidia-driver-535-open – distro non-free
driver   : nvidia-driver-535-server – distro non-free
driver   : nvidia-driver-535-server-open – distro non-free
driver   : nvidia-driver-550-open – distro non-free
driver   : xserver-xorg-video-nouveau – distro free builtin

 

여기에서는 출력된 목록에서 추천 표시된 버전으로 설치해 보겠습니다.

# apt -y install nvidia-driver-550

 

설치가 되었으면 리부팅을 합니다.

# reboot

 

설치를 확인합니다.

(우측 상단 CUDA 버전 확인 필요)

# nvidia-smi

 

이어서 CUDA 를 설치합니다.

아래 URL 에서 미리 체크한 CUDA 버전을 선택하면 설치 방법이 안내 됩니다.

참고로, 마지막 선택 (Install Type) 에서 runfile 을 선택하면 설치가 간단해 집니다.

https://developer.nvidia.com/cuda-toolkit-archive

 

설치 방법을 따라 설치를 하면 됩니다. (Install Type 을 runfile 로 선택하면 설치가 간단해 집니다)

Ubuntu 24.04 버전은 최근에 출시되어 그런지 버전이 나와있지않아 22.04 버전으로 선택하여 설치하였습니다.

# wget https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda_12.4.1_550.54.15_linux.run

# sh cuda_12.4.1_550.54.15_linux.run

 

처음 설치 화면이 뜨기까지 시간이 걸릴 수 있으며, 설치 과정은 Continue 선택 > accept 입력 > (미리 설치했으므로) ‘Driver’ 제외 및 나머지 기본값으로 Install 입니다.

파일 사이즈가 크기 때문에 여기에서도 시간이 다소 소요됩니다.

 

CUDA 설치가 완료되면, ~/.bashrc 파일에 경로를 추가하여 CUDA 바이너리에 접근할 수 있도록 합니다.

# echo ‘export PATH=/usr/local/cuda-12.4/bin:$PATH’ >> ~/.bashrc

# echo ‘export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH’ >> ~/.bashrc

# source ~/.bashrc

 

설치된 CUDA 버전을 확인합니다.

# nvcc -V

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Thu_Mar_28_02:18:24_PDT_2024
Cuda compilation tools, release 12.4, V12.4.131
Build cuda_12.4.r12.4/compiler.34097967_0

 

2) NVIDIA GPU Exporter 설치

 

# wget https://github.com/utkuozdemir/nvidia_gpu_exporter/releases/download/v1.2.1/nvidia-gpu-exporter_1.2.1_linux_amd64.deb

# dpkg -i nvidia-gpu-exporter_1.2.1_linux_amd64.deb

 

OS 가 다른 경우, 또는 다른 버전의 패키지를 설치할 경우 배포 사이트를 방문해 보세요.

https://github.com/utkuozdemir/nvidia_gpu_exporter/releases

 

설치된 명령어가 확인됩니다.

# ll /usr/bin/nvidia_gpu_exporter 
-rwxr-xr-x 1 root root 10367128 Jun 28 21:45 /usr/bin/nvidia_gpu_exporter*

 

서비스 파일을 아래와 같이 생성합니다.

NVIDIA GPU Exporter 서비스의 기본 포트는 9835 입니다.

# vi /etc/systemd/system/nvidia_gpu_exporter.service

[Unit]
Description=Nvidia GPU Exporter
After=network-online.target

[Service]
Type=simple

User=nvidia_gpu_exporter
Group=nvidia_gpu_exporter

ExecStart=/usr/bin/nvidia_gpu_exporter

SyslogIdentifier=nvidia_gpu_exporter

Restart=always
RestartSec=1

[Install]
WantedBy=multi-user.target

 

변경 사항을 적용, 부팅 가동 설정 및 데몬 시작을 합니다.

# systemctl daemon-reload

# systemctl enable –now nvidia_gpu_exporter.service

 

웹브라우저를 통해 서비스가 잘 동작하는지 확인합니다.

http://grafana.testdomain.kr:9835/metrics

 

3) 프로메테우스 설정

 

Nvidia GPU 매트릭을 출력할 준비가 되었습니다.

그라파나 대시보드에서 메트릭을 수집할 수 있도록 프로메테우스 설정을 변경 합니다.

# vi /etc/prometheus/prometheus.yml

scrape_configs:
  – job_name: ‘node_exporter’
    static_configs:
      – targets: [‘localhost:9835’]
    basic_auth:
      username: ‘promadmin’
      password: ‘12345678’

 

변경된 설정을 적용하기 위해 데몬을 재시작 합니다.

# systemctl restart prometheus

 

4) 그라파나 대시보드 설정

 

그라파나에서 소스데이터와 대시보드를 추가합니다.

그라파나 대시보드에 로그인하여 아래 메뉴를 따라 이동합니다.

– Home > Connections > Data sources

열린 페이지에서 계속 진행

[ Add data source ] 클릭 > [ Prometheus ] 클릭

– Prometheus server URL : http://grafana.testdomain.kr:9090

– Authentication methods : Basic authentication (선택), User, Password 입력 (prometheus.yml 에서 입력한 promadmin / 12345678)

– TLS settings : Skip TLS certificate validation (체크)

 

페이지 맨 하단의 [Save & test] 버튼을 눌러 이상이 없어야 합니다.

 

아래 메뉴를 따라 이동하여 대시보드 모니터링 스타일을 설정합니다.

– Dashboard > 열린 페이지에서 우측 상단 [New] 를 누르면 Import 가 보입니다. 이를 클릭합니다.

가운데 Grafana.com 의 대시보드 ID 를 넣을 수 있습니다. ‘14574’ 를 입력하고 로드 합니다.

맨 아래 메뉴 ‘Select a Prometheus data source’ 에서 ‘Prometheus’ 선택 후 [Import] 를 누릅니다.

 

마지막으로, 아래 메뉴를 따라 선택하면 선택한 스타일의 대시보드에 데이터 소스값이 출력됩니다.

– Dashboards > (리스트에서) Nvidia GPU Metrics 를 누르면 대시보드가 출력됩니다.

 

* NVIDIA 를 기준으로 하였지만, Tesla 도 되는듯 합니다.

 

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x