5 사용자 매개변수

개요

때로는 Zabbix에서 미리 정의되지 않은 에이전트 검사를 실행하고 싶을 수 있습니다. 이때 사용자 매개변수가 도움이 됩니다.

필요한 데이터를 가져오는 명령을 작성하여 에이전트 구성 파일의 사용자 매개변수에 포함할 수 있습니다('UserParameter' 구성 매개변수).

사용자 매개변수는 다음과 같은 구문을 가집니다:

UserParameter=<key>,<command>

보시다시피, 사용자 매개변수에도 키가 포함되어 있습니다. 이 키는 항목을 구성할 때 필요합니다. 참조하기 쉬운 선택한 키를 입력하세요(호스트 내에서 고유해야 함).

새 매개변수를 적용하려면 에이전트를 다시 시작하거나 에이전트 런타임 제어 옵션을 사용하세요. 예:

zabbix_agentd -R userparameter_reload

그런 다음 항목을 구성할 때, 실행하려는 사용자 매개변수의 명령을 참조하는 키를 입력합니다.

사용자 매개변수는 Zabbix 에이전트에서 실행되는 명령입니다. 항목 값 전처리 단계 이전에 최대 16MB의 데이터가 반환될 수 있습니다.

/bin/sh는 UNIX 운영 체제에서 명령줄 해석기로 사용됩니다. 사용자 매개변수는 에이전트 검사 타임아웃을 따르며, 타임아웃에 도달하면 포크된 사용자 매개변수 프로세스가 종료됩니다.

참고 항목:

간단한 사용자 매개변수 예제

간단한 명령:

UserParameter=ping,echo 1

에이전트는 'ping' 키가 있는 항목에 대해 항상 '1'을 반환합니다.

더 복잡한 예제:

UserParameter=mysql.ping,mysqladmin -uroot ping | grep -c alive

에이전트는 MySQL 서버가 활성 상태이면 '1'을, 그렇지 않으면 '0'을 반환합니다.

유연한 사용자 매개변수

유연한 사용자 매개변수는 키와 함께 매개변수를 허용합니다. 이런 식으로 유연한 사용자 매개변수는 여러 항목을 생성하는 기반이 될 수 있습니다.

유연한 사용자 매개변수는 다음과 같은 구문을 가집니다:

UserParameter=key[*],command
매개변수 설명
Key 고유한 항목 키입니다. [*]는 이 키가 대괄호 안에서 매개변수를 허용함을 정의합니다.
매개변수는 항목을 구성할 때 제공됩니다.
Command 키의 값을 평가하기 위해 실행할 명령입니다.
유연한 사용자 매개변수에만 해당:
명령에서 위치 참조 $1…$9를 사용하여 항목 키의 각 매개변수를 참조할 수 있습니다.
Zabbix는 항목 키의 [ ] 안에 있는 매개변수를 파싱하고 명령에서 $1,...,$9를 적절히 대체합니다.
$0은 실행할 원래 명령($0,...,$9 확장 이전)으로 대체됩니다.
위치 참조는 큰따옴표(") 또는 작은따옴표(') 안에 있는지 여부에 관계없이 해석됩니다.
위치 참조를 변경되지 않게 사용하려면 이중 달러 기호를 지정하세요. 예: awk '{print $$2}'. 이 경우 $$2는 명령을 실행할 때 실제로 $2가 됩니다.

$ 기호가 있는 위치 참조는 유연한 사용자 매개변수에 대해서만 Zabbix 에이전트에서 검색하고 대체됩니다. 간단한 사용자 매개변수의 경우 이러한 참조 처리가 생략되므로 $ 기호 인용이 필요하지 않습니다.

특정 문자는 기본적으로 사용자 매개변수에서 허용되지 않습니다. 전체 문자 목록은 UnsafeUserParameters를 참조하세요.

예제 1

아주 간단한 예:

UserParameter=ping[*],echo $1

ping[something] 형식의 모든 모니터링 항목을 무제한으로 정의할 수 있습니다.

  • ping[0] - 항상 '0'을 반환
  • ping[aaa] - 항상 'aaa'를 반환
예제 2

더 의미 있게 만들어보겠습니다!

UserParameter=mysql.ping[*],mysqladmin -u$1 -p$2 ping | grep -c alive

이 매개변수는 MySQL 데이터베이스의 가용성을 모니터링하는 데 사용할 수 있습니다. 사용자 이름과 비밀번호를 전달할 수 있습니다:

mysql.ping[zabbix,our_password]
예제 3

파일에서 정규 표현식과 일치하는 줄이 몇 개인가요?

UserParameter=wc[*],grep -c "$2" $1

이 매개변수는 파일의 줄 수를 계산하는 데 사용할 수 있습니다.

wc[/etc/passwd,root]
wc[/etc/services,zabbix]

명령 결과

명령의 반환 값은 명령에서 생성된 표준 출력과 표준 오류를 함께 나타냅니다.

텍스트(문자, 로그 또는 텍스트 유형 정보)를 반환하는 항목은 표준 오류 출력이 있는 경우 지원되지 않음 상태가 되지 않습니다.

반환 값은 16MB로 제한됩니다(잘려나가는 후행 공백 포함). 데이터베이스 제한도 적용됩니다.

텍스트(문자, 로그 또는 텍스트 유형 정보)를 반환하는 사용자 매개변수는 공백도 반환할 수 있습니다. 유효하지 않은 결과의 경우 항목이 지원되지 않음 상태가 됩니다.