안되면되게하자
안되면되게하자
안되면되게하자
전체 방문자
오늘
어제
  • 분류 전체보기 (36)
    • Linux (1)
    • Troubleshooting (13)
    • TIP (9)
    • etc(미분류) (6)
    • 용어.약어들 (2)
    • 티스토리시작전셋팅 (4)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • jinja2
  • Ansible
  • Dell
  • iDRAC9
  • +1 647 477 8345
  • PIP
  • pip3
  • 티스토리 다시 시작
  • devtoolset
  • iDRAC8
  • webapp2
  • 그림 붙이기 문제 해결 되었나
  • ST20000NE000
  • VxRail
  • grafana
  • centos
  • 20TB
  • Received message too long
  • R730
  • xsos

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
안되면되게하자

안되면되게하자

[CentOS 7 / Ubuntu 18.04] Prometheus 서버 설치 방법
TIP

[CentOS 7 / Ubuntu 18.04] Prometheus 서버 설치 방법

2022. 2. 10. 13:56

#출처 : https://sxi.io/install-prometheus-server-on-centos-7-ubuntu-18-04/

1. Prometheus 시스템 그룹 생성

먼저 Prometheus 시스템 그룹을 생성해 보겠습니다. groupadd 명령과 함께 -r 또는 –system 옵션을 사용해야 합니다  .

sudo groupadd --system prometheus

ID가 1000 미만인 그룹은 시스템 그룹입니다.

 

2. Prometheus 시스템 사용자 생성

이제 Prometheus 시스템 사용자를 만들고 위에서 방금 만든 기본 그룹을 할당해 보겠습니다.

sudo useradd -s /sbin/nologin --system -g prometheus prometheus

이것은 /bin/bash 셸이 필요하지 않은 시스템 사용자이므로  -s /sbin/nologin 을 사용 했습니다.

 

3. Prometheus용 데이터 디렉토리 생성

Prometheus는 데이터를 저장할 디렉토리가 필요합니다. /var/lib/prometheus 아래에 하나를 만듭니다  . 서비스를 시작할 때 이 데이터 디렉토리를 지정합니다.

sudo mkdir /var/lib/prometheus

 

4. Prometheus용 구성 디렉토리 생성

Prometheus 기본 구성 파일 디렉토리는  /etc/prometheus/ 입니다. 일부 하위 디렉토리가 있습니다.

for i in rules rules.d files_sd; do sudo mkdir -p /etc/prometheus/${i}; done

 

5. Prometheus 아카이브를 다운로드하고 압축을 풉니다.

최신 버전의 Prometheus 아카이브를 다운로드하고 압축을 풀어 바이너리 파일을 가져와야 합니다. Prometheus 릴리스 Github 페이지 에서 릴리스를 확인할 수 있습니다 .

wget을 설치합니다.

# RHEL 제품군
 sudo yum -y install wget

# 데비안 제품군
 sudo apt-get -y install wget

Prometheus용 최신 바이너리 아카이브를 다운로드하십시오.

mkdir -p /tmp/prometheus && cd /tmp/prometheus
curl -s https://api.github.com/repos/prometheus/prometheus/releases/latest | grep browser_download_url  | grep linux-amd64 | cut -d '"' -f 4 | wget -i -

파일을 추출합니다.

tar xvf prometheus*.tar.gz
cd prometheus*/

 

6. prometheus 바이너리 파일을 /usr/local/bin/으로 이동합니다.

/usr/local/bin/ 이 PATH 에 있으므로  바이너리 파일을 여기에 복사해 보겠습니다.

sudo mv prometheus promtool /usr/local/bin/

prometheus 구성 템플릿을 /etc 디렉토리로 이동합니다.

sudo mv prometheus.yml  /etc/prometheus/prometheus.yml

또한 콘솔 및 console_libraries를 / etc/prometheus 디렉토리로 이동합니다.

sudo mv consoles/ console_libraries/ /etc/prometheus/
cd ~/
rm -rf /tmp/prometheus

 

7. Prometheus 구성 파일을 생성/편집합니다.

Prometheus 구성 파일은  /etc/prometheus/prometheus.yml 아래에 있습니다 .

sudo vim /etc/prometheus/prometheus.yml

템플릿 구성은 아래와 유사해야 합니다.

# my global config
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# 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: ['localhost:9090']

파일을 기본 취향으로 편집하고 저장할 수 있습니다.

 

8. Prometheus 시스템 서비스 단위 파일 생성

systemd로 Prometheus 서비스를 관리하려면 이 단위 파일을 명시적으로 정의해야 합니다.

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

[Unit]
Description=Prometheus
Documentation=https://prometheus.io/docs/introduction/overview/
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
Environment="GOMAXPROCS=1"
User=prometheus
Group=prometheus
ExecReload=/bin/kill -HUP $MAINPID
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 \
  --web.listen-address=0.0.0.0:9090 \
  --web.external-url=

SyslogIdentifier=prometheus
Restart=always

[Install]
WantedBy=multi-user.target

다음 행을 편집하는 것을 잊지 마십시오. 1을 서버의 vcpus 수로 바꾸 십시오.

Environment="GOMAXPROCS=1"

 

9. 디렉토리 권한을 변경합니다.

이 디렉토리의 소유권을 Prometheus 사용자 및 그룹으로 변경하십시오.

for i in rules rules.d files_sd; do sudo chown -R prometheus:prometheus /etc/prometheus/${i}; done
for i in rules rules.d files_sd; do sudo chmod -R 775 /etc/prometheus/${i}; done
sudo chown -R prometheus:prometheus /var/lib/prometheus/

 

10. systemd 데몬을 다시 로드하고 서비스를 시작합니다.

sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus

systemctl status prometheus 명령 을 사용하여 상태 확인:

 

11. 방화벽 구성

방화벽에서 포트를 엽니다.

sudo firewall-cmd --add-port=9090/tcp --permanent
sudo firewall-cmd --reload

제 경우에는 신뢰할 수 있는 서브넷과 IP에서만 액세스를 허용하는 다양한 방화벽 규칙을 사용 하겠습니다 .

sudo firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" port protocol="tcp" port="9090" accept'
sudo firewall-cmd --reload

192.168.0.0/24 를 신뢰할 수 있는 서브넷으로 바꿉니다 .

포트 9090에서 Prometheus 서비스에 액세스할 수 있는지 Grafana 서버에서 테스트하겠습니다.

$ sudo yum -y install nmap-ncat
$ sudo nc -v 192.168.0.118 9090
Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Connected to 192.168.0.118:9090.

포트 9090 에 연결할 수 있으므로 설정이 완료되었습니다. UI 대시보드에 액세스를 시도할 수도 있습니다.

 

저작자표시 비영리 (새창열림)

'TIP' 카테고리의 다른 글

[python] pip3로 package 설치 및 삭제  (0) 2022.02.16
CentOS 5/6 에서 GCC 4.8 사용하기  (0) 2022.02.11
신종사기 - 사망자 보험금 청구  (0) 2022.01.27
YouTube 싫어요 숫자 표시 다시 보이게 하는 방법  (0) 2022.01.20
fdm.exe  (0) 2019.01.09
    'TIP' 카테고리의 다른 글
    • [python] pip3로 package 설치 및 삭제
    • CentOS 5/6 에서 GCC 4.8 사용하기
    • 신종사기 - 사망자 보험금 청구
    • YouTube 싫어요 숫자 표시 다시 보이게 하는 방법
    안되면되게하자
    안되면되게하자
    '하라'가 아닌, '하자'.... 스스로.... 방법이 없어서 안되는게 아니다... 방법을 몰라서 안되는것 이리라... 다방면으로 검색하고 알아보자...

    티스토리툴바