한호스트에에이전트를여러대설치하는방법
소개 문서 내 "사전 준비 및 참고 사항"에 기술한 내용처럼 웹서버 서비스의 대수가 많지 않아도, 웹서버에서 실행시키는 worker porcess 수가 많을 경우 webserver agent를 여러대 로 나누어 관리 해야 할 경우가 발생 할 수 있습니다.
해당 케이스의 경우 아래와 같이 설치 해야합니다.
정보
Apache/Nginx 모듈이 에이전트에 데이터를 전송할 때 MODULE_SOCKET_PORT 를 사용합니다. 같은 호스트에 에이전트가 2개 이상이면 포트가 겹치지 않아야 합니다.
정보
docker와 binary 파일 모두 설치 방식이 동일 합니다.
에이전트 설치 시 달라져야 하는 부분
| 항목 | 설명 | 예시 |
|---|---|---|
| 설치 경로 | 에이전트 파일이 설치되는 디렉토리 | /home/exem/webserver1, /home/exem/webserver2 |
| EXEM_AGENT_ID | 수신서버가 각 에이전트를 식별하는 고유 ID | agent-nginx-01, agent-apache-01 |
| EXEM_AGENT_TOKEN | 각 에이전트 접근 허용 token | EXEM_AGENT_ID 신규 발급시 같이 발급 |
| MODULE_SOCKET_PORT | 웹서버 모듈이 에이전트에 접속하는 TCP 포트 | 12848, 12849 |
| CONTAINER_NAME | docker 의 경우 컨테이너명을 변경해야합니다. | 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