• docker가 기본적으로 설치되어있어야함
  • docker 설치는 다른 페이지에서 참고

1. 프로메테우스 적용 yaml 파일 → 모니터링할 목록 정의

# 프로메테우스 yaml파일을 관리한 디렉토리 생성
$ mkdir /etc/prometheus

# prometheus.yml 파일 내용 정의
$ vi /etc/prometheus/prometheus.yml
global:
  scrape_interval: 15s
  scrape_timeout: 10s
  evaluation_interval: 15s
  external_labels:
    monitor: legacy

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets:
        - [서버 IP]:9090

2. 프로메테우스 인스턴스 시작

# 영구 볼륨(Persistent volumes)을 준비
$ mkdir -p /data/prometheus_data/

# 프로메테우스 인스턴스 배포
$ docker run -d --net=host --rm \
    -v /etc/prometheus:/etc/prometheus \
    -v /data/prometheus_data:/prometheus \
    -u root \
    --name prometheus\
    quay.io/prometheus/prometheus:v2.33.0 \
    --config.file=/etc/prometheus/prometheus.yml \
    --storage.tsdb.path=/prometheus \
    --storage.tsdb.retention=365d \
    --storage.tsdb.max-block-duration=1d \
    --storage.tsdb.min-block-duration=1d \
    --web.listen-address=:9090 \
    --web.enable-lifecycle \
    --web.enable-admin-api

3. 프로메테우스 배포 확인

  • docker 배포 확인
      $ docker ps
      CONTAINER ID                                 IMAGE                                   COMMAND                  CREATED             STATUS              PORTS               NAMES
      86205a98ec4d        quay.io/prometheus/prometheus:v2.33.0   "/bin/prometheus --c…"   14 seconds ago      Up 12 seconds                           prometheus

4. docker로 설치한 Prometheus의 관리 스크립트 내용

4.1. Prometheus.yml 파일 수정 후 Prometheus의 yaml 파일 내용 적용

```
$ source /etc/prometheus/cmd/Restart_Prometheus.sh

# 코드 내용
#! /bin/bash

container_id=`docker ps -a | grep -i prometheus | awk -F ' ' '{print $1}'`
docker restart $container_id
```

4.2. prometheus의 로그 삭제

```
$ source /etc/prometheus/cmd/Log_Clear.sh

# 코드 내용
#! /bin/bash

container_id=`docker ps -a | grep -i prometheus | awk -F ' ' '{print $1}'`
Log_file=$(docker inspect --format='{{.LogPath}}' "$container_id")

log_file_volume=`ls -al $Log_file | awk -F ' ' '{print $5}'`
if [[ $log_file_volume == 0 ]]; then
  echo "Log File is alrealy zero"
else
  truncate -s 0 $Log_file
  echo "Prometheus Log Clear"
fi
```

4.3. prometheus의 로그 보기

```
$ source /etc/prometheus/cmd/View_Log.sh

# 코드 내용
#! /bin/bash

container_id=`docker ps -a | grep -i prometheus | awk -F ' ' '{print $1}'`
docker logs -f $container_id
```

+ Recent posts