본문으로 건너뛰기

호스트에에이전트를여러대설치하는방법

소개 문서 내 "사전 준비 및 참고 사항"에 기술한 내용처럼 웹서버 서비스의 대수가 많지 않아도, 웹서버에서 실행시키는 worker porcess 수가 많을 경우 webserver agent를 여러대 로 나누어 관리 해야 할 경우가 발생 할 수 있습니다.

해당 케이스의 경우 아래와 같이 설치 해야합니다.

정보

Apache/Nginx 모듈이 에이전트에 데이터를 전송할 때 MODULE_SOCKET_PORT 를 사용합니다. 같은 호스트에 에이전트가 2개 이상이면 포트가 겹치지 않아야 합니다.

정보

docker와 binary 파일 모두 설치 방식이 동일 합니다.

에이전트 설치 시 달라져야 하는 부분

항목설명예시
설치 경로에이전트 파일이 설치되는 디렉토리/home/exem/webserver1, /home/exem/webserver2
EXEM_AGENT_ID수신서버가 각 에이전트를 식별하는 고유 IDagent-nginx-01, agent-apache-01
EXEM_AGENT_TOKEN각 에이전트 접근 허용 tokenEXEM_AGENT_ID 신규 발급시 같이 발급
MODULE_SOCKET_PORT웹서버 모듈이 에이전트에 접속하는 TCP 포트12848, 12849
CONTAINER_NAMEdocker 의 경우 컨테이너명을 변경해야합니다.CONTAINER_NAME=exem-webserver-agent2

version 3.0.19.1 버전 이상에서 installer 를 이용하는 경우

  • installer 를 이용한 설치 시에 v3.0.19.1 버전 이후 부터 "Enter webserver directory name" 구문이 추가되었습니다.
=====================================================
EXEM webserver agent Docker Installer
=====================================================
Choose work number (default: 1)
1. install(patch)
2. unpack
3. exit
: 1
=====================================================
Package extracted to: /home/exemone-webserver-agent
Package version: 3.0.19.1
exemOne WebServer Agent Docker Installer
=====================================================
Enter EXEM_HOME [/home/exem]:
Enter webserver directory name [webserver]: webserver2 # 3.0.19 추가
Enter RECEIVER_IP: 10.20.30.40
Enter RECEIVER_PORT [9009]:
Enter EXEM_AGENT_NAME [webserver-agent]: webserver2
Enter EXEM_AGENT_ID:
Enter EXEM_ACCESS_TOKEN:
  • 디렉토리 명을 변경하여 /exem/ 디렉토리 하위에 설치 경로를 변경 시킬 수 있습니다.
  • 각 설치된 webserver-agent 별로 module socket port 를 중복되지 않게 설정 후 기동해야합니다.

installer 를 이용한 설치 시에 v3.0.19.2 버전 이후 부터 Enter webserver directory name [webserver]: 구문에서 기본값이 아닐 경우, module socket port를 입력 하는 "Enter MODULE_SOCKET_PORT [12848]: " 구문이 추가되었습니다.

=====================================================
Package extracted to: /home/whyj/install_test/temp_webserver-agent
Package version: 3.0.18.01.dev
exemOne WebServer Agent Installer
=====================================================
Enter EXEM_HOME [/home/whyj/install_test/exem]: /home/whyj/docker/exem
# 해당 구문 3.0.19.1 버전 이상 부터 추가
Enter webserver directory name [webserver]: webserver-test
# 해당 구문 3.0.19.2 버전 이상 부터 추가
Enter MODULE_SOCKET_PORT [12848]:
Using bundled JRE: /home/whyj/docker/exem/webserver/jre
Enter RECEIVER_IP: 10.20.30.41
Enter RECEIVER_PORT [9009]:
Enter EXEM_AGENT_NAME [webserver-agent]: whyj-docker-testEnter
EXEM_AGENT_ID: 23e3df76-test-test-test-fa3c0fab712f
Enter EXEM_ACCESS_TOKEN: 6af1dacf-test-test-test-4922cfb626b2

version 3.0.19.2 버전 이상에서 Config 파일 방식을 이용하는 경우

  • 각 에이전트 설치용 properties 파일을 생성합니다.
# agent1.conf
INSTALL_DIR=/home/exem/webserver
RECEIVER_IP=10.20.30.40
RECEIVER_PORT=9009
EXEM_AGENT_NAME=webserver-agent
EXEM_AGENT_ID=1
EXEM_ACCESS_TOKEN=token-1

# agent2.conf
INSTALL_DIR=/home/exem/webserver2
MODULE_SOCKET_PORT=12849
RECEIVER_IP=10.20.30.40
RECEIVER_PORT=9009
EXEM_AGENT_NAME=webserver-agent-2
EXEM_AGENT_ID=2
EXEM_ACCESS_TOKEN=token-2

properties 파일들을 인수로 installer를 실행 합니다.

./setup_exem-webserver-agent_{버전}_docker.bin agent1.conf
./setup_exem-webserver-agent_{버전}_docker.bin agent2.conf

설치 결과 디렉토리 구조 (binary)

/home/exem/
├── webserver/ ← 첫 번째 에이전트 (MODULE_SOCKET_PORT=12848)
│ ├── data/webserver_id
│ ├── jre
│ ├── lib/exem-webserver-agent.jar
│ ├── cfg/webserver.conf
│ ├── cfg/webserver.reload
│ ├── log/
│ ├── pkg_version.sh
│ ├── start.sh
│ └── stop.sh
└── webserver2/ ← 두 번째 에이전트 (MODULE_SOCKET_PORT=12849)
├── data/webserver_id
├── jre
├── lib/exem-webserver-agent.jar
├── cfg/webserver.conf
├── cfg/webserver.reload
├── jre
├── pkg_version.sh
├── start.sh
└── stop.sh

설치 결과 디렉토리 구조 (docker)

/home/exem/
├── webserver/ ← 첫 번째 에이전트
│ │ 컨테이너: exem-webserver-agent
│ │ 호스트 포트: 12848
│ ├── lib/
│ │ └── exemone-webserver-agent-v{버전}.tar.gz (Docker 이미지)
│ ├── cfg/
│ │ ├── .env
│ │ ├── webserver.conf ← MODULE_SOCKET_PORT=12848
│ │ └── cfg.reload
│ ├── log/
│ ├── data/
│ │ └── webserver_id
│ ├── start.sh
│ ├── stop.sh
│ └── pkg_version.sh
└── webserver2/ ← 두 번째 에이전트
│ 컨테이너: exem-webserver-agent-webserver2
│ 호스트 포트: 12849
├── lib/
│ └── exemone-webserver-agent-v{버전}.tar.gz (Docker 이미지)
├── cfg/
│ ├── .env
│ ├── webserver.conf ← MODULE_SOCKET_PORT=12849
│ └── cfg.reload
├── log/
├── data/
│ └── webserver_id
├── start.sh
├── stop.sh
└── pkg_version.sh