상태 확인 개입

상태 확인 방법은 자동화된 모니터링을 통해 rippled 서버가 정상적이지 않을 때를 인식하고 서버를 다시 시작하거나 관리자에게 경고하는 등의 신속한 개입을 위해 사용할 수 있습니다.

인프라 모니터링, 더 일반적으로 안정성 엔지니어링은 여러 데이터 소스를 사용하여 상황에 맞는 결정을 내리는 고급 분야입니다. 이 문서에서는 상태 확인을 가장 효과적으로 사용하는 방법에 대한 몇 가지 제안을 제공하지만, 이러한 권장 사항은 더 큰 전략의 일부로서 지침으로만 사용됩니다.

일시적인 실패

상태 확인의 일부 지표는 비정상적인 범위로 급격히 변동했다가 곧 자동으로 회복될 수 있습니다. 상태 점검에서 건강하지 않은 상태가 보고될 때마다 매번 경고를 보내는 것은 불필요하고 바람직하지 않습니다. 자동화된 모니터링 시스템은 상태 확인 방법을 자주 호출하되, 문제가 심각하고 지속적으로 발생하는 경우에만 더 높은 수준의 개입으로 조절해야 합니다.

예를 들어 초당 한 번씩 서버의 상태를 확인하는 경우 서버가 '경고' 상태를 연속 3회 보고하거나 5초 동안 4회 보고하면 경고를 발생시킬 수 있습니다. 또한 서버가 5초 동안 "심각" 상태를 두 번 보고하는 경우에도 경고를 발생시킬 수 있습니다. 일반적으로 서버가 "경고" 상태를 보고할 때마다 경고를 발생시키는 것은 과도합니다.

Tip:

서버는 일반적으로 시작 후 처음 몇 초 동안 "위험" 상태를 보고하고, 네트워크 연결을 설정한 후 "경고" 상태로 전환한 다음, 네트워크에 완전히 동기화되면 "정상" 상태를 보고합니다. 재시작 후 서버가 동기화될 때까지 5~15분 정도 기다린 후 추가 개입을 해야 합니다.

특수한 경우

특정 서버 구성의 경우 정상적으로 작동할 때에도 항상 경고 상태를 보고할 수 있습니다. 서버가 특수한 경우에 해당하는 경우에는 정상 상태와 실제 문제의 차이를 인식하도록 자동화된 모니터링을 구성해야 합니다. 여기에는 상태 확인 메소드에 대한 JSON 응답 본문을 구문 분석하고 해당 값을 예상 정상 범위와 비교하는 작업이 포함될 수 있습니다.

발생할 수 있는 특수한 사례의 몇 가지 예는 다음과 같습니다:

  • 비공개 피어는 일반적으로 알려진 서버에만 P2P 연결 수가 매우 적지만, 서버가 7개 이하의 피어에 연결되어 있는 경우 상태 검사에서 피어 메트릭에 경고를 보고합니다. 서버가 구성한 정확한 피어 수를 알고 해당 값을 확인해야 합니다.

  • 새 트랜잭션이 지속적으로 전송되지 않는 병렬 또는 테스트 네트워크에서는 네트워크가 새 트랜잭션을 최대 20초까지 기다린 후 새 ledger 버전의 유효성 검사를 시도하지만, 가장 최근에 유효성이 검사된 ledger가 7초 이상 지난 경우, 상태 검사에서 validated_ledger 메트릭에 경고를 보고합니다. 비프로덕션 네트워크에서 rippled를를 실행하는 경우, 트랜잭션이 정기적으로 전송되어야 한다는 것을 알지 못한다면 이 메트릭에 대한 경고 메시지를 무시하는 것이 좋습니다. XRP Ledger 프로토콜은 처리할 새 트랜잭션이 없더라도 최소 20초에 한 번씩 새 ledger 버전의 유효성을 검사하도록 설계되었기 때문에, 20초의 위험 수준에서 경고를 표시할 수도 있습니다.

제안된 개입

일시적인 장애가 아닌 상태 확인에 실패한 경우, 중단을 복구하기 위해 취해야 할 조치는 원인에 따라 달라집니다. 일부 유형의 장애를 자동으로 해결하도록 인프라를 구성할 수 있습니다. 다른 장애는 더 복잡하거나 중요한 장애를 조사하고 필요한 조치를 취할 수 있는 관리자의 개입이 필요하며, 조직의 구조에 따라 숙련도가 낮은 하위 관리자가 특정 문제를 독립적으로 해결할 수 있지만 더 크거나 복잡한 문제를 해결하려면 상위 관리자에게 전달해야 하는 등 다양한 수준의 관리자가 있을 수 있습니다. 대응 방법과 시기는 고유한 상황에 따라 달라질 수 있지만, 상태 확인 결과에 보고된 메트릭이 이러한 결정에 영향을 미칠 수 있습니다.

다음 섹션에서는 시도해 볼 수 있는 몇 가지 일반적인 개입 방법과 이러한 개입을 유도할 가능성이 가장 높은 상태 점검 상태를 제시합니다. 자동화된 시스템과 사람 관리자는 이러한 개입 및 기타 개입을 통해 선택적으로 전달할 수 있습니다:

  • 영향을 받는 서버에서 트래픽을 다른 곳으로 리디렉션합니다.

  • 서버 소프트웨어 또는 하드웨어를를 재시작합니다.

  • rippled 소프트웨어 업그레이드를 수행합니다.

  • 문제가 다른 곳에서 발생한 경우 네트워크를 조사합니다.

  • 하드웨어를 교체합니다.

트래픽 리디렉션

일반적인 안정성 기법은 하나 이상의 로드 밸런싱 프록시를 통해 중복 서버 풀을 실행하는 것입니다. rippled 서버에서는 이 작업을 수행할 수 있지만 유효성 검사기에서는 이 작업을 수행해서는 안 됩니다. 경우에 따라 로드 밸런서는 풀에 있는 서버의 상태를 모니터링하여 현재 정상으로 보고되는 서버로만 트래픽을 보낼 수 있습니다. 이렇게 하면 서버가 일시적으로 과부하가 걸렸을 때 이를 복구하고 활성 서버 풀에 자동으로 다시 가입할 수 있습니다.

상태가 좋지 않은 서버로부터 트래픽을 리디렉션하는 것은 특히 경고 상태를 보고하는 서버의 경우 적절한 대응책입니다. 위험 범위에 있는 서버는 더 중요한 개입이 필요할 수 있습니다.

재시작

가장 간단한 개입은 서버를 다시 시작하는 것입니다. 이렇게 하면 다음 메트릭을 비롯한 여러 유형의 장애와 관련된 일시적인 문제를 해결할 수 있습니다:

  • load_factor

  • peers

  • server_state

  • validated_ledger

rippled된 서비스만 다시 시작하려면 systemctl을 사용합니다:

$ sudo systemctl restart rippled.service

더 강력한 개입은 전체 기기를 재시작하는 것입니다.

Caution:

서버를 시작한 후 네트워크에 동기화하는 데 일반적으로 최대 15분이 소요됩니다. 이 시간 동안 상태 검사에서 위험 또는 경고 상태가 보고될 수 있습니다. 서버를 다시 시작하기 전에 자동화된 시스템에서 서버를 동기화할 수 있는 충분한 시간을 확보해야 합니다.

업그레이드

서버가 상태 검사에서 "amendment_blocked": true를 보고하는 경우, 이는 서버가 이해하지 못하는 프로토콜 수정을 XRP Ledger가 활성화했음을 나타냅니다. 네트워크의 수정된 규칙을 잘못 해석하여 손실을 초래하는 것을 방지하기 위해, 이러한 서버는 정상적으로 작동하는 대신 "수정 차단됨"이 됩니다.

개정 차단을 해결하려면 서버를 개정 사항을 이해하는 최신 소프트웨어 버전으로 업데이트하세요.

또한 소프트웨어 버그로 인해 서버가 동기화되지 않고 멈출 수 있습니다. 이 경우 서버 상태 메트릭이 경고 또는 위험 상태일 가능성이 높습니다. 최신 안정 릴리스를 사용하고 있지 않다면 업그레이드를 통해 이 문제를 일으킬 수 있는 알려진 문제에 대한 최신 수정 사항을 적용해야 합니다.

네트워크 조사

네트워크 연결이 불안정하거나 불충분하면 서버가 중단을 보고할 수 있습니다. 다음 메트릭의 경고 또는 위험 값은 네트워크 문제를 나타낼 수 있습니다:

  • peers

  • server_state

  • validated_ledger

이 경우 필요한 개입에는 다음과 같은 다른 시스템 변경이 포함될 수 있습니다:

  • 방화벽 규칙을 조정하여 필요한 트래픽이 서버에 도달하도록 허용하거나 외부로부터의 유해한 트래픽을 차단합니다.

  • 네트워크 인터페이스, 스위치, 라우터 또는 케이블을 재시작하거나 교체합니다.

  • 다른 네트워크 서비스 공급업체에 연락하여 해당 공급업체 측에서 문제를 해결하도록 합니다.

하드웨어 교체

하드웨어 오류 또는 하드웨어가 처리할 수 있는 부하보다 높은 부하로 인해 중단이 발생한 경우 일부 구성 요소 또는 전체 서버를 교체해야 할 수 있습니다.

XRP Ledger에 있는 서버의 부하량은 부분적으로 네트워크의 트랜잭션량에 따라 달라지며, 이는 유기적으로 변화합니다. 로드는 또한 사용 패턴에 따라 달라집니다. 상황에 맞는 적절한 하드웨어와 설정을 계획하는 방법은 용량 계획을 참조하세요.

다음 메트릭의 경고 또는 위험 값은 하드웨어가 부족함을 나타낼 수 있습니다:

  • load_factor

  • server_state

  • validated_ledger

Last updated