process monitoring,supervisor,forever
서비스를 운영하다보면 나의 서비스(프로세스)가 잘 돌고있는지 모니터링을 해야하고, 해당 프로세스가 죽었을 경우 다시 살리는 로직등을 오토매틱하게 구현해 두어야한다. 손이 가는 작업이지만 꼭 필요한 중요한 작업이다.
nodejs에서 사용하는 forever과 비슷한 역할을 한다.
apt-get install supervisor
supervisor 세팅을해보자.
/etc/supervisor/conf.d 안에 {service_name} 으로 파일을 만들고 아래와 같이 서비스에 대한 세팅을 한다.
[program:{service_name}]
//실행할 서비스 스크립트
command = /home/ubuntu/{project}/{실행할 shell script}
//루트디렉토리
directory = /home/ubuntu/{project}
//실행할유저
user = ubuntu
//로그저장할곳
stdout_logfile = /home/ubuntu/{project}/{log저장할 파일이름}
//스크립트내의 에러 출력 여하이다. false로 할시 log에 로그가쌓이지않는다.
redirect_stderr = true
//프로세스를 그룹으로 관리할지 여부. false라면 supervisor를 껐다켰을떄
stopasgroup=true
sudo supervisord
sudo supervisorctl start all 혹은 start {program_name}...
sudo supervisorctl stop all 혹은 start {program_name}...
sudo supervisorctl status
명령어를 통해 관리할 수있지만 웹 또한 제공해준다. 관리 웹을 띄어보자
/etc/supervisor/supervisord.conf 에 들어가서 마지막줄에 아래와 같이 세팅해준다.
[inet_http_server]
port=0.0.0.0:9001
username={너의 id}
password={너의 password}