본문 바로가기
  • A space that records me :)
기술/Prometheus

프로메테우스(Prometheus) Configuration

by yjkim_97 2021. 7. 17.

프로메테우스의 설정이 정말 너무 많다.

나에게 필요한 설정이 뭐뭐 있을 까 찾아보다가 정말 많아서 정리해두었다.

 

역시.. 내가 어떤 툴을 사용하려면, 그 툴에서 제공하는 설정을 제대로 알아야 정확히 그 툴의 특성을 이용하여 올바른 효과를 얻을 수 있는 것 같다.


Configuration 파일 구성

  • Main configuration
key type default 설명
global.scrape_interval 정규식 1m 타겟 시스템으로 부터 메트릭을 수집하는 주기
How frequently to scrape targets by default.
global.scrape_timeout 정규식 10s 타겟 시스템으로 부터 request time out 대기 시간
How long until a scrape request times out.
global.evaluation_interval 정규식 1m 사용자가 설정한 role을 새로 읽어들이는 주기
How frequently to evaluate roles.
global.external_labels Map<{labelname}, {labelvalue}>   외부 시스템(원격 저장소, alertmanager 등) 에 표시할 이 서버의 레이블.
The labels to add to any time series or alerts when communiating with external systems(federation, remote storage, Alertmanager).
global.query_log_file string   PromQL 쿼리의 로그 파일.
File to which PromQL queries are logged.
role_files List<string>   Role 파일, 경고를 보내기 위한 규칙을 설정한 파일 리스트
Role files specifies a list of globs. Roles and alerts are read from all matching files.
scrape_configs List<scrape_config>   스크랩 구성 목록
A list of scrape configurations.
alerting.alert_relabel_configs List<relable_config>   Alert보내기 위한 alertmanager관련 설정
Alerting specifies settings related to the Alertmanager.
alerting.alertmanagers List<alertmanager_config>  
remote_write List<remote_write>   원격 서버에 쓰기 관련 기능 설정
Settings related to the remote write feature.
remote_read List<remote_read>   원격 서버로 부터 읽기 관련 기능 설정
Settings related to the remote read feature.
  • scrape_config
    프로메테우스의 모니터링 에이전트(exporter)에 대한 설정으로,
    타겟 및 타겟 대상에서 메트릭을 스크랩하는 방법에 관련된 설정이다. scrape_config에 설정된 것들은 각각 단일 작업으로 이뤄진다.
key type default 설명
job_name  string   메트릭 수집하는 작업의 이름 (유니크해야함)
The job name assigned to scraped metrics by default.
scrape_interval 정규식 global_config.scrape_interval 해당 작업이 타겟 시스템에서 메트릭을 수집하는 주기
How frequently to scrape targets from this job.
scrape_timeout 정규식 global_config.scrape_timeout 해당 작업이 타겟 시스템에서 time out 발생 시 대기 시간
Per-scrape timeout when scraping this job.
metrics_path string /metrics 해당 작업이 수집한 메트릭 정보를 볼수 있는 uri (설정한 uri로 메트릭을 수집하고, 해당 uri로 접근시 수집한 메트릭 소스를 볼 수 있다.)
The HTTP resource path on which to fetch metrics from targets.
hornor_labels boolean false ....
hornor_timestamps boolean true true : 메트릭의 타임스탬프를 사용
false : 메트릭의 타임스탬프 무시
scheme string http https 또는 http 프로토콜 사용
params Map<string, String[]>   HTTP URI parameters
basic_auth.username string   메트릭 수집 request의 'Authorization' 헤더 세팅 (username, password)
Sets the 'Authorization' header on every scrape request with the configured username and password.
basic_auth.password string  
basic_auth.password_file string  
authorization.type string   메트릭 수집 request의 'Authorization' 헤더 자격증명 세팅
Sets the 'Authorization' header on every scrape request with the configured credentials.
authorization.credentials string  
authorization.credentials_file string  
oauth2 oauth2   OAuth 2.0 설정. 이걸 세팅하면 basic_auth, authorization 설정 무시됨.
Cannot be userd at the same time as basic_auth or authorization.
follow_redirects bool true 메트릭 수집 요청이 HTTP 3xx  리다이렉트 응답을 따를지 말지 설정.
tls_config tls_config   메트릭 수집 요청의 TLS 세팅
proxy_url string   Proxy URL
... ...   DNS, EC2, Eureka, File, GCE, Hetzner, HTTP, Kubernets, Lightsail, Linode, Marathon, AirBnB's Nerve, OpenStack, Scaleway, Zookeeper, Triton 등의 서비스 검색 구성을 설정
relabel_configs relable_config   List of target relabel configurations.
metric_relable_configs relabel_config   List of metric relabel configurations.
...  ...    body_size, sample, label, label_name_length, label_value_length, target 의 limit 값 설정
key type default 설명
source_labels String[{labelname}]   소스 라벨 이름 설정
separator string ; 소스 라벨 이름과, 값 사이에 구분 기호
target_label string   수정 작업에서 기록되는 라벨
Label to which the resulting value is written in a replace action.
regex regex .* 에이전트의 추출 값에 매치시킬 정규식
Reqular expression against which the extracted value is matched.
modules int   라벨 값의 해쉬 데이터에서 가져올 모듈 개수
Modulus to take of the hash of the source label values.
replacement string $1 정규식이 일치하는 경우 변경할 대체값
Replacement value against which a reges replace is performed if the reqular espression matches.
action relabel_action replace 졍규식이 일치하는 경우 수행할 액션
Action to perform based on reges matching.
key type default 설명
timeout  정규식 10s  Alertmanager의 타임아웃 대기 시간
Per-target Alertmanager timeout when pushing alerts.
api_version string v2 Alertmanager의 버전
path_prefix string / 알림을 날릴 HTTP 요청의 prefix path.
Prefix for the HTTP path alerts are pushed to.
 scheme string  http http or https
... ...   그외 기타설정으로 scrape_config설정과 동일한 것이 많다.
key type default 설명
url string   URL
remote_timeout 정규식 30s Timeout for requests to the remote write endpoint.
headers Map<String, String>   Custom HTTP headers to be send along with each remote write request.
write_relabel_configs relabel_config   List of remote write/read relabel configurations.
name string   해당 remote write/read config의 이름
send_exemplars boolean false 원격으로 예제 샘플링을 쓸지 말지
Enables sending of exemplars over remote write.
...  ...    그외 기타 설정

이외 자세한 설정은 아래의 공식 홈페이지를 참고

https://prometheus.io/docs/prometheus/latest/configuration/configuration/

 

Configuration | Prometheus

An open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach.

prometheus.io


2021.07.16 - [IT story] - 프로메테우스(prometheus) 란?

 

프로메테우스(prometheus) 란?

프로메테우스(prometheus)  란? 프로메테우스는 메트릭 기반의 오픈소스 모니터링 시스템이다. 이벤트 모니터링 및 경고에 사용되는 무료 소프트웨어 응용 프로그램이다. PromQL 및 실시간 경고가

yjkim97.tistory.com