레거시
-
Prometheus Label24년 11월 이전/Metric 2021. 4. 16. 22:01
개요 Label은 Prometheus의 아주 강력한 기능 중 하나이다. Label은 키-값 쌍으로 이루어져 있으며, Prometheus가 시계열 데이터를 식별하는데 "메트릭 이름"과 더불어서 사용한다. 예를 들어보자. 모니터링 세계에서 HTTP 요청에 대한 상태 코드는 주로 다음과 같이 수집한다. 2xx (응답 성공) 3xx (응답 성공 - 리다이렉션) 4xx (응답 실패 - 사용자 오류) 5xx (응답 실패 - 서버 오류) 어떻게 메트릭 이름을 지을 것인가? 아주 간단하게 다음과 같이 지을 수 있을 것이다. http_request_status_code_2xx http_request_status_code_3xx http_request_status_code_4xx http_request_status_cod..
-
Prometheus Metric Type24년 11월 이전/Metric 2021. 4. 9. 22:42
개요 Prometheus에서 메트릭을 수집하는 방법은 대표적으로 크게 2가지가 있다. 참고! 메트릭이란? 메트릭이란 수집하는 시계열 데이터를 일컫는 말이라고 보시면 됩니다. Client Library를 통한 메트릭 수집 Exporter를 통한 메트릭 수집 위 2가지 방법 모두, Prometheus에서 지원하는 다음의 4가지 메트릭 타입으로 각 메트릭을 정의하여 저장한다. Counter Gauge Summary Histogram 보통 모니터링 상황에서는 Exporter를 이용해서, 각 메트릭을 수집하는 것이 일반적이지만, 이번 장에서는 Prometheus의 메트릭 타입을 살펴보기 위해서, Golang 기반의 Client Library를 이용하여, 메트릭을 수집해 볼 것이다. 코드는 다음에서 확인할 수 있다..
-
Terraform으로 AWS VPC 관리하기24년 11월 이전/Terraform 2021. 4. 3. 15:38
AWS VPC이란 무엇인가? Amazon Virtual Private Cloud(이하 Amazon VPC 혹은 VPC)는 AWS 사용자가 정의한 "가상 네트워크"로써 cidr 블록 방식으로 IP 대역을 설정한다. VPC의 대표적인 구성 요소는 다음과 같다. Subnet subnet은 vpc 대역 안의 IP 주소 범위를 cidr 블록 방식으로 지정한다. 보통은 하나의 availability zone을 외부에서 통신할 수 있는 public subnet과 외부에서 통신이 불가능한 private subnet으로 나눈다. 또한 HA 구성을 위해 vpc 내부에 public-pirvate subnet 구조가 두 쌍이 되도록 만든다. Internet Gateway(IGW) vpc 내부의 public subnet 상의 ..
-
Packer 용어 정리24년 11월 이전/Packer 2021. 3. 26. 22:21
이번 장에서는 Packer 관련 용어들을 정리한다. Packer 관련 전반적으로 사용하는 용어들이니까 한 번쯤은 정리해볼 필요가 있다. 하지만 매우 간단하니까 쭉 훑는 느낌으로 공부해보자. 이 장을 진행하더라도 알쏭달쏭한 용어들이 있을 것이다. 하지만 추후 진행되는 장에서 Packer를 함께 사용하고 익혀나가다 보면 자연스럽게 용어들이 익혀질 것이니 걱정하지 말라. Artifact Artifact는 단일 Build의 결과물이며, 보통 머신 이미지를 나타내는 ID 혹은 File 세트이다. 모든 Builder들은 한 개의 Artifact를 생성한다. 예를 들어 Amazon EC2 Builder의 경우, 결과물인 Artifact는 "AMI ID(리전 당 1개) 세트"이다. VMware Builder의 경우엔,..
-
Cortex란 무엇인가24년 11월 이전/Metric 2021. 3. 23. 22:24
개요 이번 장에서는 Cortex가 무엇인지 공부한다. "갑자기 생뚱맞게 Prometheus 공부하다가 무슨 Cortex야?" 라는 의문이 생길 수도 있다. Prometheus는 뛰어난 성능과, 쉬운 접근성을 바탕으로 최근 나온 모니터링 기술 중 InfluxDB와 함께 업계 표준으로 자리 잡았다. 하지만 다음과 같은 문제점이 존재한다. Prometheus는 scale-out 구조를 고려하지 않고 설계되었다. Prometheus에서 긴 시간 범위를 지닌 데이터를 쿼리할 때 성능이 매우 저하되었다. Prometheus가 저장하는 데이터 특성 상 오랜 시간 저장하는 것이 쉽지 않다. 위 문제점들을 해결하기 위한 대표적인 솔루션이 바로 Cortex이다. 단점이라면 백엔드 구성을 S3, GCS 등으로 구성해야 하기..
-
프로세스 포트 모니터링하기 (1) blackbox-exporter24년 11월 이전/Metric 2021. 3. 19. 22:29
프로세스 포트 모니터링이란? 프로세스 포트 모니터링이란 명칭은 필자의 회사에서 사용하고 있는 모니터링 시스템의 기능 중 하나이다. 다른 곳도 동일하게 부르는지는 모르겠다. 간단하게 설명해서 특정 IP:PORT로 TCP 통신이 가능한 지 헬스 체크하는 것이다. 보통은 Zabbix, PRTG 등의 기술로 실행 중인 프로세스에 매핑된 포트를 모니터링을 한다. 우리는 이번 장에서 이를 Prometheus와 blackbox-exporter를 이용해서 구축한다. Blackbox Monitoring과 blackbox-exporter 먼저 용어 설명이 필요할것 같다. Blackbox Monitoring이란 무엇일까? 모니터링은 어떤 방법을 체택하는지에 따라 크게 다음과 같이 분류할 수 있다. Whitebox Monit..
-
테라폼으로 AWS IAM 관리하기 - 역할, 정책 (AWS 편)24년 11월 이전/Terraform 2021. 3. 16. 23:02
AWS IAM이란 무엇인가? AWS IAM이란, AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스이다. IAM을 이용하여, 리소스를 사용하도록 인증 및 권한 부여된 대상을 제어한다. 그냥 쉽게 AWS 리소스를 제어할 수 있는 유저, 그룹, 역할, 정책 등을 관리하는 것이라고 생각하면 된다. 이에 대한 자세한 내용은 다음을 참고하라. AWS 공식 문서 - IAM이란 무엇인가요 우리가 이번에 구성할 것은? 우리가 이번에 구성할 인프라는 바로, IAM_ROLE, IAM_POLICY, IAM_INSTNCE_PROFILE이다. Cortex 클러스터를 AWS에서 동적으로 구성하기 위해서는, AWS AutoScaling 기능이 필요하다. 이 때 IAM, S3, DynamoDB, AutoScaling ..
-
드디어 오픈 소스 컨트리뷰터가 되다!24년 11월 이전/잡다한 이야기 2021. 3. 9. 22:14
처음으로 오픈소스 컨트리뷰터가 되었다. 잘 알려진 오픈 소스는 아니지만, 처음 컨트리뷰터가 된거라 기념 겸 포스팅을 작성하게 되었다. 어떻게 하게 되었냐면 현재 회사에서 프로메테우스로 nginx 웹 서버 모니터링 하는 것을 연구하고 있다. 그 중에 제일 유의 깊게 살펴보는 것이 "prometheus-nginxlog-exporter"이다. nginx가 생성해내는 로그를 파싱해서 메트릭을 수집하는 익스포터인데 오타 수정으로 이 오픈소스의 컨트리뷰터가 되었다. ㅎㅎ prometheus-nginxlog-exporter 레포지토리를 가보면 Contributors에서 내 아이디를 확인할 수 있다. 여기서 2번째 열에 첫번째를 클릭하면 짜잔! 내 아이디인 gurumee92를 확인할 수 있다. ㅎㅎ 어떤 것을 했냐면,..