Using Discovery Rules on Zabbix

Zabbix의 Discovery Rules 기능을 활용하는 방법에 대한 예제

 

Why Discovery Rules?

자빅스의 디스커버리 룰 기능이 필요한 여러가지 상황 중 가장 간단한 예로는 AWS의 Autoscaling 기능을 사용할 때가 있습니다.

Autoscaling 기능에 대한 자세한 내용은 생략하도록 하겠습니다.

우선 이 예를 들은 이유는 Autoscaling 기능을 사용하게 되면 지정된 룰에 의해 서버가 자동으로 추가/삭제가 됩니다.

이때 추가/삭제 되는 모든 서버에 대해 자빅스를 통해 등록 및 모니터링이 되도록 설정을 하고 싶은데 수동으로 일일히 추가/삭제를 하기에는 번거롭고 힘든일인 것은 당연합니다.

이럴때 사용할 수 있는게 바로 자빅스의 디스커버리 룰 기능입니다.

이 외에도 여러 사항에서 이 기능을 활용할 수 있습니다.

 

How to?

자빅스 디스커버리 룰 기능의 사용법에 대해 간단한 예제를 들어보겠습니다.

1. Configuration -> Discovery -> Create discovery rule
위 순서대로 메뉴를 클릭하면 아래 이미지와 같이 룰 생성 화면을 보실 수 있습니다.
아래 표를 참조하여 기입해 주시면 됩니다.

discovery_rules_create_01

각 항목에 대한 설명은 맨 위에 링크된 매뉴얼 페이지에서 자세하게 보실 수 있으며 간단하게 아래 표에서 정리하였습니다.

Parameter Description
Name 디스커버리 룰에 대한 고유 이름
Discovery by proxy 프록시를 사용하는 경우 프록시 선택
IP range 검색할 IP 주소의 범위
IP              : 192.168.0.1 과 같이 단일 IP 이용 가능
IP 범    위 : 192.168.0.1-255 와 같이 대쉬(-)를 이용하여 범위 지정 가능
IP 마스크 : 192.168.0.1/24 와 같이 MASK 지정 가능
                    IPv4 의 경우 /16 에서 /30 까지 지원
                    IPv6의 경우 /112 에서 /128 까지 지원
// 자빅스 3.0 부터는 공백(space), 콤마(,) 또는 줄바꿈(multiple lines) 이용하여 여러개 지정 가능
Update interval 디스커버리 룰 실행 간격
자빅스 3.4 부터는 30, 1m, 2h, 1d 와 같은 형식으로도 지정 가능
자빅스 3.4 부터는 사용자 매크로도 지원
Checks 검색을 위해 체크하는 방법 설정
SSH, LDAP, SMTP, FTP, HTTP, HTTPS, POP, NNTP, IMAP, TCP, 텔넷, Zabbix 에이전트, SNMPv1 에이전트, SNMPv2 에이전트, SNMPv3 에이전트, ICMP 핑 등을 이용하여 체크 가능
Device uniqueness criteria 고유성 기준 설정
고유성 기준은 기본적으로 IP 주소를 가지고 판단하며, Checks 에서 Zabbix 에이전트나 SNMP를 검색 유형으로 선택하게 되면 그에 따른 고유성 기준을 설정할 수 있게 추가 표시 됩니다.
고유성 기준은 해당 기준을 확인하여 동일한 장치가 존재하는 경우 이미 검색된 것으로 간주되며 중복으로 새 호스트가 등록되지 않도록 하기 위한 기능으로 활용 됩니다.
Enabled 이 디스커버리 룰의 활성화, 비활성화 여부 선택

// 추가 : Zabbix 2.2.0 이후 다른 프록시에 의해 발견 된 호스트는 항상 다른 호스트로 취급됩니다.

 

2. 아래 그림과 같이 Checks에서 Check type, Port range, Key 를 선택하고 Add 를 해줍니다.
예제에서는 Zabbix agent를 선택하고 Port range 는 기본값이 10050, Key 는 system.uname 으로 설정하였습니다.

discovery_rules_create_02

 

3. 고유성 기준 설정에  Zabbix agent “system.uname” 이 추가되었습니다.
// 만약 추가되지 않았다면 디스커버리 룰을 Add 하고 다시 클릭하면 나타납니다.
예제에서는 그냥 IP address 를 이용하여 고유성 기준설정을 하겠습니다.

discovery_rules_create_03

 

4. 추가가 완료되면 아래 그림과 같은 형식으로 리스트가 나타납니다.

discovery_rules_list_01

 

디스커버리 룰 등록이 완료되었습니다. Update interval 설정에 따라 디스커버리 정보가 업데이트 됩니다.

최초 디스커버리 룰 실행은 자빅스 서버의 설정에 따라 달라질 수 있습니다.

등록한 디스커버리 룰은 Monitoring -> Discovery 메뉴에서 확인 가능합니다.

디스커버리 룰을 등록하게 되면 그냥 위의 디스커버리 메뉴에서 확인만 될뿐 처음 얘기한것과 같이 추가/삭제 같은 작업은 되지 않습니다. 이를 위해선 디스커버리 룰에 대한 Action 을 등록해주어야 합니다.

기존에 Action 기능을 통해 알람을 설정해 보신 분이라면 좀 더 쉽게 접근 가능할 것입니다.

이제부터는 Action 기능으로 디스커버리 룰로 검색된 호스트의 추가/삭제 등의 작업을 진행해 보도록 하겠습니다.

 

1. Configuration -> Actions -> Event source -> Discovery -> Create action
위 순서에 따라 메뉴를 선택해 주시면 됩니다. Event source 는 Actions 메뉴를 클릭 후 우측 상단에 보시면 있습니다.

discovery_action_create_01

 

2. 아래 그림과 같이 이름 및 컨디션 등을 추가해 줍니다.

discovery_action_create_02

각 항목에 대한 설명을 간단하게 아래 표에 적어보았습니다.

Parameter Description
Name 액션에 대한 고유 이름
Type of Calculation 컨디션이 여러개일 경우 나타나며 컨디션에 대한 조건부로 And, Or, And/Or 등의 조건을 선택
Conditions 액션을 실행할 호스트의 조건을 선택합니다.
조건 타입으로는 Uptime/Downtime, Discovery status, Service type, Proxy 등을 선택할 수 있으며, 선택한 조건 타입에 매칭되는 조건값으로 크다, 작다, 같다, 다르다 등을 지정할 수 있습니다.
Enabled 이 액션의 활성화, 비활성화 여부 선택

그림에 있는 예제에서는 아래와 같은 시나리오로 설정되었습니다.
B. 검색된 호스트의 업타임/다운타임이 3600초 (1시간) 이상이고, (Uptime/Downtime is greater than or equals 3600)
C. 검색된 호스트의 상태가 디스커버리 룰에서 Up 상태이며, (Discovery status equals Up)
D. 검색된 호스트는 Zabbix agent 설치가 되어 있으며, (Service type equals Zabbix agent)
E. 디스커버리 룰 네임이 Local network 일때. (Discovery rule equals Local Network)
위 4개의 모든 조건이 맞을때 액션을 동작한다. (Type of calculation : And B and C and D and E)

 

3. 액션에 대한 조건 설정이 완료되었으니 이제 실제 실행할 액션을 지정합니다.

discovery_action_create_03

각 항목에 대한 설명을 간단하게 아래 표에 적어보았습니다.

Parameter Description
Default subject 알람을 보낼 시 제목입니다.
Default message 알람을 보낼 시 내용입니다.
Operations 실제 실행될 액션 내용입니다.
Send message, Remote command, Add host, Remove host, Add to host group, Link to template 등 여러가지를 할 수 있습니다.

그림에 있는 예제에서는 아래와 같은 액션을 실행하도록 설정되었습니다.
1. Templates/Operating systems 호스트 그룹에 디스커버리 된 호스트를 추가합니다.
2. Template OS Linux 템플릿을 디스커버리 된 호스트에 추가합니다.

 

4. 추가가 완료되면 아래 그림과 같이 리스트에서 간략하게 정보들을 확인할 수 있습니다.

discovery_action_list_01

 

// 아래 그림처럼 특정 조건일 경우 호스트를 삭제하고 설정된 메세지로 알람을 보낼 수 있는 액션을 추가할 수도 있습니다.

discovery_action_list_02

 

// 자동으로 호스트를 추가할 수 있는 기능으로는 Auto registration 을 이용하여 할 수도 있습니다. Auto registration은 자빅스가 Active 모드일때에만 가능한 기능이기 때문에 저는 사용해본 적이 없습니다.  앞으로 사용할 일이 있다면 그때 이 기능에 대해 포스팅 해보도록 하겠습니다.

 

참고 URL
https://www.zabbix.com/documentation/4.0/manual/discovery/network_discovery/rule

You may also like...

Subscribe
Notify of
guest

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x