#출처 : 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 |