토리맘의 한글라이즈 프로젝트 logo 토리맘의 한글라이즈 프로젝트

프로메테우스 공식 레퍼런스를 한글로 번역한 문서입니다.

전체 목차는 여기에 있습니다.


프로메테우스는 expression 브라우저HTTP API에 연결하는 커넥션에 기본 인증(일명 “basic auth”)을 지원한다.

참고: 이 튜토리얼에선 프로메테우스 인스턴스에 연결할 때 사용하는 기본 인증 커넥션을 다룬다. 기본 인증은 프로메테우스 인스턴스가 스크랩 타겟 연결할 때 사용하는 커넥션에서도 지원하고 있다.

목차


Hashing a password

프로메테우스 인스턴스에 액세스하는 모든 사용자에게 username과 password를 요구하고 싶다고 가정해보자. 이 예시에선 admin을 username으로 사용하며, 원하는 password는 직접 선택하면 된다.

먼저 password의 bcrypt 해시를 생성해야 한다. password 해시값은 python3-bcrypt를 이용해 생성해보겠다.

데비안 계열 배포판을 실행한다고 가정하고, apt install python3-bcrypt 명령어를 통해 설치해 보겠다. 물론 password 해시 값은 다른 방법으로도 생성할 수 있다. 테스트가 목적이라면 웹에서 이용할 수 있는 bcrypt generator를 사용해도 된다.

다음은 python3-bcrypt를 사용해서 password를 입력받아 해시값을 계산하는 파이썬 스크립트다:

import getpass
import bcrypt

password = getpass.getpass("password: ")
hashed_password = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt())
print(hashed_password.decode())

이 스크립트를 gen-pass.py로 저장하고 실행해보자:

$ python3 gen-pass.py

그러면 password를 입력하라는 메세지가 보일 거다:

password:
$2b$12$hNf2lSsxfm0.i4a.1kVpSOVyBCfIB51VRjgBUyv6kdnyTlgWj81Ay

이 예시에선 “test”를 password로 사용했다.

출력되는 password는 어딘가에 저장해둬라. 다음 단계에선 이 해시값을 사용해볼 거다!


Creating web.yml

다음과 같은 내용으로 web.yml 파일을 생성해보자 (문서):

basic_auth_users:
    admin: $2b$12$hNf2lSsxfm0.i4a.1kVpSOVyBCfIB51VRjgBUyv6kdnyTlgWj81Ay

이 파일은 promtool check web-config web.yml 명령어로 검증해볼 수 있다:

$ promtool check web-config web.yml
web.yml SUCCESS

이 파일엔 user를 여러 개 추가할 수도 있다.


Launching Prometheus

프로메테우스를 다음과 같이 웹 설정 파일로 시작해주면 된다:

$ prometheus --web.config.file=web.yml

Testing

이 세팅은 cURL을 통해서 상호 작용해볼 수 있다. 다음과 같은 요청을 전송해봐라:

curl --head http://localhost:9090/graph

이 요청은 유효한 username과 password를 제공하지 않았기 때문에 401 Unauthorized 응답이 반환된다.

기본 인증을 사용해서 제대로 프로메테우스 엔드포인트에 액세스하려면 (/metrics 엔드포인트 등), -u 플래그를 이용해 적당한 username을 제공하고 메세지가 표시되면 password를 입력해라:

curl -u admin http://localhost:9090/metrics
Enter host password for user 'admin':

그러면 다음과 같이 프로메테우스 메트릭이 출력될 거다:

# HELP go_gc_duration_seconds A summary of the GC invocation durations.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 0.0001343
go_gc_duration_seconds{quantile="0.25"} 0.0002032
go_gc_duration_seconds{quantile="0.5"} 0.0004485
...

Summary

이 가이드에선 web.yml 파일에 username과 password의 해시값을 저장했다. 프로메테우스를 시작할 땐, 이 파일에 있는 credential을 사용해서 프로메테우스의 HTTP 엔드포인트에 액세스하는 사용자를 인증할 수 있도록 파라미터를 지정해줬다.


Next :
Understanding and using the multi-target exporter pattern
익스포터로 여러 가지 타겟을 스크랩하는 방법

전체 목차는 여기에 있습니다.

<< >>

TOP