설치
PHP 모니터링 서비스를 사용하기 위해서는 모니터링 대상 애플리케이션에 모니터링 에이전트를 설치해야 합니다. 설치 방식은 리눅스 패키지 설치로 가능합니다.
-
와탭 저장소(Repository)를 설치합니다.
-
whatap-php 리눅스 패키지를(yum, apt-get) 설치합니다.
-
설정 스크립트를 실행합니다.
-
Apache 또는 PHP-FPM을 다시 시작합니다.
설정 스크립트를 통해서 트레이서는 PHP 확장 모듈(PHP Extension module)로 등록되고, 에이전트는 whatap-php 서비스(Service)로 실행됩니다.

RedHat/CentOS
와탭 저장소(Repository)를 등록합니다.
$ sudo rpm -Uvh http://repo.whatap.io/centos/5/noarch/whatap-repo-1.0-1.noarch.rpm
아래 명령어를 통해 패키지를 설치합니다.
$ sudo yum install whatap-php
Debian/Ubuntu
와탭 저장소(Repository)를 등록합니다.
$ wget http://repo.whatap.io/debian/release.gpg -O -|sudo apt-key add -
$ wget http://repo.whatap.io/debian/whatap-repo_1.0_all.deb
$ sudo dpkg -i whatap-repo_1.0_all.deb
$ sudo apt-get update
아래 명령어를 통해 패키지를 설치합니다.
$ sudo apt-get install whatap-php
Amazon Linux
와탭 저장소(Repository)를 등록합니다.
$ sudo rpm --import http://repo.whatap.io/centos/release.gpg
$ echo "[whatap]" | sudo tee /etc/yum.repos.d/whatap.repo > /dev/null
$ echo "name=whatap packages for enterprise linux" | sudo tee -a /etc/yum.repos.d/whatap.repo > /dev/null
$ echo "baseurl=http://repo.whatap.io/centos/latest/\$basearch" | sudo tee -a /etc/yum.repos.d/whatap.repo > /dev/null
$ echo "enabled=1" | sudo tee -a /etc/yum.repos.d/whatap.repo > /dev/null
$ echo "gpgcheck=0" | sudo tee -a /etc/yum.repos.d/whatap.repo > /dev/null
아래 명령어를 통해 패키지를 설치합니다.
$ sudo yum install whatap-php
FreeBSD
아래 명령어를 통해 패키지를 설치합니다.
$ wget https://s3.ap-northeast-2.amazonaws.com/repo.whatap.io/freebsd/10/whatap-php-0.4.7.txz
$ pkg install whatap-php-0.4.7.txz
Alpine Linux
whatap-php.tar.gz을 다운받고 / 디렉토리 기준으로 압축을 해제합니다.
/usr/whatap/php 디렉토리에 모니터링 설치 파일이 생성됩니다.
wget https://s3.ap-northeast-2.amazonaws.com/repo.whatap.io/alpine/x86_64/whatap-php.tar.gz
tar -xvzf whatap-php.tar.gz -C /
PHP 확장 모듈(PHP Extension module) 및 whatap-php 데몬을 자동으로 설치할 경우에 아래와 같이 적용합니다.
$ sudo /usr/whatap/php/install.sh
Input license key
xxxxxxxxxxxxxxxx # 발급된 라이센스 key 입력
Input whatap.server.host
192.x.x.x # 발급된 서버 IP 입력
PHP 확장 모듈(PHP Extension module) 및 whatap-php 데몬을 자동으로 인식하지 못하는 경우 아래와 같이 선택 설치를 진행해야 합니다.
주로 Apache 명령어(apachectl, httpd, apache2) 및 PHP 명령어(CLI)가 기본 경로($PATH)에 설정되어 있지 않거나, 여러 개의 PHP가 설치되어 PHP 명령어(CLI)가 여러 개일 경우에 (php5, php70, php-zts, zts-php…)
실제로 적용하고 있는 버전을 선택하여 진행합니다.
$ sudo /usr/whatap/php/install.sh manual
Input license key
xxxxxxxxxxxxxxxx # 발급된 라이센스 key 입력
Input whatap.server.host
192.x.x.x # 발급된 서버 IP 입력
Input : which apache or php-fpm ex)/usr/sbin/httpd, /usr/sbin/apache2, /usr/sbin/php-fpm ...
/usr/sbin/httpd # apache 및 php-fpm 명령어 위치 입력
Input : which php ex) /usr/bin/php, /usr/bin/php5, /usr/bin/php70 ...
/usr/bin/php5 # php 명령어 위치 입력
설정 스트립트 install.sh
Usage: install.sh [ commands manual|remove ]
install.sh -l <license> -s <server> -v <php version> -i <php config file> -p <process_name> [-z ]
install.sh -l <license> -s <server> -e <php command> -p <process_name> [-z ]
Commands
auto(default) Auto scan web server and php environment
manual User input web server and php environment
remove Remove php extension and service(whatap-php)
Options
-v <php version> PHP version ex) 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0
-v 5.3
--php-version 5.3
-i <php config file> PHP config file
-i /etc/php.ini
--php-ini /etc/php.ini
-e <php cli> PHP CLI(command line interface)
-e /usr/bin/php
--php-exe: /usr/bin/php-fpm
-p <process name> Web server or PHP-FPM process name. for get used memory
-p httpd
-p httpd.worker, -process-name: php-fpm
-l <license> License key
-l xxxxxxxxxxxxxxx
--license: xxxxxxxxxxxxx
-s <server> WhaTap Server Host
-s xx.xx.xx.xx/yy.yy.yy.yy
--server xxx.xxx.xxx.xxx
-z PHP thread safe
-z
--php-zts
- license
-
발급된 라이센스 key
- server
-
발급된 서버 IP
- php version
-
서버에 설치된 php 버전 정보 (5.2. 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2 )
- php config file
-
서버에 설치된 php.ini의 전체 경로 (/etc/php.ini) PHP Extension에 대한 설정을 진행합니다.
- php cli
-
커맨드 라인으로 실행 가능한 php 명령어의 전체 경로 (/usr/bin/php) 해당 명령어로 PHP 기본 환경을 확인합니다.
- process name
-
Apache 실행 프로세스명(httpd, apache2, httpd.worker …) 또는 PHP-FPM의 실행 프로세스명(php-fpm, php5-fpm) 해당 프로세스 명으로 사용 메모리 정보를 수집합니다.
- zts
-
Zend Thread Safe 지원 여부를 설정합니다.
PHP 버전 지정 설치
$ /usr/whatap/php/install.sh -l [발급된 라이센스 key] -s [발급된 서버 IP] -v [PHP 버전 x.x] -i [php.ini 의 전체 경로] -p [프로세스명]
$ /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]
PHP Cli 명령어 지정 설치
$ /usr/whatap/php/install.sh -l [발급된 라이센스 key] -s [발급된 서버 IP] -e [PHP Cli] -p [프로세스명]
$ /usr/whatap/php/install.sh -l xxxxx -s 1.1.1.1/2.2.2.2 -e /opt/php/bin/php -p apache2
$ /usr/whatap/php/install.sh -l xxxxx -s 1.1.1.1/2.2.2.2 -e /opt/php/bin/php-fpm -p php-fpm
whatap-php 실행
install.sh 실행 마지막에 자동 실행됩니다.
nohup을 통해서 실행합니다.
/usr/whatap/php/whatap-php
Default restart
Command start, stop, restart, version
## 버전 확인
# /usr/whatap/php/whatap-php version
0.8.5.20201209
## 실행 확인
# ps -elf | grep whatap
103 root 0:05 ./whatap_php_static -t=4
설치가 완료된 후 Apache 또는 PHP-FPM 서비스(Service)를 다시 시작하면 설정된 PHP 확장 모듈(PHP Extension module) whatap.so 파일이 로딩됩니다.
Dockerfile
whatap-php.targ.gz 을 /usr/whatap/php 디렉토리에 압축을 해제합니다. install.sh 스크립트를 통해서 설치합니다.
FROM alpine
RUN apk update && apk upgrade
RUN apk add php7 php7-fpm php7-opcache
RUN apk add php7-gd php7-mysqli php7-zlib php7-curl
RUN apk add php7-pdo php7-pdo_mysql
RUN apk add php7-pgsql
RUN apk add apache2 php7-apache2
# Install WhaTap PHP monitoring
ADD whatap-php.tar.gz /
RUN wget https://s3.ap-northeast-2.amazonaws.com/repo.whatap.io/alpine/x86_64/whatap-php.tar.gz
RUN tar -xvzf whatap-php.tar.gz -C /
RUN /usr/whatap/php/install.sh -l <라이센스> -s <Whatap server Host> -e <php CLI 경로> -p <프로세스 이름>
Docker의 entrypoint에 whatap-php 실행 명령어를 추가하여 container 실행 후에 whatap-php 데몬이 시작될 수 있도록 설정합니다.
/usr/whatap/php/whatap-php
구글 앱 엔진 (Google Cloud App Engine)
구글 앱 엔진에 PHP 모니터링을 설치하기 위해서는 custom docker를 사용해야 합니다. 구글 앱 엔진 PHP의 기본형은 PHP 모니터링의 PHP Extension 및 Service (데몬)의 실행이 불가능합니다. Docker Container를 통해 설치하세요.
구글 앱 엔진의 설정 파일인 app.yaml 파일에 flex 환경, custom 런타임으로 설정합니다.
$ vi app.yaml
env: flex
runtime: custom
Custom Docker로 실행하기 위해서는 flex/custom으로 설정된 app.yaml 파일과 동일한 위치에 Dockerfile 을 생성해야 합니다. 구글 앱 엔진의 기본 php Docker 이미지를 참조합니다.
# google-appengine php php56, php70, php71
FROM gcr.io/google-appengine/php56
PHP 모니터링 Agent를 설치합니다.
-
라이브러리 설치 (wget)
-
php-fpm 실행 명령어 링크 생성
-
whatap 레포지터리 및 whatap-php 패키지 설치
-
PHP Extension 및 whatap-php 서비스 설정
-
supervisor를 통해 whatap-php 서비스 실행
# WhaTap. Install Lib
RUN apt-get install wget -y
# WhaTap. Link php-fpm
RUN ln -s /opt/php/sbin/php-fpm /usr/bin/php-fpm
# WhaTap. Install repository and whatap-php
RUN wget http://repo.whatap.io/debian/release.gpg -O -| apt-key add -
RUN wget http://repo.whatap.io/debian/whatap-repo_1.0_all.deb
RUN dpkg -i whatap-repo_1.0_all.deb
RUN apt-get update
RUN apt-get install whatap-php
# WhaTap. Configure PHP agent
#RUN (echo "[ 발급된 라이센스 key ]"; echo "[ 발급된 서버 IP ]")|/usr/whatap/php/install.sh
RUN (echo "xxxxxxxx"; echo "1.1.1.1/2.2.2.2")|/usr/whatap/php/install.sh
# WhaTap. Add supervisor/conf.d/whatap.conf. Run whatap-php service
RUN echo "[program:whatap-php]" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "command = /etc/init.d/whatap-php start" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "stdout_logfile = /dev/stdout" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "stdout_logfile_maxbytes=0" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "stderr_logfile = /dev/stderr" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "stderr_logfile_maxbytes=0" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "user = root" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "autostart = true" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "autorestart = true" >> /etc/supervisor/conf.d/whatap.conf
RUN echo "priority = 10" >> /etc/supervisor/conf.d/whatap.conf
PHP 모니터링 프로젝트 생성 후 라이센스 키와 서버 IP( / 구분자로 여러 개의 IP)가 발급됩니다.
구글 앱 엔진에서 사용하는 네트워크를 대상으로 방화벽 규칙을 추가합니다.
발급받은 서버 IP에 대해 6600 포트를 통한 TCP 송신을 허용해야 합니다.


Google Cloud SDK를 통해서 설정된 app.yaml 파일과 Dockerfile 을 배포합니다.
$ gcloud app deploy
구글 클라우드 콘솔에서 앱 엔진의 생성된 인스턴스를 확인합니다.

AWS Elastic beanstalk
Elastic Beanstalk Configuration files(.ebextensions)를 통해서 설치합니다.
".ebextensions" 디렉토리에 아래 config 파일을 추가한 후 신규 버전을 배포합니다.
commands 명령어를 실행합니다.
-
whatap repository 설치
-
whatap-php 패키지를 설치
-
/usr/whatap/php/install.sh를 통해서 PHP extension을 설정
라이센스 키와 서버 아이피는 "프로젝트 관리>에이전트 설치" 페이지에서 발급받고 확인할 수 있습니다.
$ vi 01-WhaTap_install_repository_php.config
commands:
01_Install_whatap_repository:
command: sudo rpm --import http://repo.whatap.io/centos/release.gpg
ignoreErrors: true
02_Install_whatap_repository:
command: echo "[whatap]" | sudo tee /etc/yum.repos.d/whatap.repo > /dev/null
ignoreErrors: true
03_Install_whatap_repository:
command: echo "name=whatap packages for enterprise linux" | sudo tee -a /etc/yum.repos.d/whatap.repo > /dev/null
ignoreErrors: true
04_Install_whatap_repository:
command: echo "baseurl=http://repo.whatap.io/centos/latest/\$basearch" | sudo tee -a /etc/yum.repos.d/whatap.repo > /dev/null
ignoreErrors: true
05_Install_whatap_repository:
command: echo "enabled=1" | sudo tee -a /etc/yum.repos.d/whatap.repo > /dev/null
ignoreErrors: true
06_Install_whatap_repository:
command: echo "gpgcheck=0" | sudo tee -a /etc/yum.repos.d/whatap.repo > /dev/null
ignoreErrors: true
07_Install_whatap_php:
command: sudo yum install -y whatap-php
ignoreErrors: true
08_Install_whatap_php_install.sh:
command: (echo "[라이센스 키 지정]"; echo "[서버아이피 지정(a.a.a.a/b.b.b.b)")| sudo /usr/whatap/php/install.sh
ignoreErrors: true
Beanstalk에 새로운 버전을 배포하면 PHP 모니터링이 설치됩니다.