기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
EMQX MQTT 브로커 구성 요소(aws.greengrass.clientdevices.mqtt.EMQX
)는 클라이언트 디바이스와 Greengrass 코어 디바이스 간의 MQTT 메시지를 처리합니다. 이 구성 요소는 EMQX MQTT 5.0 브로커
이 브로커는 MQTT 5.0 프로토콜을 구현합니다. 이 프로토콜에는 세션 및 메시지 만료 간격, 사용자 속성, 공유 구독, 주제 별칭 등에 대한 지원이 포함되어 있습니다. MQTT 5는 하위 버전 MQTT 3.1.1과 호환되므로 Moquette MQTT 3.1.1 브로커를 실행하는 경우 EMQX MQTT 5 브로커를 바꿀 수 있고 바꾸더라도 클라이언트 디바이스는 평소대로 계속 연결되고 작동할 수 있습니다.
참고
클라이언트 디바이스는 Greengrass 코어 디바이스에 연결되어 처리할 MQTT 메시지와 데이터를 보내는 로컬 IoT 디바이스입니다. 자세한 내용은 로컬 IoT 디바이스와 상호 작용 단원을 참조하십시오.
버전
이 구성 요소에는 다음과 같은 버전이 있습니다.
-
2.0.x
-
1.2.x
-
1.1.x
-
1.0.x
유형
이 구성 요소는 일반 구성 요소(aws.greengrass.generic
)입니다. Greengrass nucleus는 구성 요소의 수명 주기 스크립트를 실행합니다.
자세한 내용은 구성 요소 유형 단원을 참조하십시오.
운영 체제
이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
Linux
Windows
요구 사항
이 구성 요소의 요구 사항은 다음과 같습니다.
-
코어 디바이스는 MQTT 브로커가 작동하는 포트에서 연결을 허용할 수 있어야 합니다. 이 구성 요소는 기본적으로 포트 8883에서 MQTT 브로커를 실행합니다. 이 구성 요소를 구성할 때 다른 포트를 지정할 수 있습니다.
다른 포트를 지정하고 MQTT 브리지 구성 요소를 사용하여 MQTT 메시지를 다른 브로커에 릴레이하는 경우 MQTT 브리지 v2.1.0 이상을 사용해야 합니다. 이 구성 요소에서 MQTT 브로커가 작동하는 포트를 사용하도록 구성합니다.
다른 포트를 지정하고 IP 감지기 구성 요소를 사용하여 MQTT 브로커 엔드포인트를 관리하는 경우 IP 감지기 v2.1.0 이상을 사용해야 합니다. 이 구성 요소에서 MQTT 브로커가 작동하는 포트를 보고하도록 구성합니다.
-
Linux 코어 디바이스에서는 다음과 같이 Docker가 코어 디바이스에 설치 및 구성되어 있습니다.
-
Greengrass 코어 디바이스에 Docker Engine
1.9.1 이상이 설치되어 있어야 합니다. 버전 20.10은 AWS IoT Greengrass 코어 소프트웨어에서 작동하는 것으로 확인된 최신 버전입니다. Docker 컨테이너를 실행하는 구성 요소를 배포하기 전에 코어 디바이스에 직접 Docker를 설치해야 합니다. -
Docker 데몬이 이 구성 요소를 배포하기 전에 코어 디바이스에서 시작되어 실행 중입니다.
-
이 구성 요소를 실행하는 시스템 사용자에게 루트 또는 관리자 권한이 있어야 합니다. 또는
docker
그룹의 시스템 사용자로 이 구성 요소를 실행하고 권한 없이 EQMX MQTT 브로커를 실행하도록 이 구성 요소의requiresPrivileges
옵션을false
로 구성할 수 있습니다.
-
-
EMQX MQTT 브로커 구성 요소는 VPC에서 실행할 수 있습니다.
-
EMQX MQTT 브로커 구성 요소는
armv7
플랫폼에서 지원되지 않습니다.
종속성
구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 단원에는 이 구성 요소의 릴리스된 버전에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. AWS IoT Greengrass 콘솔
다음 표에는 이 구성 요소의 버전 2.0.2에 대한 종속성이 나열되어 있습니다.
종속성 | 호환 버전 | 종속성 유형 |
---|---|---|
클라이언트 디바이스 인증 | >=2.2.0 <2.6.0 | 소프트 |
구성 요소 종속성에 대한 자세한 내용은 구성 요소 레시피 참조를 참조하세요.
구성
이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.
중요
MQTT 5 브로커(EMQX) 구성 요소의 버전 2를 사용하는 경우 구성 파일을 업데이트해야 합니다. 버전 1 구성 파일은 버전 2에서 작동하지 않습니다.
- emqxConfig
-
(선택 사항) 사용할 EMQX MQTT 브로커
구성입니다. 이 구성 요소에서 EMQX 구성 옵션을 설정할 수 있습니다. EMQX 브로커를 사용하는 경우 Greengrass에서는 기본 구성을 사용합니다. 이 필드를 사용하여 수정하지 않는 한 이 구성이 사용됩니다.
다음 구성 설정을 수정하면 EMQX 브로커 구성 요소가 다시 시작됩니다. 다른 구성 변경 사항은 구성 요소를 다시 시작하지 않고 적용됩니다.
-
emqxConfig/cluster
-
emqxConfig/node
-
emqxConfig/rpc
참고
aws.greengrass.clientdevices.mqtt.EMQX
를 사용하면 보안상 중요한 옵션을 구성할 수 있습니다. 여기에는 TLS 설정, 인증 및 권한 부여 공급자가 포함됩니다. 상호 TLS 인증과 Greengrass 클라이언트 디바이스 인증 공급자를 사용하는 기본 구성을 사용하는 것이 좋습니다.예: 기본 구성
다음 예제에서는 MQTT 5(EMQX) 브로커의 기본 설정을 보여줍니다.
emqxConfig
구성 설정을 사용하여 이러한 설정을 재정의할 수 있습니다.{ "authorization": { "no_match": "deny", "sources": [] }, "node": { "cookie": "
<placeholder>
" }, "listeners": { "ssl": { "default": { "ssl_options": { "keyfile": "{work:path}\\data\\key.pem", "certfile": "{work:path}\\data\\cert.pem", "cacertfile": null, "verify": "verify_peer", "versions": ["tlsv1.3", "tlsv1.2"], "fail_if_no_peer_cert": true } } }, "tcp": { "default": { "enabled": false } }, "ws": { "default": { "enabled": false } }, "wss": { "default": { "enabled": false } } }, "plugins": { "states": [{"name_vsn": "gg-1.0.0", "enable": true}], "install_dir": "plugins" } } -
- authMode
-
(선택 사항) 브로커의 권한 부여 공급자를 설정합니다. 다음 값 중 하나일 수 있습니다.
-
enabled
– (기본값) Greengrass 인증 및 권한 부여 공급자를 사용합니다. -
bypass_on_failure
– Greengrass 인증 공급자를 사용한 다음 Greengrass에서 인증 또는 권한 부여를 거부하는 경우 EMQX 공급자 체인의 나머지 인증 공급자를 사용합니다. -
bypass
– Greengrass 공급자가 비활성화되었습니다. 인증 및 권한 부여가 EMQX 공급자 체인에 의해 처리됩니다.
-
requiresPrivilege
-
(선택 사항) Linux 코어 장치에서 루트 또는 관리자 권한 없이 EMQX MQTT 브로커를 실행하도록 지정할 수 있습니다. 이 옵션을
false
로 설정하면 이 구성 요소를 실행하는 시스템 사용자가docker
그룹의 구성원이어야 합니다.기본값:
true
startupTimeoutSeconds
-
(선택 사항) EMQX MQTT 브로커가 시작되는 최대 시간(초)입니다. 이 제한 시간이 초과되면 구성 요소의 상태가
BROKEN
으로 변경됩니다.기본값:
90
ipcTimeoutSeconds
-
(선택 사항) 구성 요소에서 Greengrass nucleus가 프로세스 간 통신(IPC) 요청에 응답할 때까지 기다리는 최대 시간(초)입니다. 이 구성 요소가 클라이언트 디바이스에 권한이 있는지 확인할 때 제한 시간 오류를 보고하는 경우 이 수를 늘립니다.
기본값:
5
crtLogLevel
-
(선택 사항) AWS 공통 런타임(CRT) 라이브러리의 로그 수준입니다.
기본값은 EMQX MQTT 브로커 로그 수준(
emqx
의log.level
)입니다. restartIdentifier
-
(선택 사항) EMQX MQTT 브로커를 다시 시작하려면 이 옵션을 구성합니다. 이 구성 값이 변경되면 이 구성 요소는 MQTT 브로커를 다시 시작합니다. 이 옵션을 사용하여 클라이언트 디바이스의 연결을 강제로 해제할 수 있습니다.
dockerOptions
-
(선택 사항) Linux 운영 체제에서만 Docker 명령줄에 파라미터를 추가하려면 이 옵션을 구성합니다. 예를 들어 추가 포트를 매핑하려면
-p
Docker 파라미터를 사용합니다."-p 1883:1883"
예: v1.x 구성 파일을 v2.x로 업데이트
다음 예제에서는 v1.x 구성 파일을 버전 2.x로 업데이트하는 데 필요한 변경 사항을 보여줍니다.
버전 1.x 구성 파일:
{
"emqx": {
"listener.ssl.external": "443",
"listener.ssl.external.max_connections": "1024000",
"listener.ssl.external.max_conn_rate": "500",
"listener.ssl.external.rate_limit": "50KB,5s",
"listener.ssl.external.handshake_timeout": "15s",
"log.level": "warning"
},
"mergeConfigurationFiles": {
"etc/plugins/aws_greengrass_emqx_auth.conf": "auth_mode=enabled\n use_greengrass_managed_certificates=true\n"
}
}
이와 동일한 v2의 구성 파일:
{
"emqxConfig": {
"listeners": {
"ssl": {
"default": {
"bind": "8883",
"max_connections": "1024000",
"max_conn_rate": "500",
"handshake_timeout": "15s"
}
}
},
"log": {
"console": {
"enable": true,
"level": "warning"
}
}
},
"authMode": "enabled"
}
listener.ssl.external.rate_limit
구성 항목과 동일한 항목은 없습니다. use_greengrass_managed_certificates
구성 옵션은 제거되었습니다.
예: 브로커의 새 포트 설정
다음 예제에서는 MQTT 브로커가 작동하는 포트를 기본값인 8883에서 포트 1234로 변경합니다. Linux를 사용하는 경우 dockerOptions
필드를 포함합니다.
{
"emqxConfig": {
"listeners": {
"ssl": {
"default": {
"bind": 1234
}
}
}
},
"dockerOptions": "-p 1234:1234"
}
예: MQTT 브로커의 로그 수준 조정
다음 예제에서는 MQTT 브로커의 로그 수준을 debug
로 변경합니다. 다음 로그 수준 중에서 선택할 수 있습니다.
-
debug
-
info
-
notice
-
warning
-
error
-
critical
-
alert
-
emergency
기본 로그 수준은 warning
입니다.
{
"emqxConfig": {
"log": {
"console": {
"level": "debug"
}
}
}
}
예: EMQX 대시보드 활성화
다음 예제에서는 브로커를 모니터링하고 관리할 수 있도록 EMQX 대시보드를 활성화합니다. Linux를 사용하는 경우 dockerOptions
필드를 포함합니다.
{
"emqxConfig": {
"dashboard": {
"listeners": {
"http": {
"bind": 18083
}
}
}
},
"dockerOptions": "-p 18083:18083"
}
로컬 로그 파일
이 구성 요소는 다음 로그 파일을 사용합니다.
/logs/aws.greengrass.clientdevices.mqtt.EMQX.log
/greengrass/v2
이 구성 요소의 로그를 보려면
-
Core 디바이스에서 다음과 같은 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다.
또는/greengrass/v2
C:\greengrass\v2
를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.sudo tail -f
/logs/aws.greengrass.clientdevices.mqtt.EMQX.log/greengrass/v2
라이선스
Windows 운영 체제에서 이 소프트웨어에는 Microsoft 소프트웨어 라이선스 조건 - Microsoft Visual Studio Community 2022
이 구성 요소는 Greengrass 코어 소프트웨어 라이선스 계약
Changelog
다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.
버전 |
변경 사항 |
---|---|
2.0.2 |
|
2.0.1 |
클라이언트 디바이스 인증 버전 2.5.0 릴리스에 대한 버전이 업데이트되었습니다. |
2.0.0 |
이 버전의 MQTT 5 브로커(EMQX)에는 버전 1.x와 다른 구성 파라미터가 필요합니다. 버전 1.x에 기본값이 아닌 구성을 사용하고 있는 경우 2.x에 맞게 구성 요소의 구성을 업데이트해야 합니다. 자세한 내용은 구성 단원을 참조하십시오.
|