사용자 파라미터

Zabbix v7.4번역일: 2026-08-20원본 보기

개요

때로는 Zabbix에 기본으로 정의되어 있지 않은 에이전트 검사를 실행하고 싶을 수 있습니다. 이럴 때 사용자 파라미터가 도움이 됩니다.

필요한 데이터를 가져오는 명령을 작성해 에이전트 설정 파일의 사용자 파라미터('UserParameter' 설정 파라미터)에 포함할 수 있습니다.

사용자 파라미터의 구문은 다음과 같습니다:

UserParameter=<key>,<command>

보시다시피 사용자 파라미터에도 키가 포함됩니다. 이 키는 아이템을 설정할 때 필요합니다. 참조하기 쉬운 원하는 키를 입력하십시오(호스트 내에서 고유해야 합니다).

새 파라미터를 적용하려면 에이전트를 재시작하거나 에이전트 런타임 제어 옵션을 사용하십시오. 예:

zabbix_agentd -R userparameter_reload

그런 다음 아이템을 설정할 때 실행하려는 사용자 파라미터의 명령을 참조하도록 키를 입력합니다.

사용자 파라미터는 Zabbix 에이전트가 실행하는 명령입니다. 아이템 값 전처리 단계 이전에 최대 16MB의 데이터를 반환할 수 있다는 점에 유의하십시오.

UNIX 운영 체제에서는 명령줄 인터프리터로 /bin/sh가 사용됩니다. 사용자 파라미터는 에이전트 검사 타임아웃을 따르며, 타임아웃에 도달하면 포크된 사용자 파라미터 프로세스가 종료됩니다.

참고:

간단한 사용자 파라미터 예시

간단한 명령:

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로 제한되며(잘려나가는 후행 공백 포함), 데이터베이스 제한도 함께 적용됩니다.

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