프로 메 테 우 스-당신 의 업무 모니터링 플랫폼 을 신속하게 구축 하 세 요.

3742 단어 자바
Prometheus 가 뭐 예요?
프로 메 테 우 스(프로 메 테 우 스)는 이름 이 매우 멋 진 오픈 소스 모니터링 시스템 이다.
이 는 다 차원 적 인 지표 데이터 모델 을 지원 하고 서버 가 HTTP 프로 토 콜 을 통 해 정 해진 시간 에 데 이 터 를 끌 어 낸 후 유연 한 조회 언어 를 통 해 모니터링 의 목적 을 실현 한다.
위의 그림 과 같이 클 라 이언 트 는 관련 지표 데 이 터 를 기록 하고 대외 적 으로 조회 인 터 페 이 스 를 제공한다.Prometheus 서버 에서 서버 발견 메커니즘 을 통 해 클 라 이언 트 를 찾 고 시간 시퀀스 데이터 로 저 장 된 데 이 터 를 정기 적 으로 캡 처 합 니 다.마지막 으로 Grafana 등 도표 도 구 를 통 해 통합 전시 합 니 다.
Prometheus 는 무엇 을 할 수 있 습 니까?
  • 은 업무 층 에서 매장 시스템 Prometheus 로 각 주류 개발 언어(Go,자바,python,ruby 공식 제공 클 라 이언 트,기타 언어 는 제3자 오픈 소스 클 라 이언 트)를 지원 합 니 다.우 리 는 클 라 이언 트 측의 핵심 업 무 를 매장 할 수 있다.예 를 들 어 다음 절차,카 트 절 차 를 추가 합 니 다.
  • 응용 층 에서 응용 감시 시스템 의 일부 주류 응용 은 정부 또는 제3자 의 도 출 기 를 통 해 이런 응용 을 핵심 기준 으로 수집 할 수 있다.예 를 들 어 redis,my sql.
  • 은 시스템 층 에서 시스템 모니터링 에 자주 사용 되 는 소프트웨어 를 제외 하고 prometheus 도 관련 시스템 층 과 네트워크 층 exporter 가 있어 서버 나 네트워크 를 모니터링 한다.
  • 다른 모니터링 prometheus 를 통합 하면 각종 exporte 를 통 해 다른 모니터링 시스템 을 통합 하고 모니터링 데 이 터 를 수집 할 수 있다.예 를 들 어 AWS CloudWatch,JMX,Pingdom 등 이다.

  • Prometheus 로 뭐 하지 마 세 요.
    prometheus 도 Grok exporter 등 도 구 를 제공 하여 로 그 를 읽 을 수 있 지만 prometheus 는 모니터링 시스템 이지 로그 시스템 이 아 닙 니 다.응용 로 그 는 ELK 등 도구 창 고 를 가 야 합 니 다.
    Prometheus 와 spring boot 통합
  • Prometheus 에서 서 비 스 를 설정 한 결과
  • - job_name: 'consul' consul_sd_configs: - server: '192.168.1.248:8500' relabel_configs: - source_labels: [__meta_consul_service] regex: .*,prometheus.* target_label: job metrics_path: '/prometheus'
  • maven 에 관련 의존 도 를 추가 합 니 다
      
      
          io.prometheus
          simpleclient 
       
      
      
          io.prometheus
          simpleclient_servlet 
      
      
          io.prometheus
          simpleclient_spring_boot 
      
  • 닫 기 spring boot 원생 metrics spring.metrics.servo.enabled: false
  • 응용 프로그램 클래스 에 주석 추가@EnablePrometheusEndpoint@EnableSpringBootMetricsCollector
  • 업무 클래스 정의 매장 static final Counter orderCount=Counter.build().name("b2corder_count").help("order count.").labelNames("shop","siteUid").register();
  • 업무 매장 orderCount.labels("shein","mus").inc();

  • Prometheus 모니터링 nginx
    Prometheus 는 nginx-lua-prometheus 라 이브 러 리 를 통 해 nginx 를 묻 을 수 있 습 니 다.
    사용 하기 도 매우 간단 하 다.
    lua_shared_dict prometheus_metrics 10M;
    lua_package_path "/path/to/nginx-lua-prometheus/?.lua";
    init_by_lua '
      prometheus = require("prometheus").init("prometheus_metrics")
      metric_requests = prometheus:counter(
    "nginx_http_requests_total", "Number of HTTP requests", {"host", "status"})
      metric_latency = prometheus:histogram(
    "nginx_http_request_duration_seconds", "HTTP request latency", {"host"})
      metric_connections = prometheus:gauge(
    "nginx_http_connections", "Number of HTTP connections", {"state"})
    ';
    log_by_lua '
      local host = ngx.var.host:gsub("^www.", "")
      metric_requests:inc(1, {host, ngx.var.status})
      metric_latency:observe(ngx.now() - ngx.req.start_time(), {host})
    ';

    그러나 기준 테스트 를 통 해 히 스 토 그램 유형의 지 표를 사용 한 것 으로 밝 혀 지면 물동량 이 5%-10%가량 줄어든다.
    총결산
    Prometheus 를 통 해 우 리 는 업무 모니터링 시스템 을 신속하게 구축 할 수 있 고 핵심 응용의 모니터링 수단 도 증가 할 수 있다.우리 의 모니터링 채널 을 풍부 화시 키 고 zabbix,zipkin,ELK,Grafana 등 도구 와 결합 하여 전방위 적 으로 당신 의 시스템 을 통제 할 수 있 습 니 다.
    관련 자료:
    https://prometheus.io/
    https://github.com/knyar/nginx-lua-prometheus

    좋은 웹페이지 즐겨찾기