번역:
Go IoT 개발 플랫폼은 Go 프로그래밍 언어를 사용하여 개발된 무료이고 효율적이며 확장 가능한 사물 인터넷(IoT) 솔루션입니다. 플랫폼은 MQTT, HTTP, WebSocket, COAP, TCP/IP 등의 데이터 전송 프로토콜을 지원하며 JavaScript 기반의 알람 기능 및 데이터 통계 서비스를 위한 경량 구성 도구를 제공합니다.
공식 홈페이지: http://iot-dev-egi.pages.dev/
저장소 주소: https://github.com/iot-ecology/go-iot-platform
React 개발 엔지니어를 찾고 있습니다. 여러분의 참여를 환영합니다.
EMQX는 언제든지 많은 장치로부터 2차 수준 데이터 보고서를 수신할 수 있지만 이는 일반적인 비즈니스 프로세스를 따르지 않을 수 있습니다. 예를 들어, 일반적인 상황에서는 장치가 5분마다 한 번씩 데이터를 보고할 수 있습니다. 보고 장치가 합법적인지 확인하려면 해당 장치가 악성 장치일 수 있는지 여부를 감지하고 EMQX의 안정성에 영향을 미치기 위해 의도적으로 데이터를 자주 보고하는 방법이 필요합니다.
물리적 장치 세부 정보: 물리적 장치 세부 정보(DeviceInfo)에는 푸시 간격(초) 및 푸시 시간 오류(초)라는 두 가지 주요 필드가 있습니다. 이 두 필드를 통해 기기의 보고 동작이 비정상적인지 여부를 판단하고 후속 논리적 처리를 진행할 수 있습니다.
기기의 보고 속도가 푸시 간격 및 오류 내에 있는지 여부와 오류 범위를 벗어나는지 여부를 계산하려면 먼저 몇 가지 변수와 조건을 정의해야 합니다.
실제 푸시 간격( T_{\text{actual}} )이 다음 조건을 충족하는 경우 장치의 속도는 푸시 간격 및 오류 내에 있는 것으로 간주됩니다.
[ T - E \leq T_{\text{실제}} \leq T E ]
실제 푸시 간격( T_{\text{actual}} )이 위 조건을 충족하지 않는 경우 장치의 속도는 오류를 벗어난 것으로 간주됩니다. 즉:
[ T_{\text{실제}} T E ]
추정하다:
[ T_{\text{실제}} = (10:01:05 - 10:00:00) = 65 \text{초} ]
[ 60 - 5 \leq 65 \leq 60 5 ]
[ 55 \leq 65 \leq 65 ]
( 55 \leq 65 \leq 65 )이 참이므로 장치의 속도는 푸시 간격 및 오류 내에 있습니다.
( 65 )가 ( 60 5 )보다 작지 않으므로 장치의 속도는 오차 범위를 벗어나지 않습니다.
이 방법을 사용하면 장치의 실제 푸시 간격을 정확하게 계산할 수 있으며, 설정된 푸시 간격 및 오류 규칙을 준수하는지 추가로 분석할 수 있습니다.
앞서 언급한 계산 방법을 통해 보고된 데이터가 예상 푸시 간격 및 오류 범위를 준수하는지 여부를 확인할 수 있습니다. 일반적으로 이 범위에 해당하는 데이터는 정상으로 간주하여 처리해야 하며, 이 범위를 벗어나는 데이터는 비정상으로 간주하여 폐기해야 합니다. Go IoT 개발 플랫폼에서는 이러한 비정상적인 데이터에 대해 다음과 같은 조치를 취합니다.
데이터 폐기: 푸시 간격 및 오류 범위를 초과하는 데이터를 직접 폐기합니다. 메시지 대기열에서 메시지를 사용할 때 영구 저장 없이 이러한 데이터를 직접 ACK(승인)합니다.
EMQX 서버 관리 도구를 통한 유지 관리
EMQX의 블랙리스트 기능을 사용하면 악성 또는 비정상 신고 클라이언트를 제한할 수 있습니다. 다음은 객체 비활성화의 장점과 단점 및 해당 사용 사례에 대한 자세한 분석입니다.
비활성화된 개체 | 장점 | 단점 | 사용 사례 |
---|---|---|---|
클라이언트 ID | - 정밀도가 높으며 특정 클라이언트를 직접 제한할 수 있습니다. - 구현이 쉽고 일반적으로 클라이언트 ID는 고유하며 관리 및 추적이 쉽습니다. |
- 클라이언트가 ID를 변경한 경우 다시 블랙리스트에 추가해야 합니다. - 클라이언트 ID를 식별하고 기록하기 위한 메커니즘이 필요합니다. |
- 개별 장치나 클라이언트에 대한 정밀한 제어가 필요한 시나리오에 적합합니다. - 보고 장치의 MQTT 클라이언트 ID를 쉽게 식별하고 기록할 수 있는 경우 |
사용자 이름 | - 동일한 사용자 이름을 사용하여 장치 그룹을 관리할 수 있습니다. - 장치 그룹 관리를 단순화합니다. |
- 개별 장치의 정밀한 제어가 필요한 시나리오에는 적합하지 않습니다. - 장치가 사용자 이름을 공유하는 경우 합법적인 장치가 잘못 제한될 수 있습니다. |
- 장치가 일괄적으로 또는 규칙에 따라 동일한 계정 비밀번호를 사용하는 시나리오에 적합합니다. - 장치 관리가 더욱 중앙 집중화되고 개별 장치에 대한 세부적인 제어가 필요하지 않은 경우. |
IP 주소 | - 특정 IP 주소의 모든 요청을 신속하게 제한할 수 있습니다. - 고정 IP 주소가 있는 장치에 간단하고 효과적입니다. |
- 동적 IP 또는 모바일 장치에는 효과적이지 않습니다. - 동일한 IP에서 다른 합법적인 장치를 실수로 제한할 수 있습니다. |
- 장치에 고정 IP 주소가 있는 시나리오에 적합합니다. - 특정 IP의 트래픽을 신속하게 제한해야 하고 해당 IP 아래에 다른 합법적인 장치가 없는 경우. |
위 3가지 항목은 클라이언트 ID를 먼저 우선시해야 합니다.
EMQX는 관리자가 서버에서 특정 MQTT 클라이언트를 제거할 수 있는 API 인터페이스를 제공합니다. MQTT 클라이언트가 재연결 메커니즘을 구현한 경우 이를 제거하는 것만으로는 클라이언트가 완전히 제거되지 않을 수 있다는 점에 유의해야 합니다.
참조: EMQX 문서 - 클라이언트 제외
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3