에이전트 자동 등록

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

개요

액티브 Zabbix 에이전트 자동 등록을 허용할 수 있으며, 이후 서버는 이를 모니터링하기 시작할 수 있습니다. 이 방식으로 서버에서 수동 설정 없이도 새 호스트를 모니터링 대상에 추가할 수 있습니다.

자동 등록은 이전에 알려지지 않은 액티브 에이전트가 체크를 요청할 때 발생할 수 있습니다.

이 기능은 새로운 클라우드 노드의 자동 모니터링에 매우 유용할 수 있습니다. Zabbix Cloud에 새 노드가 생기는 즉시 해당 호스트의 성능 및 가용성 데이터 수집이 자동으로 시작됩니다.

액티브 에이전트 자동 등록은 패시브 체크로 추가된 호스트의 모니터링도 지원합니다. 액티브 에이전트가 체크를 요청할 때, 설정 파일에 ListenIP 또는 ListenPort 설정 파라미터가 정의되어 있으면, 이 값들이 서버로 함께 전송됩니다. 여러 IP 주소가 지정된 경우, 첫 번째 IP가 서버로 전송됩니다.

서버는 새로 자동 등록되는 호스트를 추가할 때, 수신된 IP 주소와 포트를 사용하여 에이전트를 설정합니다. IP 주소 값이 수신되지 않으면, 수신 연결에 사용된 IP 주소가 사용됩니다. 포트 값이 수신되지 않으면, 10050이 사용됩니다.

기본 에이전트 인터페이스로 DNS 이름을 사용하여 호스트를 자동 등록하도록 지정할 수 있습니다.

자동 등록은 다음 경우에 다시 실행됩니다:

  • 호스트 메타데이터 정보가 변경된 경우:
    • HostMetadata가 변경되고 에이전트가 재시작된 경우
    • HostMetadataItem이 반환하는 값이 변경된 경우
  • 메타데이터가 없는 상태로 수동 생성된 호스트의 경우
  • 호스트가 다른 Zabbix 프록시로 모니터링되도록 수동으로 변경된 경우
  • 동일한 호스트에 대한 자동 등록이 새로운 Zabbix 프록시로부터 온 경우

Zabbix 서버와 Zabbix 프록시의 액티브 에이전트 자동 등록 하트비트는 120초입니다. 따라서 검색된 호스트가 삭제된 경우, 자동 등록은 120초 후에 다시 실행됩니다.

설정

서버 지정

에이전트 설정 파일인 zabbix_agentd.conf에 Zabbix 서버가 식별되어 있는지 확인하세요:

ServerActive=10.0.0.1

zabbix_agentd.conf에 Hostname을 별도로 정의하지 않는 한, 서버는 에이전트가 위치한 시스템의 호스트 이름을 사용하여 호스트 이름을 지정합니다. Linux에서 시스템 호스트 이름은 hostname 명령을 실행하여 확인할 수 있습니다.

Zabbix 에이전트 설정에서 Hostname이 쉼표로 구분된 호스트 목록으로 정의된 경우, 나열된 모든 호스트 이름에 대해 호스트가 생성됩니다.

설정 파일을 변경한 후에는 에이전트를 재시작하세요.

액티브 에이전트 자동 등록에 대한 액션

서버가 에이전트로부터 자동 등록 요청을 받으면 액션을 호출합니다. 에이전트 자동 등록을 위해서는 이벤트 소스가 "Autoregistration"인 액션이 설정되어 있어야 합니다.

액티브 에이전트가 자동 등록되도록 하기 위해 네트워크 검색을 설정할 필요는 없습니다.

Zabbix 프런트엔드에서 Alerts → Actions로 이동하여 Autoregistration actions를 선택하고 Create action을 클릭하세요:

  • Action 탭에서 액션 이름을 지정하세요
  • 필요하다면 조건을 지정할 수 있습니다. 호스트 이름/호스트 메타데이터에 대한 조건에서 부분 문자열 일치나 정규식 일치를 사용할 수 있습니다. "Host metadata" 조건을 사용하려면 다음 섹션을 참고하세요.
  • Operations 탭에서 'Add host', 'Add to host group'(예: Discovered hosts), 'Link templates' 등 관련 작업을 추가하세요.

자동 등록될 호스트들이 액티브 모니터링만 지원할 가능성이 높은 경우(예: Zabbix 서버로부터 방화벽으로 차단된 호스트), Template_Linux-active와 같은 전용 템플릿을 만들어 연결하는 것을 고려해 보세요.

생성된 호스트는 기본적으로 Discovered hosts 그룹에 추가되며(Administration > General > Other에서 설정 가능), 다른 그룹에 호스트를 추가하고 싶다면 Remove from host group 작업(대상: "Discovered hosts")을 추가하고, Add to host group 작업(다른 호스트 그룹 지정)도 함께 추가해야 합니다. 호스트는 반드시 하나의 호스트 그룹에 속해야 하기 때문입니다.

보안 자동 등록

암호화된 연결과 함께 PSK 기반 인증을 설정하여 안전한 방식의 자동 등록이 가능합니다.

암호화 수준은 Administration > General > Autoregistration에서 전역으로 설정됩니다. 암호화 없음, PSK 인증을 사용하는 TLS 암호화, 또는 둘 다(일부 호스트는 암호화 없이, 다른 호스트는 암호화를 통해 등록되도록) 선택할 수 있습니다.

PSK를 통한 인증은 호스트를 추가하기 전 Zabbix 서버에 의해 검증됩니다. 성공하면 호스트가 추가되고, Connections from/to host는 전역 자동 등록 설정과 동일한 identity/pre-shared key를 사용하는 'PSK' 전용으로 설정됩니다.

프록시를 사용하는 설치 환경에서 자동 등록의 보안을 보장하려면 Zabbix 서버와 프록시 간의 암호화를 활성화해야 합니다.

기본 인터페이스로 DNS 사용하기

HostInterface와 HostInterfaceItem 설정 파라미터를 사용하면 자동 등록 시 호스트 인터페이스에 대한 사용자 지정 값을 지정할 수 있습니다.

보다 구체적으로, 이 파라미터들은 호스트가 IP 주소가 아닌 DNS 이름을 기본 에이전트 인터페이스로 사용하여 자동 등록되어야 할 때 유용합니다. 이 경우 HostInterface 또는 HostInterfaceItem 파라미터의 값으로 DNS 이름을 지정하거나 반환해야 합니다. 이 파라미터들 중 하나의 값이 변경되면(예: IP 주소에서 DNS 이름으로, 또는 그 반대로), 자동 등록된 호스트의 기본 인터페이스도 그에 맞게 업데이트됩니다. 이 업데이트는 새 호스트를 생성하는 것이 아니라 기존 호스트에 적용됩니다. 새 값을 전송하려면 에이전트가 재시작되어 자동 등록 프로세스를 다시 시작해야 합니다.

HostInterface 또는 HostInterfaceItem 파라미터가 설정되지 않은 경우, 대신 listen_dns 파라미터가 사용됩니다. 이 값은 에이전트의 IP 주소에 대한 역방향 DNS 조회를 수행하여 결정됩니다. 역방향 DNS가 제대로 설정되지 않았거나 잘못된 이름을 반환하는 경우, 잘못된 인터페이스 값으로 인해 자동 등록이 부정확하게 되거나 실패할 수 있습니다.

호스트 메타데이터 사용하기

에이전트가 서버로 자동 등록 요청을 보낼 때 자신의 호스트 이름을 함께 전송합니다. 일부 경우(예: Amazon 클라우드 노드)에는 Zabbix 서버가 검색된 호스트를 구분하는 데 호스트 이름만으로는 충분하지 않습니다. 호스트 메타데이터를 선택적으로 사용하여 에이전트에서 서버로 다른 정보를 보낼 수 있습니다.

호스트 메타데이터는 에이전트 설정 파일인 zabbix_agentd.conf에서 설정합니다. 설정 파일에서 호스트 메타데이터를 지정하는 방법은 2가지입니다:

HostMetadata
HostMetadataItem

위 링크에서 옵션에 대한 설명을 참고하세요.

HostMetadataItem 파라미터는 최대 65535 UTF-8 코드 포인트를 반환할 수 있습니다. 더 긴 값은 잘립니다.

MySQL의 경우, 반환된 값에 멀티바이트 문자가 포함되어 있으면 실질적인 최대 문자 길이가 더 짧아진다는 점에 유의하세요. 예를 들어, 3바이트 문자만 포함된 값은 총 21844자로 제한되고, 4바이트 문자만 포함된 값은 16383자로 제한됩니다.

자동 등록 시도는 액티브 에이전트가 서버에 액티브 체크 갱신 요청을 보낼 때마다 발생합니다. 요청 사이의 지연 시간은 에이전트의 RefreshActiveChecks 파라미터에서 지정됩니다. 첫 요청은 에이전트가 재시작된 직후 즉시 전송됩니다.

예시

HostMetadata를 사용한 OS별 자동 등록

Zabbix 서버로 호스트를 자동 등록하고 싶다고 가정해 보겠습니다. 네트워크에 액티브 Zabbix 에이전트가 있습니다(위 "Configuration" 섹션 참고). 네트워크에는 Windows 호스트와 Linux 호스트가 있고, Zabbix 프런트엔드에는 "Linux by Zabbix agent"와 "Windows by Zabbix agent" 템플릿이 있습니다. 따라서 호스트 등록 시 등록되는 호스트에 알맞은 Linux/Windows 템플릿이 적용되기를 원합니다. 기본적으로 자동 등록 시 서버에는 호스트 이름만 전송되며, 이것만으로는 충분하지 않을 수 있습니다. 적절한 템플릿이 호스트에 적용되도록 하려면 호스트 메타데이터를 사용해야 합니다.

프런트엔드 설정

가장 먼저 할 일은 프런트엔드를 설정하는 것입니다. 2개의 액션을 생성하세요. 첫 번째 액션:

  • 이름: Linux host autoregistration
  • 조건: Host metadata contains Linux
  • 작업: Link templates: Linux by Zabbix agent

이 경우 "Add host" 작업은 생략해도 됩니다. 템플릿을 호스트에 연결하려면 먼저 호스트가 추가되어 있어야 하므로, 서버가 이를 자동으로 처리합니다.

두 번째 액션:

  • 이름: Windows host autoregistration
  • 조건: Host metadata contains Windows
  • 작업: Link templates: Windows by Zabbix agent

에이전트 설정

이제 에이전트를 설정해야 합니다. 에이전트 설정 파일에 다음 줄을 추가하세요:

HostMetadataItem=system.uname

이렇게 하면 에이전트가 실행 중인 호스트에 따라 호스트 메타데이터에 "Linux" 또는 "Windows"가 포함되도록 할 수 있습니다. 이 경우 호스트 메타데이터의 예시는 다음과 같습니다:

Linux: Linux server3 3.2.0-4-686-pae #1 SMP Debian 3.2.41-2 i686 GNU/Linux
Windows: Windows WIN-0PXGGSTYNHO 6.0.6001 Windows Server 2008 Service Pack 1 Intel IA-32

설정 파일을 변경한 후에는 에이전트를 재시작하는 것을 잊지 마세요.

HostMetadata를 사용하여 자동 등록과 템플릿 제어하기

1단계 - HostMetadata로 등록 보호하기

호스트 메타데이터를 사용하여 원치 않는 호스트의 등록에 대한 기본적인 보호 기능을 제공합니다.

프런트엔드 설정

원치 않는 호스트를 차단하기 위해 추측하기 어려운 비밀 코드를 사용하는 액션을 프런트엔드에서 생성하세요:

  • 이름: Autoregistration action Linux
  • 조건:
    • 계산 유형: AND
    • 조건 (A): Host metadata contains //Linux//
    • 조건 (B): Host metadata contains //21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae//
  • 작업:
    • Send message to users: Admin via all media
    • Add to host groups: Linux servers
    • Link templates: Linux by Zabbix agent

이 방법만으로는 데이터가 평문으로 전송되기 때문에 강력한 보호를 제공하지 않는다는 점에 유의하세요. 변경 사항을 즉시 적용하려면 설정 캐시를 다시 로드해야 합니다.

에이전트 설정

에이전트 설정 파일에 다음 줄을 추가하세요:

HostMetadata=Linux    21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae

여기서 "Linux"는 플랫폼을 나타내고, 나머지 문자열은 추측하기 어려운 비밀 텍스트입니다.

설정 파일을 변경한 후에는 에이전트를 재시작하는 것을 잊지 마세요.

2단계 - 등록된 호스트에 템플릿 추가하기

이미 등록된 호스트에 추가 템플릿을 더할 수 있습니다. 이 경우 MySQL by Zabbix agent 템플릿은 HostMetadata에 MySQL 토큰이 포함된 호스트에만 연결됩니다.

프런트엔드 설정

프런트엔드에서 액션을 업데이트하세요:

  • 이름: Autoregistration action Linux
  • 조건:
    • 계산 유형: AND
    • 조건 (A): Host metadata contains Linux
    • 조건 (B): Host metadata contains 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae
    • 조건 (C): Host metadata contains MySQL
  • 작업:
    • Send message to users: Admin via all media
    • Add to host groups: Linux servers
    • Link templates: Linux by Zabbix agent
    • Link templates: MySQL by Zabbix Agent

에이전트 설정

에이전트 설정 파일에서 다음 줄을 업데이트하세요:

HostMetadata=MySQL on Linux 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae

설정 파일을 변경한 후에는 에이전트를 재시작하는 것을 잊지 마세요.