Supervisor 를 이용 하여 Redis 프로 세 스 를 관리 하 는 방법 튜 토리 얼
7687 단어 supervisorredis프로 세 스
Supervisor 는 Python 으로 이 루어 진 프로 세 스 관리 도구 로 프로 세 스 가 어떤 이유 로 붕괴 되 거나 오 살 된 후에 자동 으로 다시 시작 하고 이벤트 알림 을 보 낼 수 있 습 니 다.Supervisor 는 운영 자 라 고 할 수 있 으 며,Supervisor 를 사용 하여 프로 세 스 를 관리 하면 시스템 의 높 은 사용 가능 한 특성 을 향상 시 킬 수 있다.
Redis 가 점점 유행 하면 서 점점 더 많은 회사 들 이 redis 를 사용 하기 때문에 Redis 의 프로 세 스 관 리 는 많은 회사 들 이 직면 해 야 할 문제 가 되 었 다.본 고 는 Supervisor 를 어떻게 사용 하여 Redis 프로 세 스 를 관리 하 는 지 소개 한다.
Supervisor 소개
Supervisor 는 다음 네 개의 구성 요 소 를 포함한다.
1、supervisord
서버 프로그램,주요 기능 은 슈퍼 visord 서비스 와 관리 하 는 하위 프로 세 스 를 시작 하고 로 그 를 기록 하 며 붕 괴 된 하위 프로 세 스 를 다시 시작 하 는 것 입 니 다.
2、supervisorctl
명령 행 클 라 이언 트 는 셸 과 유사 한 인 터 페 이 스 를 제공 합 니 다.UNIX 도 메 인 소켓 이나 TCP 소켓 을 통 해 XML 을 사용 합 니 다.RPC 프로 토 콜 은 슈퍼 visord 프로 세 스 와 데이터 통신 을 합 니 다.하위 프로 세 스 를 관리 하 는 것 이 주요 기능 입 니 다.
3、Web Server
인터페이스 에서 프로 세 스 를 관리 하고 프로 세 스 로그 와 로 그 를 지 울 수 있 습 니 다.
4.XML-RPC 인터페이스
XMLRPC 프로 토 콜 은 슈퍼 visord 를 원 격 으로 관리 하여 슈퍼 visorctl 및 웹 서버 와 같은 관리 기능 을 수행 합 니 다.
프로 세 스 가 Supervisor 에 의 해 관 리 된 후 실행 상태의 전환 도 는 다음 그림 1 과 같다.
그림 1:하위 프로 세 스 상태 전이 도
우 리 는 몇 가지 중요 한 프로 세 스 상 태 를 골 라 서 설명 한다.
Supervisor 첫 체험
우 리 는 CentOS 플랫폼 에서 예 를 들 어 Supervisor 라 는 강력 한 프로 세 스 관리 도 구 를 어떻게 사용 하 는 지 설명 합 니 다.
1.설치
easy 사용 가능intall 에서 Supervisor 를 설치 합 니 다:
easy_install supervisor
Supervisor 를 pip 로 설치 할 수도 있 습 니 다.
pip install supervisor
설치 과정 이 비교적 간단 하 니,여기 서 우 리 는 더 이상 군말 하지 않 겠 다.설치 가 완료 되면 다음 명령 을 사용 하여 설치 성공 여 부 를 테스트 할 수 있 습 니 다.
echo_supervisord_conf
echo_supervisord_conf 는 터미널 에서 Supervisor 설정 의 샘플 을 출력 합 니 다.2.설정 디 렉 터 리 와 홈 프로필 만 들 기
Supervisor 의 설정 을 독립 된 디 렉 터 리 에 배치 하기 위해 서 디 렉 터 리 를 만 듭 니 다.
cd /etc
mkdir supervisor
이어서 echo 를 계속 사용 할 수 있 습 니 다.supervisord_conf 명령,Supervisor 샘플 설정 을 파일 에 다시 출력 합 니 다.
echo_supervisord_conf > /etc/supervisor/supervisord.conf
이렇게 해서 우 리 는 Supervisor 의 메 인 프로필 슈퍼 visord.conf 를 생 성 했다.Supervisor 가 관리 하 는 프로 세 스 설정 을 주 프로필 과 구분 하기 위해 서 프로 세 스 설정 을 저장 할 독립 된 디 렉 터 리 를 만 듭 니 다.
cd /etc/supervisor
mkdir conf.d
그리고 메 인 프로필 슈퍼 visord.conf 를 수정 하고 다음 설정 을 추가 하 며 conf.d 디 렉 터 리 의 프로 세 스 설정 을 슈퍼 visor 관리 에 도입 합 니 다.
[include]
files = ./conf.d/*.ini
3.관리 프로 세 스 만 들 기Supervisor 의 기능 을 테스트 하기 위해 아래 python 스 크 립 트 를 작성 하여 hello.py 로 저장 합 니 다.
import time
import sys
while True:
print("hello
")
sys.stdout.flush()
time.sleep(1)
hello.py 의 주요 기능 은 표준 출력 에'hello'문자열 을 계속 출력 하 는 것 입 니 다.4.프로 세 스 설정 만 들 기
hello.py 스 크 립 트 를 Supervisor 에 연결 하기 위해 서/etc/supervisor/conf.d 디 렉 터 리 에 hello.ini 설정 을 만 듭 니 다.
[program:hello]
command=python /home/lihao/codes/python/hello.py
stdout_logfile=/home/lihao/codes/python/hello.log
stderr_logfile=/home/lihao/codes/python/hello_error.log
5.supervisord 실행
지정 한 디 렉 터 리 에 있 는 Supervisor 메 인 프로필 을 사용 해 야 하기 때문에 Supervisord 를 실행 할 때-c 매개 변 수 를 사용 하여 메 인 프로필 의 경 로 를 지정 해 야 합 니 다.
supervisord -c /etc/supervisor/supervisord.conf
6.슈퍼 visorctl 관리 프로 세 스 사용슈퍼 visorctl 을 사용 하면 모니터링 프로 세 스 상 태 를 볼 수 있 습 니 다:
supervisorctl -c /etc/supervisor/supervisord.conf
출력:
hello RUNNING pid 8475, uptime 7:59:46
supervisor>
스 크 립 트 hello.py 가 실 행 된 것 을 볼 수 있 습 니 다.(물론 ps aux|grep hello 를 사용 해도 프로 세 스 정 보 를 볼 수 있 습 니 다.)파일/home/lihao/codes/python/hello.log 를 열 면 파일 에'hello'출력 이 계속 있 는 것 을 볼 수 있 습 니 다.슈퍼 visorctl 명령 행 에서 start,stop,restart,status 등 명령 을 사용 하여 시작,닫 기,재 부팅,상태 모니터링 프로 세 스 를 볼 수도 있 고 help 를 입력 하여 명령 도움말 을 볼 수도 있 습 니 다.편폭 에 한 하여 더 이상 펼 치지 않 습 니 다.자세 한 슈퍼 visorctl 명령 은 참고 할 수 있 습 니 다http://www.supervisord.org/running.html#running-supervisorctl
Supervisor 관리 Redis 프로 세 스
Supervisor 의 기본 사용 을 마치 고 Supervisor 를 사용 하여 Redis 프로 세 스 를 관리 하 는 방법 을 알 아 보 겠 습 니 다.
Redis 의 Supervisor 설정
위의 기초 가 있 으 면 저 희 는 Redis 서비스 프로 세 스 의 Supervisor 설정 을 쉽게 작성 할 수 있 습 니 다.
[program:redis]
command=/usr/local/bin/redis-server
autostart=true
autorestart=true
startsecs=3
슈퍼 visorctl reload 를 사용 하여 새로운 Redis 설정 을 불 러 오 면 Redis 프로 세 스 가 Supervisor 를 시작 합 니 다.Redis 의 출력 로 그 를 지정 하려 면 stdout 을 통 해logfile 설정 옵션 이 지정 되 어 있 으 며,구체 적 으로 상기 hello 예 를 참고 할 수 있 습 니 다.Supervisor 가 관리 하 는 프로 세 스 를 daemon 모드 로 설정 할 수 없 기 때문에 Redis 가 정상적으로 시작 되 지 않 으 면 Redis 설정 을 보고 daemonize 옵션 을 no 로 설정 할 수 있 습 니 다.
daemonize no
Supervisord 시동기기 가 다운 되 어 재 부팅 되 는 상황 을 처리 하기 위해 레 디 스 서비스 프로 세 스 는 기기 가 재 부팅 되면 자동 으로 재 부팅 되 는 기능 을 수행 해 야 합 니 다.이 를 위해 서 는 기계 가 시 작 될 때 슈퍼 visord 프로 세 스 를 설정 해 야 합 니 다.이 목적 을 실현 하려 면/etc/init 디 렉 터 리 에 슈퍼 visord.conf 파일 을 추가 할 수 있 습 니 다.
description "supervisord"
start on runlevel [2345]
stop on runlevel [!2345]
respawn
exec supervisord -n -c /etc/supervisor/supervisord.conf
이렇게 하면 기계 가 재 부팅 될 때마다 슈퍼 비 스 퍼 드 프로 세 스 가 자동 으로 시작 되 고 기계 가 재 부팅 될 때마다 슈퍼 비 스 퍼 드 프로 세 스 를 수 동 으로 시작 하지 않도록 합 니 다.Supervisord 프로 세 스 가 시작 되면 관리 하 는 프로 세 스 가 자동 으로 시 작 됩 니 다.이렇게 하면 Supervisor 가 관리 하 는 프로 세 스 가 기계 가 작 동 하면 서 작 동 하 는 효 과 를 실현 할 수 있다.독자 들 은 스스로 테스트 기계 에서 테스트 할 수 있다.Supervisor 웹 관리 인터페이스
웹 관리 인터페이스 기능 을 켜 려 면 슈퍼 visord.conf 설정 에 다음 설정 을 추가 해 야 합 니 다.
[inet_http_server]
port=*:9001
username=user
password=123
그리고 브 라 우 저 를 열 고 주 소 를 입력 하 십시오.http://127.0.0.1:9001이 때 입력 상자 가 뜨 고 사용자 이름과 비밀 번 호 를 입력 하 라 고 요구 합 니 다(사용자 이름:user,비밀번호:123).Supervisor 가 제공 하 는 프로 세 스 관리 인터페이스 에 들 어 갈 수 있 습 니 다.그림 2:Supervisor 웹 관리 인터페이스
이 인터페이스 에서 하나의 프로 세 스 를 재 부팅,닫 기,로그 보기 등 작업 을 할 수 있 고 모든 프로 세 스 를 재 부팅,닫 기 등 작업 을 할 수 있 습 니 다.
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
참고 자료
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
수퍼바이저가 있는 Laravel 작업자우리 중 많은 사람들이 도커 컨테이너 또는 웹 서버에서 Laravel Worker로 감독자를 설정하는 데 어려움을 겪었습니다. 수행하는 데 어려움을 겪고 있거나 작업이 무엇인지, 감독자가 도커 컨테이너 또는 웹 서버...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.