안녕하세요~~ 저희는 공공의 적 팀입니다~~<(*^.^*)/
AWS MSK ?
-> Amazon Managed Streaming for Apache Kafka(Amazon MSK)는 Apache Kafka를 사용하여 스트리밍 데이터를 처리하는 애플리케이션의 구축 및 실행을 위해 사용할 수 있는 완전관리형 서비스입니다
설치
- MSK 클라이언트 머신이 아직 없는 경우 생성**
(1) 인스턴스 생성
- 퍼블릭 IP할당 또는 고정 IP(EIP) 할당 받아서 생성(이미지에서는 임시로 퍼블릭 ip 할당)
- 인스턴스 시작 클릭
(2) 보안그룹 지정
보안그룹을 방금 생성한 MSK 클라이언트 EC2 인스턴스와 MSK의 통신이 이루어질 수 있도록
상호간 통신 오픈
이미지 상에서는 MSK 보안그룹에 대하여 모든 트래픽을 허용하였기 때문에 같은 보안그룹을 소지하고 있는 클라이언트 인스턴스와 MSK가 통신이 가능하다
aws docs : https://docs.aws.amazon.com/msk/latest/developerguide/create-client-machine.html
- 새 규칙 의 유형 열 에서 모든 트래픽 을 선택합니다. 소스 열의 두 번째 필드에서 클라이언트 컴퓨터의 보안 그룹을 선택합니다. 클라이언트 머신 인스턴스를 시작한 후 이름을 저장한 그룹입니다.
- 규칙 저장을 선택합니다 . 이제 클러스터의 보안 그룹은 클라이언트 시스템의 보안 그룹에서 오는 트래픽을 수락할 수 있습니다.
정책가 부여 되었거나 이에 상응하는 정책을 사용할 수 있는지 확인
AmazonMSKReadOnlyAccess 정책 IAM 역할에 추가
- 인스턴스에 IAM 적용
2. JmxExporter 및 NodeExporter를 활성화 하려면 MSK 측에서 Prometheus로 개방형 모니터링 을 활성화
(1) 클러스터 생성
AWS MSK 콘솔 접속 후 클러스터 생성 클릭
사용자 정의 생성으로 해야만 클러스터가 제대로 설치된다(프로비저닝이 아닌 서버리스 선택 시 모니터링 활성화 불가능)
원하는 설정 선택후 MSK 클라이언트 인스턴스와 같은 보안그룹 지정
**** Prometheus 모니터링 활성화 (필수)**
(2) 클라이언트 인스턴스에서 Prometheus 호스트 설정(Prometheus 설치 및 실행)
https://prometheus.io/download/#prometheus 에서 Prometheus 서버를 다운로드
- Prometheus 다운로드
- Prometheus 압축해제
tar -zxvf prometheus-2.37.0.linux-amd64
- 압축 해제한 파일로 이동
cd prometheus-2.37.0.linux-amd64/
- Prometheus yml 파일 생성
vi prometheus.yml
# file: prometheus.yml
# my global config
global:
scrape_interval: 60s
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
static_configs:
# 9090 is the prometheus server port
- targets: ['localhost:9090']
- job_name: 'broker'
file_sd_configs:
- files:
- 'targets.json'
- AWS 콘솔 MSK 속성 탭에서 클러스터의 브로커 ID 확인
브로커가 2개에 ID는 각각 1, 2 이다 (aws kafka list-nodes --cluster-arn 명령어로도 확인가능하나 aws cli와 연동하고 mfa를 활성화 하여야 한다)
- prometheus.yml 같은 파일위치에서 targets.json 생성
vi targets.json
[
{
"labels": {
"job": "jmx"
},
"targets": [
"broker_dns_1:11001", # broker dns자리에 브로커 ID 1 입력
"broker_dns_2:11001", # broker dns자리에 브로커 ID 2 입력
.
.
.
"broker_dns_N:11001"
]
},
{
"labels": {
"job": "node"
},
"targets": [
"broker_dns_1:11002", # broker dns자리에 브로커 ID 1 입력
"broker_dns_2:11002", # broker dns자리에 브로커 ID 2 입력
.
.
.
"broker_dns_N:11002"
]
}
]
- Amazon EC2 인스턴스에서 Prometheus 서버를 시작
- ./prometheus
- Prometheus 서버 확인
퍼블릭, 또는 고정 ip 주소:9090 입력하여 웹으로 접속( 보안그룹에서 9090 포트 오픈)
이후 웹에서 Prometheus 서버 상태 확인
'CSP (Cloud Service Provider) > AWS' 카테고리의 다른 글
AWS Windows 서버 설치 및 접속방법 (0) | 2022.12.21 |
---|---|
AWS S3 엑세스 로깅 활성화 (0) | 2022.12.21 |
EFS (Amazon Elastic File System) (0) | 2022.12.20 |
AWS Backup (0) | 2022.12.20 |
CPU/디스크/메모리 (1) (0) | 2022.12.20 |
댓글