최근에 nGrinder를 통해 부하테스트를 할일이 급하게 생겼다.

jMeter는 다운받으면 바로 실행가능하지만, nGrinder는 컨트롤 서버와 에이전트가 구분되어 있다.
Docker가 지원되어서 한결 쉽게 설치 가능합다.

  1. 일단 CentOS 7기반의 VM 3개를 띄운다.(서버용 1대, 에이전트용 2대 (원하는 만큼))

  2. 아래 커맨드로 각 서버에 모두 docker를 설치한다.

    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    sudo yum install -y docker-ce docker-ce-cli containerd.io
    sudo systemctl enable docker
    sudo systemctl start docker
  3. 컨트롤 서버용 nGrinder 컨테이너 1대 먼저 설치

    docker pull ngrinder/controller:3.4
    docker run -d -v ~/ngrinder-controller:/opt/ngrinder-controller -p 80:80 -p 16001:16001 -p 12000-12009:12000-12009 ngrinder/controller:3.4
  4. 에이전트용 2대에 각각 설치 ( CONTROL_SERVER_IP는 3번의 VM IP 사용 )

    docker pull ngrinder/agent:3.4
    docker run -v ~/ngrinder-agent:/opt/ngrinder-agent -d ngrinder/agent:3.4 CONTROL_SERVER_IP:80
  5. 웹으로 CONTROL_SERVER_IP로 접속하면 끝

출처 : https://stackoverflow.com/questions/43671482/how-to-run-docker-compose-up-d-at-system-start-up


crontab의 @reboot 또는 (옛날 방식) /etc/rc.local 파일을 사용 해도 되지만, 앞에 10초 이상 sleep 을 주지 않으면 실행이 안됩니다.

@reboot (sleep 15s ; cd /myapps ; /usr/local/bin/docker-compose up -d )& 


아래 처럼 system service로 해당 앱을 등록 시켜두면 다른 서비스처럼 자동시작/시작/종료 를 제어할 수 있습니다.

# /etc/systemd/system/docker-compose-app.service

[Unit]
Description=Docker Compose Application Service
Requires=docker.service
After=docker.service

[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/srv/docker
ExecStart=/usr/local/bin/docker-compose up -d
ExecStop=/usr/local/bin/docker-compose down
TimeoutStartSec=0

[Install]
WantedBy=multi-user.target


 WorkingDirectory  변수값은 실제  프로젝트 경로로 변경 해야 합니다. 

부팅시 서비스가 자동 시작하도록 설정 합니다.

systemctl enable docker-compose-app

======

zabbix 예제

# /etc/systemd/system/zbx.service

[Unit]
Description=Docker Compose Zabbix Application Service
Requires=docker.service
After=docker.service

[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/root/zabbix-docker
ExecStart=/usr/local/bin/docker-compose -f ./docker-compose_v3_centos_mysql_latest.yaml up -d
ExecStop=/usr/local/bin/docker-compose -f ./docker-compose_v3_centos_mysql_latest.yaml down
TimeoutStartSec=0

[Install]
WantedBy=multi-user.target

서비스가 자동 시작 설정

systemctl enable zbx

서비스 시작 

systemctl start zbx

서비스 종료

systemctl stop zbx


Mainland 싸이트에만 있던 Container 서비스가 International 싸이트에도 오픈 되었다.

Docker 및 Cluster를 관리 할 수 있다.

관련 문서 : https://intl.aliyun.com/help/product/25972.htm


+ Recent posts