원서 : https://hyperledger-fabric.readthedocs.io/en/release-1.4/operations_service.html

  • peer 와 orderer 는 'RESTful API'를 제공하는 'HTTP 서버'를 호스팅 합니다.
  • 이 API는 Fabric 서비스와는 무관하고, 오직 운영을 위해 사용되어 집니다. 아래와 같은 기능이 있습니다.
    • Log레벨 관리
    • 헬스체크
    • 운영 metrics에 관한, Prometheus. 
  • Configuring the Operations Service
    • 운영 서비스를 하려면, 2가지 정도의 설정이 필요합니다.
    • "address 와 port" 및 "TLS 인증서 와 키"
    • Peer
      • 각 peer "core.yaml"의 'operations' 에서 설정을 하면 됩니다.
      • 예) operations:
        • listenAddress: 127.0.0.1:9443 // host를 생략하면, 모든All 의미
        • tls: ... // TLS 통신 설정
    • Orderer
      • 각 orderer "orderer.yaml"의 'operations' 에서 설정을 하면 됩니다.
      • 예) Operations:
        • listenAddress: 127.0.0.1:8443 // host를 생략하면, 모든All 의미
        • tls: ... // TLS 통신 설정
    • Operations Security
      • 운영 서비스는 운영을 위한것이지, Fabric 과 무관합니다.
      • 그래서 MSP를 사용해서, "접근제어" 하지 않습니다. (그대신 client 인증서 기반의 TLS으로 관리)
      • TLS 설정을 하지 않으면, 모든 client가 해당 API를 사용할수있는것 입니다.
      • TLS 설정을 하면, 유효한 client 인증서를 제공해야 해당 API를 사용할수있는것 입니다.
  • Log Level Management
    • 운영 서비스는 "/logspec" URL을 통해서, peer 와 orderer 의 'Log레벨'을 제공 합니다.
      • 예) HTTP "/logspec" GET 요청 -> 응답 {"spec":"info"}
      • 예) HTTP "/logspec" PUT {"spec":"chaincode=debug:info"} 요청 -> 응답 {...}
  • Health Checks
    • 운영 서비스는 "/healthz" URL을 통해서, peer 와 orderer 의 '헬스체크'를 제공 합니다. 
    • Kubernetes 와 연동이 되도록 설계되었고, 다른곳에 응용해서 사용해도 됩니다.
      • 예) HTTP "/logspec" GET 요청 ->
        • 성공응답 { "status": "OK", "time": "2009-11-10T23:00:00Z" }
        • 실패응답 { "status": "Service Unavailable", "time": "2009-11-10T23:00:00Z",
        • "failed_checks": [{ "component": "docker", "reason": "failed ... Docker ... invalid endpoint" }]}
  • Metrics
    • peer 및 orderer 가 시스템의 동작방식을 잘 설명해주는 metrics을 노출할수있습니다.
    • 운영자나 관리자가 이 metrics정보를 통해서, 시간경과에 따른 시스템 성능을 가늠 하게 됩니다.
    • Configuring Metrics
      • Fabric 에서는 두가지 방식으로 metrics을 노출 할 수 있습니다.
      • 'Prometheus' 기반의 pull 방식.
      • 'StatsD' 가반의 push 방식.
      • Prometheus
        • metrics를 요청에 관한, 응답을 처리하는 시스템.
        • Peer
          • "core.yaml"의 'metrics' 에서 설정
          • "/metrics" URL 제공
        • Orderer
          • "orderer.yaml"의 'Metrics' 에서 설정
          • "/metrics" URL 제공
      • StatsD
        • ...

-끝-

+ Recent posts