VIGI 카메라에 알람 서버를 설정하는 방법
목차
서론
알람 서버는 알람 이벤트가 발생했을 때 VIGI 카메라와 VIGI NVR이 능동적으로 보고하는 이벤트 메시지를 수신하는 기능입니다.
장치 소프트웨어 버전 업데이트에 따라 이벤트 유형, 이벤트 타임스탬프, 장치 세부정보, 이벤트 스냅샷 이미지(선택사항) 등 다양한 정보가 보고서에 점진적으로 들어갈 예정입니다.
이 기능을 통해 VIGI 장치와 타사 시스템 간의 원활한 알람 연동 및 작업 처리가 가능합니다.
이 문서에서는 VIGI 장치에서 알람 서버 기능을 설정하는 방법을 설명할 뿐만 아니라, 서버 연결 실패, 비정상적인 장치 데이터 보고, 서버 측 파싱 오류와 같은 잠재적 문제에 대한 문제 해결 가이드도 확인할 수 있습니다.
요구 사항
- VIGI 카메라/NVR
- 알람 서버
- 노트북
설정
VIGI 카메라와 VIGI NVR 간의 통신에 사용되는 메시지 형식과 파싱 과정은 동일하므로 이 문서에서는 설명을 위해 VIGI 카메라를 예시로 사용합니다.
1단계. 아래 토폴로지 다이어그램에 따라 토폴로지를 구축합니다.

참고: 이 문서에 표시된 토폴로지는 단순 참고용입니다. 실제 시스템 구축 시나리오는 더 다양하게 존재할 수 있습니다.
2단계. VIGI 카메라의 IP 주소를 사용하여 웹 인터페이스에 로그인합니다. 사용자 이름과 비밀번호를 입력한 후 ‘로그인’을 클릭합니다.

3단계. ‘설정 > 이벤트 > 알람 서버’로 이동한 후 “+추가” 버튼을 클릭합니다.

4단계. 팝업 창에서 타사 서버와 관련된 정보를 입력합니다. 이 문서에서는 https://webhook.site/#!/를 참조 서버로 사용합니다.

5단계. 타사 서버의 호스트 IP 또는 도메인과 URL을 입력하고, 적절한 프로토콜(HTTP 또는 HTTPS)을 선택한 후 해당 포트 번호(HTTP의 경우 포트 80, HTTPS의 경우 포트 443)를 지정합니다. 이 문서에서는 설정 시연을 위해 HTTP 프로토콜과 포트 80을 사용합니다. 또한 보고된 이벤트 메시지에 첨부된 이미지를 포함할지 여부를 선택할 수 있습니다. 마지막으로 ‘저장’을 클릭하여 설정을 적용하고 저장합니다.

참고:
1. 설정 매개변수에서 ‘호스트 IP/도메인’은 서버의 IP 주소 또는 도메인 이름을 의미하며, 이 문서에서는 webhook.site입니다.
2. URL은 장치와 서버 간에 교환되는 HTTP 메시지에 사용되는 URL 경로를 의미합니다. 이 문서에서는 서버의 기본 URL(/e499f73b-b773-4721-b6a1-544a8efaef34)을 사용합니다.
3. IP 카메라 및 NVR의 펌웨어 업데이트 후 향상된 알람 메시지 서비스가 지원됩니다. 이 기능을 활성화하면 알람 서버가 향상된 이벤트 관련 필드나 추가 이벤트 속성과 같은 보다 상세한 알람 정보를 보고된 알람 메시지에 넣을 수 있으며, 이를 통해 타사 플랫폼이 후속 처리를 위해 보다 다양한 알람 정보를 확보할 수 있습니다.
이 기능을 활성화한 후에는 알람 메시지 형식이 이전 형식과 다를 수 있으므로 유의하시기 바랍니다. 따라서 타사 서버에 이미 알람 메시지 파싱 로직이 구현되어 있는 경우, 해당 파싱 규칙을 적절히 조정해야 할 수 있습니다.
이 스위치를 활성화하기 전과 후의 알람 메시지 형식 차이점에 대해서는 질문과 답변 섹션의 두 번째 질문을 참고해 확인하세요.

6단계. “테스트” 버튼을 클릭하여 장치와 서버 간의 연결 상태를 확인할 수 있습니다.

7단계. “서비스를 사용할 수 있습니다”라는 팝업 메시지가 표시되면 연결 상태가 정상이며 기능이 제대로 작동하고 있음을 의미합니다. ‘확인’을 클릭하여 진행하세요.

8단계. 설정 > 이벤트 > 스마트 이벤트 > 사람 감지로 이동하여 사람 감지 기능을 활성화합니다.

참고: 이 문서에서는 설명을 위해 사람 감지 기능을 예시로 사용했습니다. 다른 이벤트 감지 기능도 동일한 방식으로 적용됩니다.
9단계. 처리 모드에서 “알람 서버로 전송”을 선택합니다. 마지막으로 ‘적용’을 클릭합니다.

확인
1단계. 스위치에서 포트 미러링을 설정하여 VIGI 카메라가 연결된 포트를 노트북에 연결된 포트로 미러링합니다. Wireshark를 사용하여 노트북의 네트워크 인터페이스에서 패킷 캡처를 시작한 다음, 사람 감지 이벤트를 활성화합니다.
2단계. VIGI 카메라가 보고한 정보를 확인합니다.
시나리오 1. 이미지 미포함
1단계. “http” 명령을 사용하여 캡처된 패킷을 필터링한 다음 HTTP POST 요청과 HTTP 응답을 확인합니다.

2단계. HTTP POST 요청 헤더를 확인합니다.

참고: 첫 번째 줄에는 POST 메서드, 요청 대상 URI 및 HTTP 버전 1.1이 들어가 있습니다. 이 URI는 이전에 알람 서버 설정에서 구성한 URL 문자열과 일치합니다.
두 번째 줄부터 빈 줄까지 각 줄은 요청 메타데이터를 설명하는 키-값 쌍을 나타냅니다. 여기에는 Host, Content-Type, Content-Length 및 Cache-Control이 들어갑니다.
Content-Type이 application/json으로 설정되어 있으면, 이벤트 메시지만(이미지 첨부 없이) 전송되며 요청 본문이 JSON 형식의 문자열임을 나타냅니다.
각 줄은 \r\n으로 끝납니다. \r\n으로만 구성된 빈 줄은 요청 헤더의 끝과 요청 본문의 시작을 나타냅니다.
3단계. HTTP POST 요청 본문을 확인합니다.

참고: JSON 페이로드에서 ip는 이벤트 메시지를 보고하는 IP 카메라의 IP 주소를 나타내고, MAC은 보고하는 IP 카메라의 MAC 주소를 나타냅니다. protocol 필드는 통신에 Http/Https 프로토콜을 사용하는지를 나타냅니다. device_name 필드는 이벤트를 보고하는 IP 카메라의 이름을 지정합니다.
event_list 내의 각 항목은 보고서에 포함된 이벤트를 나타내며, 이벤트 발생 시간과 해당 이벤트 이름을 표시합니다.
4단계. HTTP 응답을 확인합니다. 200 OK 상태 코드가 반환되면 webhook.site 서버가 요청을 성공적으로 수신하고 처리했음을 의미합니다.

5단계. HTTP POST 요청 본문에 보고된 데이터와 webhook.site 서버가 수신 및 파싱한 데이터를 비교하여 일치하는지 확인합니다.

시나리오 2. 이미지가 첨부된 경우
1단계. 패킷 캡처를 시작하기 전에 webhook.site 서버 페이지의 오른쪽 상단에 있는 ‘편집’ 버튼을 클릭하고, 이미지가 첨부된 메시지의 Content-Type을 multipart/form-data; boundary=ReportEventBoundary로 수정합니다.

참고: multipart/form-data는 JSON 문자열과 이미지 데이터가 모두 포함된 혼합 데이터를 나타냅니다. boundary=ReportEventBoundary는 데이터 페이로드의 서로 다른 부분을 구분하는 데 사용되는 경계를 지정합니다.
2단계. “http” 명령어를 사용하여 캡처된 패킷을 필터링합니다. 그런 다음 HTTP POST 요청 헤더와 본문을 확인합니다.

참고: 요청 본문은 빈 줄(\r\n) 뒤에 시작됩니다. Content-Type이 multipart/form-data이므로 본문은 --ReportEventBoundary 경계로 구분된 여러 부분으로 나뉩니다. 요청 본문은 --ReportEventBoundary--로 끝납니다.
첫 번째 부분에는 JSON 이벤트 데이터가 포함되어 있고, 두 번째 부분에는 JPEG 이미지 데이터가 포함되어 있습니다. name 필드는 이미지의 타임스탬프를 나타내며, image/jpeg는 이 부분에 JPEG 이미지 데이터가 포함되어 있음을 나타내고, Content-Length는 이미지 데이터의 크기를 나타냅니다.
JPEG DATA는 바이너리 JPEG 이미지 콘텐츠를 나타냅니다.
3단계. HTTP 응답을 확인합니다. 200 OK 상태 코드가 반환되면 webhook.site 서버가 요청을 성공적으로 수신하고 처리했음을 의미합니다.

4단계. HTTP POST 요청 본문에 보고된 데이터와 webhook.site 서버가 수신하여 파싱한 데이터를 비교하여 일관성이 있는지 확인합니다.

참고: webhook.site 서버 자체는 업로드된 이미지 콘텐츠를 파싱하거나 디코딩하지 않습니다. HTTP 요청 데이터만 수신하여 표시할 뿐입니다. 따라서 이벤트 정보와 해당 이미지의 타임스탬프만 확인할 수 있습니다.
결론
알람 서버 기능을 성공적으로 설정했으며, 이벤트가 트리거되면 이벤트 메시지와 스냅샷 이미지가 정상적으로 보고됩니다.
각 기능 및 설정에 대해 자세히 알아보려면 지원 홈페이지를 방문하여 해당 제품의 설명서를 다운로드하거나 확인하시기 바랍니다.
질문과 답변
Q1: 알람 서버가 성공적으로 설정되었으나 이벤트가 발생했을 때 서버에서 알람 데이터를 수신하지 못하는 경우, 어떻게 해야 합니까?
A1: 다음 사항을 확인해 주십시오.
1단계. 초기 설정 점검을 수행하십시오. 장치 로그를 검토하여 이벤트가 실제로 감지 및 트리거되었는지, 그리고 설정에서 ‘알람 서버로 전송(Send to Alarm Server)’이 활성화되어 있는지 확인하십시오. 동시에 장치상의 모든 알람 서버 설정 매개변수를 확인하되, 특히 구성된 포트가 서버에서 능동적으로 수신 대기 중인지, 그리고 URL이 서버의 수신 대기 엔드포인트와 정확히 일치하는지 여부에 각별히 주의를 기울이십시오.
2단계. 포트 미러링을 설정하고 장치 측에서 패킷을 캡처한 다음, 다음 항목을 순서대로 확인하십시오:
- TCP 연결: 장치와 서버 간의 TCP 3단계 핸드셰이크가 성공적으로 수립되었는지 등록하십시오.
- HTTP POST 요청: POST 요청이 성공적으로 시작되었는지, 그리고 요청 헤더 형식이 올바른지 확인하십시오. 특히 Content-Type 필드에 주의를 기울이십시오. 이벤트 정보만 보고되는 경우 Content-Type은 application/json이어야 합니다. 스냅샷 이미지가 포함되는 경우 Content-Type은 multipart/form-data여야 하며, 혼합 데이터(JSON 문자열 및 이미지 데이터)는 boundary=ReportEventBoundary를 사용하여 분리되어야 합니다.
- HTTP 응답: 패킷에서 반환된 HTTP 응답 상태 코드를 확인하여 서버가 HTTP 요청에 올바르게 응답하는지 확인하십시오.
Q2: 향상된 알람 메시지 서비스를 활성화하기 전과 후의 알람 메시지 형식에는 어떤 차이가 있습니까?
A2: 향상된 알람 메시지 서비스를 활성화하면, 알람 서버의 메시지 형식이 최적화되어 보다 상세한 알람 정보가 포함됩니다. 타사 서버에서 기존 형식을 기반으로 알람 메시지 파싱 로직을 이미 구현한 경우, 해당 파싱 로직을 확인하여 적절히 수정해 주십시오.
1. VIGI IP 카메라의 경우, 주요 차이점은 다음과 같습니다.
(1) 메시지 헤더 최적화
'향상된 알람 메시지 서비스 '가 활성화되면 multipart/form-data에 filename 필드가 추가됩니다. 이 필드는 알람 메시지와 함께 업로드된 스냅샷 이미지의 파일 이름을 식별하는 데 사용되며, 알람 이미지를 파싱하고 저장할 때 타사 서버와의 호환성을 향상시킵니다.
(2) 메시지 본문 최적화
향상된 알람 메시지 서비스가 활성화되면, ip, mac, protocol 및 device_name을 포함한 알람 메시지의 기본 장치 정보는 변경되지 않습니다. 주요 최적화 사항은 event_list의 구조가 조정된 점입니다. 이제 각 이벤트는 독립적인 이벤트 객체로 기술되며, 트리거된 카메라/채널, 이벤트 시간, 영역 또는 라인 정보, 라인 침범 방향, 물체 수, 물체 위치 좌표 등 보다 상세한 알람 정보가 추가됩니다. 자세한 내용은 아래 표를 참조하십시오.
향상된 알람 메시지 서비스를 활성화하기 전:
|
속성 |
설명 |
값 |
|
ip |
장치 IP 주소 |
ip: {장치 IP 주소} |
|
mac |
장치 MAC 주소 |
mac: {장치 MAC 주소} |
|
프로토콜 |
알람 서버 프로토콜 |
프로토콜: {프로토콜} |
|
device_name |
장치 이름 |
device_name: {장치 이름} |
|
이벤트 목록 |
이벤트 목록 |
이벤트 타임스탬프와 트리거된 이벤트 유형 목록이 포함됩니다(예: dateTime: {YYYYMMDDHHMMSS} 및 event_type: [{이벤트 유형 1}, {이벤트 유형 2}]). |
향상된 알람 메시지 서비스를 활성화한 후에는:
|
속성 |
설명 |
값 |
|
ip |
장치 IP 주소 |
ip: {장치 IP 주소} |
|
mac |
장치 MAC 주소 |
mac: {장치 MAC 주소} |
|
프로토콜 |
알람 서버 프로토콜 |
프로토콜: {프로토콜} |
|
device_name |
장치 이름 |
device_name: {장치 이름} |
|
이벤트 목록 |
이벤트 목록 |
각 이벤트에 관한 개별적 설명 |
|
카메라 |
트리거된 카메라/채널 |
camera: {카메라 번호} |
|
dateTime |
이벤트 타임스탬프 |
dateTime: {YYYY-MM-DD HH:MM:SS} |
|
event_type |
트리거된 이벤트 유형 |
event_type: {이벤트 유형} |
|
추가 텍스트 |
추가 알람 정보 |
이벤트 유형 및 규칙 설정에 기반한 확장된 이벤트 정보가 들어갑니다. |
|
region_id |
트리거된 영역 또는 라인 |
영역 기반 이벤트의 경우: region_id: {트리거된 영역 번호}. 라인 크로싱 이벤트의 경우: region_id: {트리거된 라인 번호}. |
|
direction |
선 통과 방향 |
선 통과 이벤트의 경우: direction: {방향 설명}. |
|
obj_num |
감지된 객체의 수 |
사람/차량 대상이 포함된 이벤트의 경우: obj_num: {객체 수}. |
|
obj_rect_info |
객체 위치 좌표 |
사람/차량 대상 이벤트의 경우: obj_rect_info: {객체 위치 좌표}. |
2. VIGI NVR의 경우, 향상된 알람 메시지 서비스가 활성화된 후 경보 서버 메시지 형식이 주로 필드 이름을 조정하여 알람 정보를 더 명확하고 이해하기 쉽게 최적화됩니다. 최적화된 형식에는 확장 알람 정보를 위해 예약된 ‘추가 텍스트(Extra Text)’ 필드가 추가됩니다. 자세한 내용은 아래 표를 참조하십시오.
향상된 알람 메시지 서비스 활성화 전:
|
속성 |
설명 |
값 |
|
유형 |
트리거된 이벤트 유형 |
event_type: {이벤트 유형} |
|
하위 유형 |
트리거된 이벤트 하위 유형 |
event_sub_type: {이벤트 하위 유형} |
|
localtime |
이벤트 타임스탬프 |
datetime: {YYYY-MM-DD HH:MM:SS} |
|
채널 |
트리거된 채널 |
camera_number: {카메라 번호} |
|
채널 이름 |
트리거된 채널 이름 |
camera_name: {카메라 이름} |
향상된 알람 메시지 서비스를 활성화한 후:
|
속성 |
설명 |
값 |
|
이벤트 유형 |
트리거된 이벤트 유형 |
event_type: {이벤트 유형} |
|
이벤트 하위 유형 |
트리거된 이벤트 하위 유형 |
event_sub_type: {이벤트 하위 유형} |
|
이벤트 시간 |
이벤트 타임스탬프 |
datetime: {YYYY-MM-DD HH:MM:SS} |
|
카메라 |
트리거된 채널 |
camera_number: {카메라 번호} |
|
카메라 이름 |
트리거된 채널 이름 |
camera_name: {카메라 이름} |
|
추가 텍스트 |
추가 정보 |
기본값은 None입니다. 확장 기능을 위해 예약되어 있습니다. |
이 문서에는 기계 번역이 적용되었으며, 정확한 내용을 확인하려면 원본 영문 문서를 참고하시기 바랍니다.
더 알아보기
해당 FAQ가 유용했나요?
여러분의 의견은 사이트 개선을 위해 소중하게 사용됩니다.
TP-Link Community
Still need help? Search for answers, ask questions, and get help from TP-Link experts and other users around the world.