기본적으로, Zevenet HTTP 팜의 백엔드 또는 실제 서버에 간단한 상태 확인을 실행하지만 때로는이 검사만으로는 백엔드가 적절하게 작동하는지 확인할 수 없습니다. 이러한 이유로 Zevenet은 플러그인이라는 플러그인을 사용하는 데몬을 통해 고급 상태 확인을 실행하고 관리하는 서비스를 구현합니다. 농장 수호자.
Farm Guardian의 주된 작업은 응용 프로그램의 고급 모니터링 도구로 작동하는 것입니다.이를 위해 Farm Guardian은 팜 구성을 읽고 백 엔드 목록을 가져오고, 플러그 인이 백 엔드의 상태를 확인하고 Farm Guardian이 백 엔드 상태를 업데이트하도록 도와줍니다. 해당 팜은로드 밸런서가 이러한 백엔드에 트래픽을 전송하도록 허용하거나 허용하지 않습니다.
이 섹션에서 Farmguardian 검사를 구성 할 수 있습니다. 두 섹션을 볼 수 있습니다. 글로벌 및 농장.
전역 설정
Global 섹션에는 아래에 표시된 것처럼 특정 Farmguardian 상태 확인의 상태 확인 설정이 있습니다.
이 섹션의 필드는 시스템에서 검사가 미리 구성된 경우 편집 할 수 없습니다. 검사를 수정하려면 새 검사를 작성하고 원하는 검사 이름으로 복사 매개 변수를 추가하고 새 검사를 수정해야합니다.
- 이름. 현재 Farm Guardian 확인의 식별 이름입니다.
- 설명:. 이 필드에는 수표에 대한 설명이 포함되어 있습니다.
- 명령. 모든 백엔드에 대해 정기적으로 실행될 명령 및 매개 변수를 확인하십시오.
- 간격. 모든 백엔드에 대한 상태 확인 일괄 처리 사이의 시간 (초).
- 연결 끊기. 이 옵션을 활성화하면 감지 된 다운 백엔드의 현재 연결이 플러시되고 사용 가능한 백엔드에 즉시 다시 연결됩니다. 비활성화 된 경우 사용자 연결을 끊지 않고 현재 연결이 끊어집니다.
- 로그. Farm Guardian의 모든 상태 확인 로그를 사용하거나 사용하지 않도록 설정합니다. 로그가 비활성화 된 상태에서만 백엔드 상태 변경 사항 만 로그 파일에 표시됩니다.
상태 확인 구성
Farm Guardian에서 사용한 플러그인은 디렉토리 아래에 있습니다. / usr / lib / nagios / plugins /.
Farm Guardian은 고급 상태 검사를 구성하여 사용자 지정 옵션을 사용하여 특정 실제 서버가 예상대로 작동하는지 여부를 검색하도록 플러그인을 사용합니다. 모든 종류의 프로토콜, 서비스 또는 응용 프로그램에 대한 많은 건강 검사가 있습니다. 가장 중요한 플러그인은 아래에 설명되어 있습니다.
check_ftp:이 플러그인은 지정된 호스트와의 FTP 연결을 테스트합니다.
Usage: check_ftp -H host -p port [-w <warning time>] [-c <critical time>] [-s <send string>] [-e <expect string>] [-q <quit string>][-m <maximum bytes>] [-d <delay>] [-t <timeout seconds>] [-r <refuse state>] [-M <mismatch state>] [-v] [-4|-6] [-j] [-D <warn days cert expire>[,<crit days cert expire>]] [-S <use SSL>] [-E]
check_fping:이 플러그인은 fping 명령을 사용하여 지정된 호스트에 대해 빠르게 검사를 수행합니다.
Usage: check_fping <host_address> -w limit -c limit [-b size] [-n number] [-T number] [-i number]
check_http:이 플러그인은 지정된 호스트에서 HTTP 서비스를 테스트합니다. 일반 (HTTP) 및 보안 (HTTPS) 프로토콜을 테스트하고 리디렉션을 따르고 문자열 및 정규식을 검색하고 연결 시간을 확인하고 인증서 만료 시간, HTTP 반환 코드 등을보고 할 수 있습니다.
Usage: check_http -H <vhost> | -I <IP-address> [-u <uri>] [-p <port>] [-J <client certificate file>] [-K <private key>] [-w <warn time>] [-c <critical time>] [-t <timeout>] [-L] [-E] [-a auth] [-b proxy_auth] [-f <ok|warning|critcal|follow|sticky|stickyport>] [-e <expect>] [-d string] [-s string] [-l] [-r <regex> | -R <case-insensitive regex>] [-P string] [-m <min_pg_size>:<max_pg_size>] [-4|-6] [-N] [-M <age>] [-A string] [-k string] [-S <version>] [--sni] [-C <warn_age>[,<crit_age>]] [-T <content-type>] [-j method]
check_imap:이 플러그인은 지정된 호스트와의 IMAP 연결을 테스트합니다.
Usage: check_imap -H host -p port [-w <warning time>] [-c <critical time>] [-s <send string>] [-e <expect string>] [-q <quit string>][-m <maximum bytes>] [-d <delay>] [-t <timeout seconds>] [-r <refuse state>] [-M <mismatch state>] [-v] [-4|-6] [-j] [-D <warn days cert expire>[,<crit days cert expire>]] [-S <use SSL>] [-E]
check_ldap:이 플러그인은 LDAP 서비스를 테스트합니다. 주어진 검색으로 테스트 할 수 있습니다.
Usage: check_ldap -H <host> -b <base_dn> [-p <port>] [-a <attr>] [-D <binddn>] [-P <password>] [-w <warn_time>] [-c <crit_time>] [-t timeout] [-2|-3] [-4|-6]
check_ldaps:이 플러그인은 LDAPS 서비스를 테스트합니다. 주어진 검색으로 테스트 할 수 있습니다.
Usage: check_ldaps -H <host> -b <base_dn> [-p <port>] [-a <attr>] [-D <binddn>] [-P <password>] [-w <warn_time>] [-c <crit_time>] [-t timeout] [-2|-3] [-4|-6]
check_mysql:이 플러그인은 MySQL 서버에 대한 연결을 테스트합니다.
Usage: check_mysql [-d database] [-H host] [-P port] [-s socket] [-u user] [-p password] [-S] [-l] [-a cert] [-k key] [-C ca-cert] [-D ca-dir] [-L ciphers] [-f optfile] [-g group]
check_mysql_query:이 플러그인은 임계 값 수준에 대해 쿼리 결과를 확인합니다.
Usage: check_mysql_query -q SQL_query [-w warn] [-c crit] [-H host] [-P port] [-s socket] [-d database] [-u user] [-p password] [-f optfile] [-g group]
check_pgsql: PostgreSQL 데이터베이스가 연결을 수락하는지 여부를 테스트합니다.
Usage: check_pgsql [-H <host>] [-P <port>] [-c <critical time>] [-w <warning time>] [-t <timeout>] [-d <database>] [-l <logname>] [-p <password>] [-q <query>] [-C <critical query range>] [-W <warning query range>]
check_pop:이 플러그인은 지정된 호스트와의 POP 연결을 테스트합니다.
Usage: check_pop -H host -p port [-w <warning time>] [-c <critical time>] [-s <send string>] [-e <expect string>] [-q <quit string>][-m <maximum bytes>] [-d <delay>] [-t <timeout seconds>] [-r <refuse state>] [-M <mismatch state>] [-v] [-4|-6] [-j] [-D <warn days cert expire>[,<crit days cert expire>]] [-S <use SSL>] [-E]
check_radius: RADIUS 서버가 연결을 수락하는지 확인합니다.
Usage: check_radius -H host -F config_file -u username -p password [-P port] [-t timeout] [-r retries] [-e expect] [-n nas-id] [-N nas-ip-addr]
check_simap:이 플러그인은 지정된 호스트와의 보안 IMAP 연결을 테스트합니다.
Usage: check_simap -H host -p port [-w <warning time>] [-c <critical time>] [-s <send string>] [-e <expect string>] [-q <quit string>][-m <maximum bytes>] [-d <delay>] [-t <timeout seconds>] [-r <refuse state>] [-M <mismatch state>] [-v] [-4|-6] [-j] [-D <warn days cert expire>[,<crit days cert expire>]] [-S <use SSL>] [-E]
check_smtp:이 플러그인은 호스트와의 SMTP 연결을 시도합니다.
Usage: check_smtp -H host [-p port] [-4|-6] [-e expect] [-C command] [-R response] [-f from addr] [-A authtype -U authuser -P authpass] [-w warn] [-c crit] [-t timeout] [-q] [-F fqdn] [-S] [-D warn days cert expire[,crit days cert expire]] [-v]
check_snmp: 원격 시스템의 상태를 확인하고 SNMP를 통해 시스템 정보를 얻습니다.
Usage: check_snmp -H <ip_address> -o <OID> [-w warn_range] [-c crit_range] [-C community] [-s string] [-r regex] [-R regexi] [-t timeout] [-e retries] [-l label] [-u units] [-p port-number] [-d delimiter] [-D output-delimiter] [-m miblist] [-P snmp version] [-N context] [-L seclevel] [-U secname] [-a authproto] [-A authpasswd] [-x privproto] [-X privpasswd] [-4|6]
check_spop:이 플러그인은 지정된 호스트와의 보안 POP 연결을 테스트합니다.
Usage: check_spop -H host -p port [-w <warning time>] [-c <critical time>] [-s <send string>] [-e <expect string>] [-q <quit string>][-m <maximum bytes>] [-d <delay>] [-t <timeout seconds>] [-r <refuse state>] [-M <mismatch state>] [-v] [-4|-6] [-j] [-D <warn days cert expire>[,<crit days cert expire>]] [-S <use SSL>] [-E]
check_ssh: 지정된 서버 및 포트에서 SSH 서버에 연결을 시도하십시오.
Usage: check_ssh [-4|-6] [-t <timeout>] [-r <remote version>] [-p <port>] <host>
check_ssmtp:이 플러그인은 지정된 호스트와 SSMTP 연결을 테스트합니다.
Usage: check_ssmtp -H host -p port [-w <warning time>] [-c <critical time>] [-s <send string>] [-e <expect string>] [-q <quit string>][-m <maximum bytes>] [-d <delay>] [-t <timeout seconds>] [-r <refuse state>] [-M <mismatch state>] [-v] [-4|-6] [-j] [-D <warn days cert expire>[,<crit days cert expire>]] [-S <use SSL>] [-E]
check_tcp:이 플러그인은 지정된 호스트와의 TCP 연결을 테스트합니다.
Usage: check_tcp -H host -p port [-w <warning time>] [-c <critical time>] [-s <send string>] [-e <expect string>] [-q <quit string>][-m <maximum bytes>] [-d <delay>] [-t <timeout seconds>] [-r <refuse state>] [-M <mismatch state>] [-v] [-4|-6] [-j] [-D <warn days cert expire>[,<crit days cert expire>]] [-S <use SSL>] [-E]
자세한 내용은 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은 실제 매개 변수가있는 상태에서 상태 확인을 실행하는 데이 매개 변수를 사용합니다.
농장
이 섹션에는이 팜 가디언 상태 검사를 사용하는 팜 및 서비스 목록이 있습니다.
휴지통 아이콘을 클릭하면 Farm Guardian 건강 수첩에서 농장과 서비스를 분리 할 수 있습니다.