에이전트 설치
와탭 모니터링 서비스를 사용하기 위해서는 회원 가입 후 프로젝트를 생성하고 대상 서버에 에이전트를 설치해야 합니다. 회원 가입에 관한 자세한 내용은 다음 문서를 참조하세요.
다음 동영상 가이드를 참조하세요.
프로젝트 생성하기
에이전트를 설치하기 전에 먼저 프로젝트를 생성하세요.
-
와탭 모니터링 서비스로 이동한 다음 로그인하세요.
-
프로젝트를 생성하려면 화면 왼쪽 사이드 메뉴에서 전체 프로젝트 > + 프로젝트 버튼을 선택하세요.
-
상품 선택 화면에서 프로젝트에 설치할 상품을 선택하세요.
-
프로젝트 이름, 데이터 서버 지역, 타임 존 항목을 차례로 설정하세요.
-
알림 언어 설정에서 경고 알림 메시지의 언어를 선택하세요.
-
모든 설정을 완료한 다음에는 프로젝트 생성하기 버튼을 선택하세요.
-
데이터 서버 지역은 리전(클라우드 서비스를 제공하기 위해 설치한 데이터 센터의 묶음)을 의미합니다. 특정 리전을 선택하면 해당 리전에 속한 데이터 센터에 사용자의 데이터를 저장합니다.
-
타임 존은 알림, 보고서를 생성하는 기준 시간입니다.
-
여러 개의 프로젝트를 그룹으로 묶어 관리하려면 프로젝트 그룹에서 그룹을 선택하거나 그룹을 추가하세요. 그룹에 대한 자세한 설명은 다음 문서를 참조하세요.
-
조직을 선택한 상태에서 프로젝트를 추가할 경우 조직 하위 그룹을 필수로 설정해야 합니다.
액세스 키 확인
액세스 키는 와탭 서비스 활성화를 위한 고유 ID입니다.
설치 안내 섹션에서 프로젝트 액세스 키 발급받기 버튼을 선택하세요. 액세스 키를 자동으로 발급받은 후 다음 단계를 진행합니다.
프로젝트를 생성한 다음에는 자동으로 에이전트 설치 페이지로 이동합니다. 에이전트 설치 페이지로 이동하지 않는다면 화면 왼쪽 메뉴에서 관리 > 에이전트 설치를 선택하세요.
Virtual Environment 활성화
애플리케이션이 virtualenv를 사용 중이라면 가상 환경을 활성화하세요. bin/activate 파일을 실행하세요.
에이전트 다운로드
액세스 키를 발급받은 다음 에이전트 다운로드 섹션으로 이동하세요. 다음 코드를 실행해 에이전트를 설치하세요.
pip install whatap-python
pip 명령으로 설치할 수 없다면 pypi 와탭 페이지에서 설치 파일을 다운로드하세요. 다운로드한 파일을 압축 해제한 다음 설치를 진행하세요.
tar xzvf whatap_python-1.x.x.tar.gz \
cd whatap_python-1.X.Y.Z \
python setup.py install
에이전트 구성 파일
Python 에이전트 파일은 애플리케이션 모니터링에 필요한 정보를 추출해 와탭 수집 서버로 전달하는 트레이서와 트레이서가 데이터를 보낼 수 있도록 돕는 요소로 구성되어 있습니다. 에이전트 파일 구성은 다음을 참조하세요.
에이전트 설정
WHATAP_HOME 기본 경로 설정
로그와 설정 파일 경로를 위한 $WHATAP_HOME
경로를 지정하세요. whatap 디렉터리를 새로 생성하는 것을 권장합니다.
$ export WHATAP_HOME=[PATH]
액세스 키 및 수집 서버 IP 설정
액세스 키 및 수집 서버 IP 설정을 위해 whatap-setting-config
명령어를 실행하세요.
$ whatap-setting-config \
--host [ COLLECTION_SERVER_IP ] \
--license [ ACCESS_KEY ] \
--app_name [ USER_DEFINED_AGENT_NAME ] \
--app_process_name [ APPLICATION_PROCESS_NAME(uwsgi, gunicorn etc..) ]
설정 확인
$WHATAP_HOME
에 지정한 경로로 whatap.conf 파일이 생성되고 설정됩니다. 다음 명령어를 실행해 whatap.conf 파일이 생성됐는지 확인하세요.
$ cat $WHATAP_HOME/whatap.conf
license=[ACCESS_KEY]
whatap.server.host=[COLLECTION_SERVER_IP]
# application name
app_name=[ USER_DEFINED_AGENT_NAME ]
# middleware process name ex)uwsgi, gunicorn ..
app_process_name=[ APPLICATION_PROCESS_NAME(uwsgi, gunicorn etc..) ]
권한 문제가 발생하는 경우
-
와탭 설정을 위한 $WHATAP_HOME/whatap.conf 파일의 읽기 및 쓰기 권한
-
와탭 로그를 위한 $WHATAP_HOME/logs 경로와 하위 파일의 읽기 및 쓰기 권한
$WHATAP_HOME
경로에 대한 권한 문제가 발생하다면 다음 명령어를 실행해 권한을 부여하세요.
echo `sudo chmod -R 777 $WHATAP_HOME`
애플리케이션 서버 환경별 적용하기
애플리케이션 서버 환경에 따라 적용하는 방법이 다를 수 있습니다. 사용자의 환경에 맞는 적용 방법을 진행하세요.
- Command
- uWSGI
- Gunicorn
- Supervisor
- WSGI
- Docker
- Code
Command 환경에서는 다음과 같이 whatap-start-agent
명령어를 애플리케이션 시작 명령어(Application start command) 앞에 추가하세요.
# $ whatap-start-agent [Application start command]
$ whatap-start-agent python manage.py runserver
uWSGI 환경에서는 다음과 같이 whatap-start-agent
명령어를 uwsgi
명령어 앞에 추가하세요.
$ whatap-start-agent uwsgi --ini myapp.ini
서비스에 uWSGI를 등록해 애플리케이션을 실행하는 경우 다음 예제 코드를 참고하세요.
description "uWSGI application server handling myapp"
start on runlevel [2345]
stop on runlevel [!2345]
exec whatap-start-agent [YOUR_APPLICATION_START_COMMAND]
# or if you are using a virtual environment
exec env WHATAP_HOME=[PATH] [ABSOLUTE_PATH]/whatap-start-agent [YOUR_APPLICATION_START_COMMAND]
...
NAME="uwsgi"
PATH=/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/bin/uwsgi
PID=$RUN/$NAME.pid
INI_PATH=/etc/$NAME/$NAME.ini
########## WHATAP_AGENT_CONF ##########
WHATAP_HOME=[PATH]
WHATAP_AGENT=[ABSOLUTE_PATH]/whatap-start-agent
...
do_start(){
env WHATAP_HOME=$WHATAP_HOME $WHATAP_AGENT [YOUR_APPLICATION_START_COMMAND]
}
-
사용자(User)를 변경한다면
WHATAP_HOME
환경 변수를 추가하세요. -
가상 환경을 사용한다면 에이전트 시작 명령어를 절대 경로로 추가하세요.
-
서비스 실행 파일(/etc/init/uwsgi.conf)을 수정하여 에이전트 시작 명령어와 함께 애플리케이션을 시작하세요.
-
사용자 환경에 따라 서비스 실행 파일의 경로는 다를 수 있습니다.
Gunicorn 환경에서는 다음과 같이 whatap-start-agent
명령어를 Gunicorn
명령어 앞에 추가하세요.
$ whatap-start-agent gunicorn myapp.wsgi
서비스에 Gunicorn를 등록해 애플리케이션을 실행하는 경우 다음 예제 코드를 참고하세요.
description "gunicorn application server handling myapp"
start on runlevel [2345]
stop on runlevel [!2345]
exec whatap-start-agent [YOUR_APPLICATION_START_COMMAND]
# or if you are using a virtual environment
exec env WHATAP_HOME=[PATH] [ABSOLUTE_PATH]/whatap-start-agent [YOUR_APPLICATION_START_COMMAND]
...
NAME="gunicorn"
PATH=/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/bin/gunicorn
PID=$RUN/$NAME.pid
INI_PATH=/etc/$NAME/$NAME.ini
########## WHATAP_AGENT_CONF ##########
WHATAP_HOME=[PATH]
WHATAP_AGENT=[ABSOLUTE_PATH]/whatap-start-agent
...
do_start(){
env WHATAP_HOME=$WHATAP_HOME $WHATAP_AGENT [YOUR_APPLICATION_START_COMMAND]
}
-
사용자(User)를 변경한다면
WHATAP_HOME
환경 변수를 추가하세요. -
가상 환경을 사용한다면 에이전트 시작 명령어를 절대 경로로 추가하세요.
-
서비스 실행 파일(/etc/init/gunicorn.conf)을 수정하여 에이전트 시작 명령어와 함께 애플리케이션을 시작하세요.
-
사용자 환경에 따라 서비스 실행 파일의 경로는 다를 수 있습니다.
Supervisor 환경에서는 적용하기 위해 supervisor.conf 파일에 다음 설정을 추가하세요.
[program:app-uwsgi]
environment = WHATAP_HOME=[PATH]
command = [ABSOLUTE_PATH]/whatap-start-agent /usr/local/bin/uwsgi --ini /home/blog/backend/config/uwsgi.ini
[program:nginx-app]
command = /usr/sbin/nginx
-
사용자(User)를 변경한다면
WHATAP_HOME
환경 변수를 추가하세요. -
가상 환경을 사용한다면 에이전트 시작 명령어를 절대 경로로 추가하세요.
-
서비스 실행 파일(/etc/supervisor/conf.d/supervisor.conf)을 수정하여 에이전트 시작 명령어와 함께 애플리케이션을 시작하세요.
-
사용자 환경에 따라 서비스 실행 파일의 경로는 다를 수 있습니다.
WSGI 애플리케이션을 직접 구현하는 방법을 안내합니다. 다음을 참조하세요.
import whatap
@whatap.register_app
def simple_app(environ, start_response):
"""Simplest possible application object"""
status = '200 OK'
response_headers = [('Content-type', 'text/plain')]
start_response(status, response_headers)
return ['Hello world!\n']
Docker 컨테이너로 서비스되는 애플리케이션의 경우 다음 내용을 DockerFile에 추가하세요.
-
Python 에이전트를 설치하세요.
DockerfileENV WHATAP_HOME /whatap
RUN mkdir -p /whatap
RUN pip install whatap-python노트requirements.txt를 사용한다면 해당 파일에 whatap-python을 추가하세요.
-
액세스 키 및 수집 서버 IP 설정을 등록하세요.
DockerfileRUN touch /whatap/whatap.conf
RUN echo "license=[ ACCESS_KEY ]" > /whatap/whatap.conf
RUN echo "whatap.server.host=[ COLLECTION_SERVER_IP ]" >> /whatap/whatap.conf
RUN echo "app_name=[ AGENT_NAME ]" >> /whatap/whatap.conf
RUN echo "app_process_name=[ APPLICATION_PROCESS_NAME(uwsgi, gunicorn etc..) ]" >> /whatap/whatap.conf -
기존 실행 커맨드
python manage.py runserver
앞에whatap-start-agent
를 추가하세요.DockerfileCMD ["whatap-start-agent", "python", "manage.py", "runserver", "0.0.0.0:8000"]
코드 가장 윗줄에 API를 직접 호출하는 코드를 다음과 같이 추가해 에이전트를 적용할 수 있습니다.
import whatap
whatap.agent()
애플리케이션 서버를 실행하면 에이전트가 모니터링 데이터를 수집하기 시작합니다.
서비스 실행 확인
다음 명령어를 실행해 와탭 Python 서비스가 정상 실행되는지 확인하세요.
ps -ef | grep whatap_python
다음 단계
-
설치 점검하기
프로젝트 생성 및 에이전트 설치까지 모두 적용했다면 다음 문서에서 점검 사항을 확인하세요.
-
설치 문제 해결
에이전트 설치 시 발생할 수 있는 다양한 문제들과 이를 해결하기 위한 구체적인 지침을 제공합니다. 자세한 내용은 다음 문서를 참조하세요.
-
에이전트 설정
에이전트 설정(whatap.conf) 파일에 옵션을 적용해 모니터링을 위한 다양한 기능을 제공합니다. 기본 설정부터 서버 연결 및 데이터 전송 설정, 여러 애플리케이션 서버의 설정 파일 관리 방법, 트랜잭션 추적 등을 포함합니다. 자세한 내용은 다음 문서를 참조하세요.
-
모니터링 시작하기
모든 설정을 완료한 다음 애플리케이션 서버를 다시 시작하세요. 에이전트가 정보를 수집하기 시작합니다. 먼저 애플리케이션 대시보드 메뉴에서 모니터링 데이터가 수집되는지 확인하세요. 애플리케이션 대시보드에 대한 자세한 내용은 다음 문서를 참조하세요.