본문 바로가기
클라우드/prometheus

Remote Storage 설정하기

by "뭉치" 2021. 10. 1.
728x90
Prometheus Data 저장

수집한 데이터를 저장하고 시간에 흐름에 따라 조회를 할 수 있도록 시계열(Time-series) 데이터를 저장할 수 있는 저장소가 내장되어 있습니다.

데이터를 저장하는 방법은 Local Storage와 Remote Storage를 이용하는 방법이 있으며, 대부분은 Local Storage를 사용하지만 원격지에 있는 서버에 데이터를 저장하는 방법도 사용할 수 있습니다.

STORAGE

https://prometheus.io/docs/prometheus/latest/storage/#remote-storage-integrations

Remote Storage 설정(TSDB(Time-series Database) 중 InfluxDB 활용)

 

설치
Docker
docker run

-- 기본 구성파일 생성

$ docker run --rm influxdb influxd config > <directory>/influxdb.conf

-- 기본 구성파일 수정 후 InfluxDB 컨테이너 시작

$ docker run -p 8086:8086 --name influxdb -h <Public ip of influx server> -v <directory>/influxdb.conf:/etc/influxdb/influxdb.conf:ro influxdb -config /etc/influxdb/influxdb.conf

 

Download : https://docs.influxdata.com/influxdb/v1.8/introduction/download/
테이블 생성

 

CREATE DATABASE

curl -G http://<Public ip of influx server>:<influx service port>/query --data-urlencode "q=CREATE DATABASE <dbname>"

 

-- 생성된 dbname 확인

curl -G http://<Public ip of influx server>:<influx service port>/query --data-urlencode "q=SHOW DATABASES"
보관기간 설정

CREATE DATABASE [WITH [DURATION ] [REPLICATION ] [SHARD DURATION ] [NAME ]]



WITH, DURATION, REPLICATION, SHARD DURATION, NAME절은 선택 사항이며 지정하지 않으면 WITH관련 동작의 기본값은 autogen 보존 정책 설정입니다.

생성 된 보존 정책은 자동으로 데이터베이스의 기본 보존 정책으로 사용됩니다.

이중 DURATION 절은 InfluxDB가 데이터를 보관하는 기간을 결정합니다. <duration>은 기간 리터럴 또는 INF (무제한)입니다. 보존 정책의 최소 기간은 1 시간이고 최대 기간은 무제한입니다.

InfluxDB 서비스가 시작되고 실행되면 Prometheus(prometheus.yml)에 다음 구성이 필요합니다.

 

Template

https://docs.d2iq.com/mesosphere/dcos/services/prometheus/0.1.1-2.3.2/configuration/remote-storage/
Example
# Remote write configuration (for Graphite, OpenTSDB, or InfluxDB).

remote_write:

 - url: "http://<Public ip of influx server>:<influx service port>/api/v1/prom/write?db=<dbname>"

 

 

# Remote read configuration (for InfluxDB only at the moment).

remote_read:

 - url: "http://<Public ip of influx server>:<influx service port>/api/v1/prom/read?db=<dbname>"

 

 

Prometheus 재시작 후 저장 data 확인
CLI

# influx

> use <dbname>

> show measurements

...

keycloak_failed_login_attempts

keycloak_logins

keycloak_request_duration_bucket

keycloak_request_duration_count

keycloak_request_duration_sum

keycloak_user_event_CODE_TO_TOKEN

keycloak_user_event_LOGOUT

keycloak_user_event_REFRESH_TOKEN

...

> select * from keycloak_logins

name: keycloak_logins

time                __name__        client_id              instance              job      provider realm  value

----                --------        ---------              --------              ---      -------- -----  -----

1591923807133000000 keycloak_logins security-admin-console keycloak.example:8080 keycloak keycloak master 4

1591923812133000000 keycloak_logins security-admin-console keycloak.example:8080 keycloak keycloak master 4
728x90

댓글