- AWS - Linux EC2 사용시 prometheus 설치 한번에 하는 스크립트
#!/bin/bash
# 변수 설정
PROMETHEUS_VERSION="2.53.3"
# 사용자 생성 (존재하는지 확인 후 생성)
id -u prometheus &>/dev/null || sudo useradd --no-create-home --shell /bin/false prometheus
# 디렉토리 생성
sudo mkdir -p /etc/prometheus /var/lib/prometheus
# 권한 설정
sudo chown prometheus:prometheus /etc/prometheus /var/lib/prometheus
# 다운로드
sudo wget -q \
https://github.com/prometheus/prometheus/releases/download/v${PROMETHEUS_VERSION}/prometheus-${PROMETHEUS_VERSION}.linux-amd64.tar.gz
# 압축 해제
sudo tar -xzf prometheus-${PROMETHEUS_VERSION}.linux-amd64.tar.gz
# 이름 변경
sudo mv prometheus-${PROMETHEUS_VERSION}.linux-amd64 prometheus
# 실행 파일 이동
sudo cp prometheus/prometheus /usr/local/bin/
sudo cp prometheus/promtool /usr/local/bin/
# 설정 파일 생성
sudo tee /etc/prometheus/prometheus.yml > /dev/null <<EOF
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9100']
EOF
# 설정 파일 권한 설정
sudo chown prometheus:prometheus /etc/prometheus/prometheus.yml
# Prometheus 서비스 파일 생성
sudo tee /etc/systemd/system/prometheus.service > /dev/null <<EOF
[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
EOF
# 서비스 리로드 및 시작
sudo systemctl daemon-reload
sudo systemctl enable --now prometheus
# 상태 확인
sudo systemctl status prometheus --no-pager