자바 는 Prometheus 로 실시 간 모니터링 시스템 구축 과정 에 대한 상세 한 설명
7600 단어 JavaPrometheus실시 간 모니터링
이 시 리 즈 는 오픈 소스 실시 간 감시 경고 솔 루 션 인 프로 메 테 우 스 를 다 루 고 있다.매번 나 는 하느님 의 불 을 가 져 온 그리스의 신 프로 메 테 우 스 를 연상 할 수 있다.이 오픈 소스 로고 도 불 이 라 개인 적 으로 이 로고 디자인 을 좋아 합 니 다.
본 시 리 즈 는 Prometheus 와 그 주변의 생태 로 자신 만 의 실시 간 모니터링 경고 플랫폼 을 구축 하 는 데 중심 을 두 고 있다.
본 시리즈 의 시청자 대상 은 Prometheus 를 처음 접 하 는 사용자 이 고 큰 신 은 뿌리 지 않 으 며 조작 과 실전 에 편중 되 지만 중요 한 개념 도 언급 된다.시 리 즈 는 주로 다음 과 같은 몇 조각 으로 나 뉜 다.
Prometheus 는 현재 Github 에서 3w 가 넘 는 star 를 가지 고 있 습 니 다.대체적으로 수많은 스타 의 오픈 소스 도 구 를 가지 기 때문에 지역사회 에서 절대적 인 주류 라 고 할 수 있 고 지역사회 도 상당히 활발 하 며 많은 경험 을 참고 할 수 있 습 니 다.기업 급 시스템 에 서 는 안심 하고 사용 할 수 있다.
Prometheus 는 SoundCloud 가 개발 한 오픈 소스 모니터링 경보 시스템 과 시간 시퀀스 데이터베이스 다.말 그대로 Prometheus 는 두 부분 으로 구성 되 는데 하 나 는 감시 경보 시스템 이 고 다른 하 나 는 자체 적 으로 가지 고 있 는 순차 데이터베이스(TSDB)이다.
순차 데이터베이스(TSDB)에 대해 서 는 시간 서열 데 이 터 를 최적화 한 후에 처리 하 는 데이터 베이스 로 간단하게 이해 할 수 있 고 데이터 중의 배열 은 시간 에 의 해 색인 된다.전통 적 인 구조 화 데이터베이스 에 비해 몇 가지 장점 이 있다.
https://prometheus.io/
Prometheue 홈 페이지 에서 탭 을 다운로드 합 니 다.여 기 는 Liux 버 전 을 예 로 들 면:다운로드 후,압축 해제,실행
nohup /data/prometheus/prometheus --web.listen-address=0.0.0.0:9090 --config.file=/data/prometheus/prometheus.yml --web.enable-lifecycle --storage.tsdb.path=/data/prometheus/data --storage.tsdb.retention.time=15d &
이렇게 해서 간단하게 Prometheus 서버 를 만 들 었 습 니 다.이때,우 리 는 웹 에서 방문 할 수 있다.http://127.0.0.1:9090
관리 페이지 에 접근 할 수 있 습 니 다.화면 위의 몇 개의 태그 설명:
Alert:경고 규칙 을 설정 하 는 데 사용 합 니 다.이후 에 우 리 는 Grafana 자체 의 경고 인터페이스 설정 으로 이것 을 대체 할 것 이다.
Graph:PromQL 문 구 를 실행 하 는 콘 솔 입 니 다.실행 중인 문 구 를 도형 화 할 수 있 습 니 다.이 블록 은 다음 장 에서 소개 합 니 다.
Status:시스템 정보,시스템 상태,설정 정보,목표 노드 의 상태,서비스 발견 상태 등 메타 정 보 를 조회 합 니 다.
Prometheus 전체 구조 및 생태
이 그림 은 정부의 전체적인 구조 도이 다.베이지색 부분 은 Prometheus 자체 의 구성 요소 이 고 녹색 은 제3자 의 미들웨어 와 응용 이다.
전체 Prometheus 의 생태 구 조 를 간단하게 소개 합 니 다.
데 이 터 를 끌어당기다
Prometheus 는 주로 끌 어 당 기 는 방식 으로 데 이 터 를 가 져 옵 니 다.쉽게 말 하면 설정 한 target 에 고정 시간 마다 접근 하 는 것 입 니 다.target 은 데 이 터 를 가 져 오 는 url 입 니 다.
지금 우 리 는 데이터 원본 을 모 의 해서 prometheus 에 게 가 져 오 라 고 할 것 이다.
springboot 웹 프로젝트 를 새로 만 듭 니 다.pom 의존 플러스
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
application.properties 에
server.port=8080
anagement.endpoints.web.exposure.include=*
시작 이 끝 난 후에 우 리 는 페이지 에서 다음 주 소 를 방문 할 수 있 습 니 다.http://127.0.0.1:8080/actuator/prometheus
다음 데 이 터 를 가 져 옵 니 다:actuator 가 응용 지표 와 사용자 정의 지 표를 어떻게 감시 하 는 지 에 대해 저 는 다음 시리즈 에서 단독으로 분석 할 것 입 니 다.여 기 는 저희 가 서 비 스 를 시작 했다 고 이해 하고 url 을 제공 하면 kv 형식의 지 표를 열거 할 수 있 습 니 다.
예 를 들 어 jvmmemory_max_bytes{area="heap",id="PS Old Gen",}2.863661056E 9 이 지 표 는 앞 에는 key 이 고 뒤 에는 value 입 니 다.
그 중에서 key 는 key name 과 key labels 로 나 뉘 는데 key name 은 바로'jvm'입 니 다.memory_max_bytes,key labels 는 두 개 있 습 니 다.
이 지 표 는 jvm 의 최대 메모 리 를 제공 합 니 다.그 중에서 area 는 힙 입 니 다.이것 은 메모리 영역 임 을 나타 내 고 id 는 PS Old Gen 이 며 이것 은 오래된 시대 임 을 나타 냅 니 다.종합 적 으로 보면 이 지 표 는 jvm 에서 오래된 시대 의 최대 치 이다.수치 유형 은 byte 로 환산 해 보면 약 286 M 정도 입 니 다.
저 희 는 지표 데이터 원본 이 있 으 면 prometheus 의 루트 디 렉 터 리 에서 prometheus.yml 파일 을 편집 하고 다음 과 같은 설정 을 추가 합 니 다.
- job_name: 'test'
scrape_interval: 5s
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['localhost:8080']
labels:
instance: demo
이 설정 은 prometheue 가 5 초 간격 으로http://localhost:8080/actuator/prometheus이 url 은 지 표를 끌 어 내 고 모든 지표 에 intance 라 는 탭 을 추가 합 니 다.추가 완료 후 prometheus 를 다시 시작 합 니 다.웹 페이지 의 targets 페이지 에 들 어 갑 니 다.앞의 절차 에 문제 가 없다 면 다음 과 같이 볼 수 있 습 니 다.
상 태 는 UP 이 prometheue 가 이 target 의 데 이 터 를 성공 적 으로 얻 었 음 을 나타 낸다.
검색 페이지 에 방금 그 지표의 키 를 입력 하 십시오:
여기 있 는 모든 value 는 prometheus 가 최근 에 캡 처 한 데이터 입 니 다.네가 매번 실행 할 때마다 데이터 가 변 한다.
여기 에는 왜 여러 개의 데이터 가 있 을 까?지표 마다 라벨 이 다 르 기 때문이다.똑 같은 라벨 은 하나의 지표 로 분류 된다.
그래프 를 누 르 면 시간 서열 에서 특정한 지표의 변화 추 세 를 볼 수 있 습 니 다.
위의 그림 은 시스템 cpu 지표의 변화 도 를 보 여 준다.
마지막.
현재 마이크로 서비스 가 유행 하고 소 규모 기업 의 마이크로 서비스 노드 도 백 개가 다 되 어 가 며 Prometheus 생태 는 최소 의 대가 로 모든 데 이 터 를 실시 간 으로 시각 화 할 수 있다.이것 은 개발 과 운영 에 있어 모든 데 이 터 는 더 이상 블랙박스 가 아니 라 적어도 저 는 개인 적 으로 모든 데이터 가 관측 되 고 분석 되 며 안정 감 을 가진다 고 생각 합 니 다.
이 시 리 즈 는 실전 조작 을 이용 하여 한 걸음 한 걸음 자신의 시스템 과 업무 감 시 를 구축 하 는 것 을 가 르 치 는 데 목적 을 둔다.나중에 계속 업데이트 할 게 요.다음 장 에 서 는 pushgateway 를 구축 하여 push 데 이 터 를 prometheus 에 구축 하고 2 가지 서로 다른 데이터 획득 방식 을 각각 어떤 장면 에 사용 하 는 지 분석 할 것 이다.
프로 메 테 우 스 로 실시 간 모니터링 시스템 을 구축 하 는 과정 에 대한 상세 한 하나님 의 불,프로 메 테 우 스 의 굴기 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.프로 메 테 우 스 로 실시 간 모니터링 시스템 을 구축 하 는 내용 은 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.