본문으로 건너뛰기

Docker 환경 설치

Docker 컨테이너 기반으로 실행하는 PHP 애플리케이션에 와탭 모니터링 에이전트를 적용하고 컨테이너 이미지를 패키징하는 과정을 다음과 같이 안내합니다.

노트

EKS Fargate는 지원 예정입니다.

에이전트 다운로드

PHP 애플리케이션 도커 이미지 빌드 시 whatap-php 패키지를 설치하세요.

Red Hat/CentOS

RUN rpm -Uvh https://repo.whatap.io/centos/5/noarch/whatap-repo-1.0-1.noarch.rpm
RUN yum install -y whatap-php

에이전트 설정

  • 다음 명령어를 이용해 설치 스크립트를 설정하세요. 와탭 액세스 키, 서버 IP 정보를 입력하면 PHP 환경 정보를 자동으로 수집합니다.

    RUN (echo "[액세스 키]"; echo "[서버 IP]")|/usr/whatap/php/install.sh
  • 다음과 같이 PHP 환경 정보를 직접 입력할 수 있습니다.

    # RUN /usr/whatap/php/install.sh -l [액세스 키] -s [서버 IP] -v [PHP 버전 x.x] -i [php.ini의 전체 경로] -p [프로세스명] -z [thread safety]
    RUN /usr/whatap/php/install.sh -l xxxxx -s 1.1.1.1/2.2.2.2 -v 7.0 -i /etc/php.ini -p httpd [-z]
노트

액세스 키가 Docker Public 상태의 이미지에 노출되지 않도록 주의하세요.

컨테이너 환경변수 설정

Docker 빌드 후 쿠버네티스 환경 내 컨테이너 환경변수를 설정하세요. 애플리케이션 배포 yaml 파일에 다음 내용을 추가하세요.


env:
- name: NODE_IP
valueFrom: {fieldRef: {fieldPath: status.hostIP}}
- name: NODE_NAME
valueFrom: {fieldRef: {fieldPath: spec.nodeName}}
- name: POD_NAME
valueFrom: {fieldRef: {fieldPath: metadata.name}}

다음 예시를 참조하세요.

apiVersion: v1
kind: Pod
metadata:
name: # Pod Name
labels: # Pod Labels
spec:
containers:
env:
- name: NODE_IP
valueFrom: {fieldRef: {fieldPath: status.hostIP}}
- name: NODE_NAME
valueFrom: {fieldRef: {fieldPath: spec.nodeName}}
- name: POD_NAME
valueFrom: {fieldRef: {fieldPath: metadata.name}}
노트

환경변수 역할

  • NODE_IP: 현재 Pod가 호스팅된 노드(Node)의 IP 주소를 수집합니다.

  • NODE_NAME: 현재 Pod가 실행 중인 노드의 이름을 수집합니다.

  • POD_NAME: 현재 Pod의 이름을 수집합니다.

에이전트 실행

애플리케이션 시작 명령어 앞에 추가로 whatap-php 시작 명령어를 추가하세요.

sh -c "/usr/whatap/php/whatap-php start && [애플리케이션 시작 명령어]"

다음 명령어를 실행해 와탭 서비스가 정상 실행되었는지 확인하세요. 애플리케이션 서버가 실행되면 에이전트가 모니터링 정보를 수집하기 시작합니다.


ps -ef | grep whatap_php

에이전트 설치 확인

에이전트를 제대로 설치했는지 확인하려면 대시보드 > 애플리케이션 서비스 대시보드 메뉴로 이동하세요.

다운로드한 파일을 직접 설치한 다음, 대시보드 메뉴에서 에이전트를 확인할 수 없다면 다음 사항을 확인하세요.

  • 컨테이너에서 ps -ef | grep whatap 명령어를 실행해 에이전트 옵션을 적용했는지 확인하세요.

  • 컨테이너의 /usr/whatap/php/logs 경로의 내용을 확인하세요. 에이전트 로그는 logs/whatap-{boot or install}-yyyymmdd.log 형식의 파일명으로 출력됩니다.