본문으로 건너뛰기

에이전트 통신 설정

Network & security

와탭은 에이전트에 서버 방향을 TCP 연결 후 모니터링 데이터를 전송합니다.

와탭 에이전트 네트워크

에이전트는 하나의 TCP 세션을 통해서 데이터 전송과 서버의 제어 요청을 처리합니다. Node 에이전트는 UDP를 사용하지 않습니다. Node 에이전트에서 와탭 수집서버 방향으로 방화벽을 개방합니다.

수집 서버 주소와 포트

와탭 서버는 데이터 리전 서버와 프론트 서버, 유레카 등으로 구분합니다. 데이터 리전에는 다시 Proxy, Yard, Gateway, Keeper 등이 있습니다. 에이전트는 그중에 Proxy 서버와 통신을 합니다.

Node 에이전트에 와탭 서버의 proxy 서버의 주소를 설정합니다.(ex whatap.server.host=10.0.3.1/10.0.3.2) 서버 주소를 설정할 때는 proxy 서버 숫자만큼 입력합니다. 와탭 서버는 설치 방식에 따라서 proxy 서버를 1개 또는 여러 개를 사용할 수 있습니다.

와탭 Proxy 서버는 6600 포트에서 리스닝(Listening)합니다. 에이전트에서 별도 설정을 하지 않으면 에이전트는 6600 포트로 접속을 시도합니다.

whatap.conf
whatap.server.port=6600
노트

두 개의 Proxy 서버가 서로 상이한 포트를 사용할 수 없습니다. 여러 대의 Proxy 서버를 사용하는 경우 리스닝(Listening) 포트는 동일해야 합니다.

통신 연결 및 보안

와탭은 퍼블릭 네트워크에서 모니터링 데이터를 수집하는 것을 전제로 설계했습니다. 따라서 모든 모니터링 데이터를 암호화해 서버로 전송합니다. 많은 데이터를 암호화 전송하면 오버헤드를 유발할 수도 있습니다. 와탭은 데이터를 선별적으로 암호화합니다. 에이전트와 서버 사이의 통신 과정은 다음과 같습니다.

  1. 프로젝트 생성 메뉴에서 액세스 키를 생성하고 복사하세요.

  2. 액세스 키에는 비밀키를 포함합니다. 외부에 알려지지 않도록 주의하세요.

  3. Node.js 애플리케이션 서버를 다시 시작하세요.

  4. 와탭 에이전트는 서버로 TCP 세션을 연결합니다.

  5. 액세스 키에 포함된 통신용 비밀키를 가지고 데이터를 암호화해 새로운 세션용 보안 키를 요청합니다.

  6. 서버는 에이전트가 요청한 세션용 보안 키를 새로 만들어 에이전트에 내려보냅니다.

  7. 세션용 보안키는 2개의 암호 키를 포함하고 있습니다. ASC 알고리즘용 암호 키와 단순 암호를 위한 암호 키입니다.

  8. 이후에 에이전트는 텍스트와 제어 등 중요한 데이터는 ASC 암호 키를 사용합니다. 숫자 데이터와 같이 상대적으로 안전한 데이터는 단순 암호화를 거쳐 데이터를 서버에 전송합니다.

에이전트 통신 버퍼

에이전트는 서버 사이의 TCP 연결이 지연되면 에이전트 장애를 유발할 수 있습니다. 때문에 수집된 성능 데이터를 네트워크에 바로 전송하지 않습니다.

에이전트는 내부에 2개의 통신 버퍼를 가지고 통신합니다.

net_send_queue1_size=512
net_send_queue2_size=1024

Queue1에는 대부분의 성능 데이터 특히 정기적으로 전송하는 성능 데이터를 버퍼링하고 Queue2는 트랜잭션 트레이스(ProfilePack)와 액티브 스택(ActiveStackPack)만 별도 처리합니다.

에이전트는 큐를 기반으로 서버와 통신합니다. 서버가 다운되면 일정 부분은 에이전트가 메모리를 소비합니다. 그 이상의 문제는 발생하지 않습니다.

에이전트 다시 접속

에이전트는 서버와 연결이 끊어질 경우 5~10초마다 3번의 재연결을 시도합니다. 그 후에는 재연결을 시도하지 않습니다.

네트워크 설정 옵션

에이전트가 애플리케이션 서버로부터 수집한 데이터를 서버로 전송하기 위한 네트워크 설정 방법을 안내합니다. 주요 설정 옵션으로는 수집 서버 호스트, 포트, 타임아웃 값, 네트워크 전송 크기, 데이터 전송 큐 크기 등이 있으며, 에이전트의 효율적인 데이터 관리 및 안정적인 서버 통신을 보장하는 데 중요합니다.

  • whatap_server_host ip_address

    기본값 127.0.0.1,127.0.0.1

    에이전트가 수집한 데이터를 전송할 서버를 설정합니다. 수집 서버 이중화로 2개 이상의 IP 주소를 가진 경우 쉼표(,)를 구분자로 이용하세요. 설정한 IP 주소에는 수집 서버 proxy 서버가 리스닝(Listening) 상태로 서비스돼야 합니다.

  • whatap_server_port tcp_port

    기본값 6600

    수집 서버 포트를 설정합니다. 포트는 하나만 설정할 수 있으므로 whatap_server_host 옵션에 설정한 수집 서버들은 동일 포트를 사용해야 합니다.

  • tcp_so_timeout MiliSecond

    기본값 60000

    수집 서버와 통신하는 TCP 세션의 Socket Timeout 값을 설정합니다.

  • tcp_connection_timeout MiliSecond

    기본값 5000

    수집 서버와 통신하는 TCP 세션의 Connection Timeout 값을 설정합니다.

  • net_send_max_bytes Byte

    기본값 5242880

    에이전트가 데이터를 수집하고 네트워크로 한 번에 전송할 수 있는 최대 byte 크기입니다.

  • net_send_queue1_size Int

    기본값 512

    트레이스 정보를 제외한 나머지 데이터 전송에 사용할 Queue의 크기를 설정합니다.

  • net_send_queue2_size Int

    기본값 1024

    트레이스 정보 전송에 사용할 Queue의 크기를 설정합니다.