Overview
기본적으로, Zevenet 백엔드 또는 실제 서버에 간단한 상태 확인을 실행하지만 때로는이 검사만으로는 백엔드가 적절하게 작동하는지 확인할 수 없습니다. 이러한 이유로 Zevenet은 플러그인이라는 플러그인을 사용하는 데몬을 통해 고급 상태 확인을 실행하고 관리하는 서비스를 구현합니다. 농장 수호자.
Farm Guardian의 주된 작업은 응용 프로그램에 대한 고급 모니터링으로 작업하는 것입니다.이를 위해 Farm Guardian은 팜 구성을 읽고 백 엔드 목록을 가져오고 플러그인이 백 엔드의 상태를 확인하는 데 도움을주고 Farm Guardian은 주어진 팜에서 Zen Load Balancer가 그러한 백엔드에서 연결을 보내도록 허용하거나 허용하지 않습니다.
Farm Guardian에서 사용한 플러그인은 디렉토리 아래에 있습니다. / usr / local / zenloadbalancer / app / libexec / .
팜 가디언 구성
백엔드의 상태 검사. 이 확인란을 선택하면 백엔드에 대한 고급 모니터링 상태를 활성화하고 사용자 자신의 스크립트로 완전히 프로그래밍 할 수 있습니다. Farm Guardian에서 잘못된 동작을 감지하면 실제 서버가 자동으로 비활성화되고 다음과 같이 표시됩니다. FGdown. 이 서비스는 독립적 인 서비스이므로 팜 서비스를 다시 시작할 필요가 없습니다.
수표 사이 시간. 이것은 Farm Guardian이 상태 검사를 실행하기 위해 대기하는 시간 (초)입니다.
확인할 명령. 구성된 백엔드에 대해 실행할 명령입니다. 상수 또는 토큰은 동적 구성을 제공하기 위해 사용됩니다.
농장 수호자 기록. 이 확인란을 선택하면 Farm Guardian 로그에서 많은 동작을 할 수 있지만 일부 동작을 디버깅 할 수 있습니다.
플러그인
Farm Guardian은 고급 상태 검사를 구성하여 사용자 지정 옵션을 사용하여 특정 실제 서버가 예상대로 작동하는지 여부를 검색하도록 플러그인을 사용합니다. 모든 종류의 프로토콜, 서비스 또는 응용 프로그램에 대한 많은 건강 검사가 있습니다. 가장 중요한 플러그인은 아래에 설명되어 있습니다.
check_ftp:이 플러그인은 지정된 호스트와의 FTP 연결을 테스트합니다.
check_fping:이 플러그인은 fping 명령을 사용하여 지정된 호스트에 대해 빠르게 검사를 수행합니다.
check_http:이 플러그인은 지정된 호스트에서 HTTP 서비스를 테스트합니다. 일반 (HTTP) 및 보안 (HTTPS) 프로토콜을 테스트하고 리디렉션을 따르고 문자열 및 정규식을 검색하고 연결 시간을 확인하고 인증서 만료 시간, HTTP 반환 코드 등을보고 할 수 있습니다.
check_imap:이 플러그인은 지정된 호스트와의 IMAP 연결을 테스트합니다.
check_ldap:이 플러그인은 LDAP 서비스를 테스트합니다. 주어진 검색으로 테스트 할 수 있습니다.
check_ldaps:이 플러그인은 LDAPS 서비스를 테스트합니다. 주어진 검색으로 테스트 할 수 있습니다.
check_mysql:이 플러그인은 MySQL 서버에 대한 연결을 테스트합니다.
check_mysql_query:이 플러그인은 임계 값 수준에 대해 쿼리 결과를 확인합니다.
check_pgsql: PostgreSQL 데이터베이스가 연결을 수락하는지 여부를 테스트합니다.
check_pop:이 플러그인은 지정된 호스트와의 POP 연결을 테스트합니다.
check_radius: RADIUS 서버가 연결을 수락하는지 확인합니다.
check_simap:이 플러그인은 지정된 호스트와의 보안 IMAP 연결을 테스트합니다.
check_smtp:이 플러그인은 호스트와의 SMTP 연결을 시도합니다.
check_snmp: 원격 시스템의 상태를 확인하고 SNMP를 통해 시스템 정보를 얻습니다.
check_spop:이 플러그인은 지정된 호스트와의 보안 POP 연결을 테스트합니다.
check_ssh: 지정된 서버 및 포트에서 SSH 서버에 연결을 시도하십시오.
check_ssmtp:이 플러그인은 지정된 호스트와 SSMTP 연결을 테스트합니다.
check_tcp:이 플러그인은 지정된 호스트와의 TCP 연결을 테스트합니다.
자세한 내용은 plugins 경로에서 다음 명령을 실행하십시오.
plugin_name --help
Farm Guardian은이 플러그인을 사용하여 백엔드의 상태를 확인하고 실행 된 플러그인의 실행 오류 출력을 관리하여 다음과 같이 백엔드 상태를 결정합니다.
오류 출력 == 0 백엔드는 정상입니다> $? = 0
오류 출력 <> 0 백엔드가 정상이 아닙니다> $? <> 0
맞춤 플러그인
이러한 플러그인은 모든 프로토콜이나 응용 프로그램에 맞게 시스템 관리자가 구성하고 프로그래밍 할 수 있습니다.
이 예는 맞춤 플러그인을 보여줍니다. check_load.sh.
#!/bin/bash ### ###comments: ###snmp utils should be installed ###snmpd should be installed and configured in the backends ### MAXVALUE=4 COMMUNITY="public" EXECUTE=`snmpget -v 2c -c $COMMUNITY $1 .1.3.6.1.4.1.2021.10.1.3.1 |cut -d ':' -f2 | cut -d '.' -f1 | sed s/\ // | sed s/\"//` echo "SNMP CPU load check for $1 is $EXECUTE" # If the result is true, exit with 1; error; else exit = 0; OK if (( $EXECUTE >= $MAXVALUE )); then #error output; the server is overloaded and the load balancer isn’t going to send more connections exit 1 else #not error; the server can accept more connections exit 0 fi
상수
Farm Guardian이 플러그인을 실행하면 다음과 같이 몇 가지 상수 또는 토큰을 인수로 사용할 수 있습니다.
- HOST: Farm Guardian은이 상수를 실제 서버 IP 주소로 수정합니다.
- PORT: Farm Guardian은이 상수를 실제 서버 포트로 수정합니다.
이러한 상수는 모든 플러그인에 사용할 수 있으며 Farm Guardian은 실제 매개 변수가있는 상태에서 상태 확인을 실행하는 데이 매개 변수를 사용합니다.
예
다음 예제는 웹 서비스에 대한 고급 HTTP 상태 검사를 설명합니다. 일반적인 오류는 응용 프로그램 서버가 빈 페이지를 표시하지만 8080 포트는 여전히 HTTP 요청을 허용한다는 것입니다.
HTTP 팜의 경우 모든 서비스의 Farm Guardian 섹션에서 다음을 구성하십시오.
농장 수호자는 check_http 각 백엔드에 대한 플러그인이며 상수를 대체합니다. HOST 및 PORT 각각의 백엔드에 대한 IP 주소와 포트에 의해 각 실행에 대해 'Welcome'문자열이 index.php의 내용에서 발견되면 해당 플러그인이 0 오류 코드를 반환합니다. 'Welcome'문자열이없는 경우이 백엔드는 DOWN으로 표시됩니다.
Farm Guardian 구성에 대한 자세한 내용은 다음을 참조하십시오. Farm Guardian 구성 안내서.
많은 수의 디스크 공간을 사용하고 경로에 로그를 저장하더라도 팜 가디언 로그를 사용할 수 있음 /usr/local/zenloadbalancer/config/[_service]_farmguardian.log or / var / log / syslog 가장 최근 업데이트 된 Zevenet 버전.