Rocky Linux에 Prometheus 및 Node Exporter를 설치하는 방법


이 페이지에서

  1. 반드시 알아야 할 기본 개념\n
  2. 전제 조건
  3. 새 사용자 및 디렉토리 추가
  4. Rocky Linux에 Prometheus 설치
  5. Prometheus 서비스 파일 설정
  6. Rocky Linux에 Node Exporter 설치
  7. Node_exporter를 서비스로 설정
  8. Prometheus에 node_exporter 추가
  9. Prometheus 및 Node Exporter 설치 확인\n
  10. 결론

Prometheus는 오픈 소스 모니터링 및 경고 플랫폼입니다.

원래 Prometheus는 2012년 Soundcloud에서 만들었습니다. 이후 일부 유명 회사에서 채택한 Prometheus 프로젝트는 매우 활발한 개발자 및 커뮤니티와 함께 더 큰 프로젝트가 되었습니다. 그리고 2016년에는 CNCF(Cloud Native Computing Foundation)에서 Prometheus 프로젝트를 졸업했습니다.

알아야 할 기본 개념

기본적으로 Prometheus는 대상 서버에서 HTTP 엔드포인트를 통해 데이터와 메트릭을 수집한 다음 모든 데이터를 시계열로 저장합니다. Prometheus에서 시계열 데이터는 메트릭 이름과 키/값 쌍으로 식별됩니다.

Prometheus는 PromQL(Prometheus 쿼리 언어)을 통해 유연성을 제공합니다. PromQL을 사용하여 Prometheus 시계열 데이터베이스를 쿼리할 수 있습니다.

대상 서버에서 Prometheus에 모든 데이터 및 메트릭을 노출하는 내보내기 애플리케이션을 설치해야 합니다. 노드 내보내기는 Linux 시스템을 모니터링하는 데 일반적으로 사용되는 내보내기입니다.

노드 내보내기는 Linux 시스템에서 하드웨어 및 커널 관련 매트릭스를 노출합니다. Prometheus 서버에 데이터 종료 메트릭을 노출하는 단일 바이너리 파일로 제공됩니다.

전제 조건

이 기사에서는 Rocky Linux 8 시스템에 Prometheus 모니터링 도구 및 Node Exporter를 설치하는 방법을 배웁니다.

시작하기 전에 다음 요구 사항을 충족하는지 확인하십시오.

  • 운영 체제: Rocky Linux 8.5(Green Obsidian)
  • 루트 권한\n

이 예에서는 IP 주소가 192.168.1.10인 Rocky Linux 시스템을 사용했습니다.

이제 시작하겠습니다.

새 사용자 및 디렉터리 추가

처음에는 새 시스템 사용자 prometheus를 만든 다음 Prometheus 설치를 위한 새 구성 디렉터리와 데이터 디렉터리를 만듭니다.

1. 다음 명령을 실행하여 새 사용자 prometheus를 만듭니다.

sudo adduser -M -r -s /sbin/nologin prometheus

2. 그런 다음 다음 명령을 사용하여 새 구성 디렉터리 /etc/prometheus와 데이터 디렉터리 /var/lib/prometheus를 만듭니다.

sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus

모든 Prometheus 구성은 /etc/prometheus 디렉토리에서 사용할 수 있으며 모든 Prometheus 데이터는 /var/lib/prometheus 디렉토리에 자동으로 저장됩니다.

록키 리눅스에 프로메테우스 설치하기

이 단계에서는 tarball 또는 tar.gz 파일에서 Prometheus 모니터링 시스템을 수동으로 설치합니다.

이 링크에서 Prometheus 버전을 선택하십시오. 이 예제에서는 Prometheuss 최신 버전을 설치하려고 했습니다.

1. 작업 디렉토리를 /usr/src로 변경하고 다음 명령을 사용하여 Prometheus 바이너리를 다운로드합니다.

cd /usr/src
wget https://github.com/prometheus/prometheus/releases/download/v2.31.1/prometheus-2.31.1.linux-amd64.tar.gz

다운로드 프로세스가 완료되면 Prometheus 파일의 압축을 풉니다.

tar -xf prometheus-2.31.1.linux-amd64.tar.gz

이제 새 디렉토리 prometheus-VERSION.OS가 표시됩니다.

2. 다음으로 모든 Prometheus 구성을 /etc/prometheus 디렉토리에 복사하고 바이너리 파일 prometheus/usr/local/bin 디렉토리에 복사합니다. .

환경 변수 PROM_SRC/usr/src/prometheus-* 디렉토리로 설정합니다.

export PROM_SRC=/usr/src/prometheus-*

prometheus 구성 prometheus.yml/etc/prometheus 디렉토리에 복사합니다.

sudo cp $PROM_SRC/prometheus.yml /etc/prometheus/

바이너리 파일 prometheuspromtool을 디렉토리 /usr/local/bin/에 복사합니다.

sudo cp $PROM_SRC/prometheus /usr/local/bin/
sudo cp $PROM_SRC/promtool /usr/local/bin/

Prometheus 콘솔 템플릿 및 라이브러리를 /etc/prometheus 디렉터리에 복사합니다.

sudo cp -r $PROM_SRC/consoles /etc/prometheus
sudo cp -r $PROM_SRC/console_libraries /etc/prometheus

3. 다음으로 nano 편집기를 사용하여 Prometheus 구성 /etc/prometheus/prometheus.yml을 편집합니다.

nano /etc/prometheus/prometheus.yml

scrape_configs 옵션에서 모니터링 작업과 대상에서 모든 데이터를 스크랩하는 방법을 추가해야 할 수 있습니다.

기본 구성은 static_configs 옵션을 통해 기본 모니터링 작업 이름 prometheus 및 대상 서버 localhost와 함께 제공됩니다.

아래와 같이 대상을 localhost:9090에서 서버 IP 주소 192.168.1.10:9090으로 변경합니다.

# 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: ["192.168.1.10:9090"]

구성을 저장하고 종료합니다.

4. 이제 다음 명령을 실행하여 구성 및 데이터 디렉토리를 promethues 사용자로 변경합니다.

sudo chown prometheus:prometheus /etc/prometheus
sudo chown prometheus:prometheus /var/lib/prometheus

이제 기본 prometheus 설치를 완료했습니다.

Prometheus 서비스 파일 설정

이 단계에서는 Prometheus를 시스템 서비스로 설정합니다.

1. nano 편집기를 사용하여 새 systemd 서비스 파일 /etc/systemd/system/prometheus.service를 만듭니다.

sudo nano /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

구성을 저장하고 종료합니다.

2. 다음으로 systemd 관리자를 다시 로드하여 새 구성을 적용합니다.

sudo systemctl daemon-reload

3. 이제 다음 명령을 실행하여 Prometheus 서비스를 시작하고 활성화한 다음 서비스의 현재 상태를 확인합니다.

sudo systemctl enable --now prometheus
sudo systemctl status prometheus

설치에 성공하면 아래와 같이 prometheus 서비스가 활성화되고 실행되는 것을 볼 수 있습니다.

Prometheus 모니터링 도구는 이제 TCP 포트 9090에서 액세스할 수 있습니다.

4. 웹 브라우저를 열고 주소 표시줄에 포트 9090을 사용하여 서버 IP 주소를 입력합니다.

http://192.168.1.10:9090/

그러면 아래에 prometheus 대시보드 쿼리가 표시됩니다.

이제 prometheus 설치가 완료되었습니다. Node Exporter 설치를 위한 다음 단계로 이동합니다.

Rocky Linux에 노드 내보내기 설치

노드 내보내기는 프로메테우스 프로젝트의 일부입니다. 노드 내보내기를 사용하여 Linux 서버의 메트릭을 Prometheus 서버로 내보낼 수 있습니다.

이 단계에서는 tar.gz 파일에서 Rocky Linux 시스템에 노드 내보내기를 설치합니다.

최신 버전의 노드 내보내기를 얻으려면 이 링크를 확인하십시오. 이 예에서는 노드 내보내기 버전 1.3.0을 설치합니다.

1. 작업 디렉터리를 /usr/src로 변경하고 다음 명령을 사용하여 노드 내보내기 바이너리 파일을 다운로드합니다.

cd /usr/src/
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.0/node_exporter-1.3.0.linux-amd64.tar.gz

다운로드 프로세스가 완료되면 노드 내보내기 파일을 추출합니다.

tar -xf node_exporter-1.3.0.linux-amd64.tar.gz

이제 새 디렉토리 node_exporter-VERSION.OS를 얻게 됩니다.

2. 그런 다음 다음 명령을 사용하여 노드 내보내기 바이너리 파일을 /usr/local/bin 디렉터리로 이동합니다.

mv node_exporter-*/node_exporter /usr/local/bin

다음 단계로 이동하여 노드 내보내기를 systemd 서비스로 설정합니다.

Node_exporter를 서비스로 설정

노드 내보내기 서비스 파일을 만들기 전에 새 시스템 사용자 node_exporter를 만듭니다.

1. 다음 명령을 실행하여 새 시스템 사용자를 생성합니다.

sudo adduser -M -r -s /sbin/nologin node_exporter

2. 다음으로 nano 편집기를 사용하여 노드 내보내기 /etc/systemd/system/node_exporter.service에 대한 새 서비스 파일을 만듭니다.

sudo nano /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

구성을 저장하고 종료합니다.

3. 이제 시스템 관리자를 다시 로드하여 새 구성을 적용합니다.

sudo systemctl daemon-reload

4. 다음 명령을 사용하여 node_exporter 서비스를 시작하고 활성화합니다.

sudo systemctl enable --now node_exporter

그런 다음 서비스 node_exporter의 현재 상태를 확인합니다.

sudo systemctl status node_exporter

node_exporter 서비스가 활성 상태이고 실행 중인지 확인하십시오.

5. 노드 내보내기는 기본 포트 9100에서 실행 중입니다. 아래의 ss 명령을 사용하여 확인합니다.

ss -aplnt | grep node

아래와 비슷한 출력이 표시됩니다.

State    Recv-Q   Send-Q     Local Address:Port     Peer Address:Port   Process
LISTEN   0        128              0.0.0.0:22            0.0.0.0:*       users:(("sshd",pid=683,fd=4))
LISTEN   0        128                    *:9090                *:*       users:(("prometheus",pid=709,fd=8))
LISTEN   0        128                    *:9100                *:*       users:(("node_exporter",pid=5786,fd=3))
LISTEN   0        128                 [::]:22               [::]:*       users:(("sshd",pid=683,fd=6))

그리고 Rocky Linux 시스템에 노드 익스포터 설치를 완료했습니다.

Prometheus에 node_exporter 추가

Prometheus 및 노드 내보내기 설치를 완료한 후 Prometheus 서버에 노드 내보내기를 추가합니다.

1. nano 편집기를 사용하여 Prometheus 구성을 편집합니다.

sudo nano /etc/prometheus/prometheus.yml

scrape_config 섹션에서 다음 구성을 사용하여 새 Prometheus 작업을 추가합니다. 그리고 대상 서버로 서버 IP 주소를 변경했는지 확인하십시오.

  - job_name: 'node_exporter_metrics'
    scrape_interval: 5s
    static_configs:
      - targets: ['SERVER-IP:9100']

구성을 저장하고 종료합니다.

2. 이제 Prometheus 서비스를 다시 시작하여 새 구성을 적용합니다.

sudo systemctl restart prometheus

그리고 Prometheus 서버에 노드 내보내기를 추가했습니다.

Prometheus 및 노드 내보내기 설치 확인

1. Prometheus 대시보드로 돌아가서 상태 메뉴를 클릭하고 대상을 선택합니다.

prometheusnode_exporter_metrics의 두 가지 엔드포인트가 표시됩니다.

2. 다음으로 그래프 메뉴로 이동하여 검색창에 PromQL 쿼리를 입력합니다. 이 예에서는 node_os_info 쿼리를 사용하여 자세한 운영 체제를 확인합니다.

그리고 현재 운영 체제에 대한 자세한 정보가 표시됩니다.

3. 또 다른 예로 node_network_speed_bytes 쿼리를 사용하여 네트워크 속도를 확인한 다음 그래프 탭으로 이동합니다. 그러면 아래와 비슷한 출력이 표시됩니다.

이제 Rocky Linux 시스템에 Prometheus 및 노드 익스포터를 성공적으로 설치했습니다.

결론

축하합니다! Rocky Linux 시스템에서 Prometheus 모니터링 시스템 및 노드 내보내기의 기본 설치 및 구성을 배웠습니다.

다음 단계에서는 다른 애플리케이션용 Prometheus 내보내기 프로그램과 모니터링 대시보드로 Grafana를 탐색할 수 있습니다.