프로메테우스의 설정이 정말 너무 많다.
나에게 필요한 설정이 뭐뭐 있을 까 찾아보다가 정말 많아서 정리해두었다.
역시.. 내가 어떤 툴을 사용하려면, 그 툴에서 제공하는 설정을 제대로 알아야 정확히 그 툴의 특성을 이용하여 올바른 효과를 얻을 수 있는 것 같다.
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/
2021.07.16 - [IT story] - 프로메테우스(prometheus) 란?
'기술 > Prometheus' 카테고리의 다른 글
프로메테우스(Prometheus) Exporter - 모니터링 에이전트 (0) | 2021.07.17 |
---|---|
프로메테우스(Prometheus) 설치 및 사용 (0) | 2021.07.17 |
프로메테우스(prometheus) 란? (0) | 2021.07.16 |