본문 바로가기

자빅스/소식 & 릴리즈 노트

Zabbix v7.0 LTS 출시 - 새로운 버전을 만나보세요!

Zabbix 7.0 LTS Release Note

안녕하세요, 디무브 입니다.

지난 7월 열린 Zabbix Meeting South Korea 행사 후기 읽어보셨나요? 많은 분들이 찾아주셨던 Zabbix 행사에서는 Zabbix의 CEO Alexei Vladishev가 새롭게 출시된 Zabbix 7.0 LTS 버전에 대해 직접 소개하는 시간을 갖기도 했는데요.

오늘 포스팅에서는 Zabbix 7.0 LTS 릴리즈 노트 중 주요 사항들에 대해 안내드립니다. 많은 분들이 아쉬움을 느끼셨던 대시보드 가시화나 이중화 등이 이번 7.0 LTS 버전을 통해 공개된 만큼 유용한 업데이트 내용들이 많으니 꼭 끝까지 살펴보세요!

 

🙋‍♀️ 설명에 앞서…

이번 Zabbix 7.0 LTS 서버 설치를 위한 최소 운영체제 및 DB 버전이 상향되었습니다. 자세한 사항은 해당 링크를 참고해 주세요. ▶ Installation Requirements (클릭)

 

✔ 성능 개선 사항

 

1. 프로세스 데이터 수집 방식 변경 (동기 → 비동기)

Zabbix 7.0 LTS

  • Zabbix 데이터 수집 성능 향상을 위해 아래 세 개의 프로세스들은 데이터 수집 방식이 기존의 동기 형식에서 비동기 형식으로 변경되었습니다.

    <프로세스 리스트>
    • agent poller
    • http agent poller
    • snmp poller : snmpwalk[OID], snmpget[OID]로 수집되는 항목에 한해 적용됩니다.

 

  • 해당 비동기 프로세스들은 각 폴러 프로세스마다 한 번에 최대 1,000개까지 비동기 방식으로 수집됩니다.
  • 해당 설정은 [Zabbix Server] 설정의 [StartAgentPollers] 항목을 조정하여 폴러 갯수를 조정할 수 있습니다.

 

2. 프록시(Proxy) 기능 개선

  • 이중화 구성

Zabbix Proxy 이중화 구성

기존 Zabbix 6.0 버전의 프록시는 이중화 구성이 불가능하여 다른 서드 파티 도구를 이용하지 않으면 프록시에 장애가 생겼을 때 다른 에이전트의 데이터를 수집할 수 없는 문제점이 있었습니다. 이에 Zabbix 7.0 버전에서는 프록시의 이중화 구성을 지원하여 다운 타임 없이 데이터를 수집할 수 있게 되었습니다.

 

🔎 Zabbix 프록시 이중화 구조
프록시 이중화는 멀티 Active - Active 형태를 지원하는 구조입니다.

(1) 프록시들을 모아놓은 [Proxy Group]을 생성한 다음, 그룹 내 프록시들을 리스트업합니다.

 

(2) 호스트 설정에서 프록시 선택 시 [Proxy Group]을 선택하면 Zabbix에서 자동으로 그룹 내 각 호스트에 연결된 프록시 상태와 개수를 체크하고 연결할 프록시를 자동 지정합니다. 아래 예시는 [test zabbix-proxy] 그룹을 선택한 호스트가 해당 그룹에 있는 프록시 중 하나인 [zabbix_proxy1]으로 할당된 예시입니다.

[test zabbix-proxy] 그룹을 지정한 후 그룹 내 프록시에 자동 지정되는 예시

 

(3) 연결된 프록시에서 이슈가 발생하여 종료될 경우 Zabbix에서는 연결 상태를 판단하여 그룹에 등록된 다른 프록시와 자동 연결되도록 변경합니다.

✔ Zabbix Proxy HA의 경우 Zabbix Server HA와 동일하게 Fail-Over에 대한 지원하지만 Fail-Back은 지원하지 않습니다.



  • 메모리 버퍼 기능 추가

프록시는 기본적으로 Zabbix로부터 수집할 데이터를 에이전트에 요청한 후, 수집한 데이터를 다시 서버로 전송하는 역할을 수행합니다. 프록시는 데이터를 서버로 보내기 전 데이터베이스에 데이터를 저장한 후 전송이 완료되면 데이터베이스의 데이터를 삭제하는데요.

이때 데이터를 저장하거나 프록시 설정을 변경한다면, 이 변경 사항들은 메모리 버퍼라는 일시적인 저장 공간에 저장됩니다. 하지만 기존의 프록시 설정에서는 메모리 버퍼 설정이 하드 코딩되어 있어, 사용자가 임의로 변경할 수 없었는데요. 만약 수집해야 할 데이터가 매우 많아지면, 메모리 버퍼의 크기나 동작 방식이 성능에 영향을 줄 수 있는데 이를 조절할 수 없어 성능 문제가 발생하는 사례가 있었습니다.

Zabbix 7.0에서는 메모리 버퍼를 저장하는 방식을 사용자가 선택할 수 있으며, 그에 따라 버퍼 캐시의 크기를 직접 조정할 수 있습니다. 메모리 버퍼 캐시 크기 조정 방식은 크게 디스크, 메모리, 하이브리드로 나뉩니다.

Zabbix Proxy - Memory Buffer

(1) 디스크 방식(Disk Mode): 수집한 데이터를 기존 방식과 동일하게 데이터베이스에 저장한 후, 저장된 데이터를 서버로 전송합니다.

(2) 메모리 방식(Memory Mode): 수집한 데이터를 메모리에 저장한 후, 메모리를 통해 저장된 데이터를 서버로 전송합니다. 하지만 프록시가 중지되거나, 메모리 leak 등의 이슈가 발생할 경우 수집한 데이터는 삭제가 되어 정상적으로 데이터가 서버로 전송되지 않을 수 있습니다.

(3) 하이브리드 방식(Hybrid Mode): 메모리 leak이나 메모리 버퍼에 저장되는 일자 전까지 보내지 못하는 이슈가 발생되지 않은 한 우선 메모리에 데이터를 저장한 후 서버로 데이터를 전송합니다. 만약 메모리 측의 장애가 발생할 경우 데이터들을 디스크 모드로 전환하여 데이터베이스에 데이터를 저장한 후 데이터를 전송하며, 메모리 이슈가 해결되면 다시 메모리 모드로 전환됩니다.

 


 

✔ 웹 모니터링 개선

Zabbix 7.0 버전은 웹 사이트에서 더 많은 데이터를 수집하도록 업데이트되었습니다. 기존에는 웹 시나리오를 기반으로 사이트에 대한 응답 시간, 다운로드 속도와 실패 그리고 Status Code만 확인할 수 있지만 새로운 버전에서는 로딩 타임, 내비게이션 사이즈/시간 정보, 각 리소스를 불러오는 데 걸리는 시간 등 더 다양한 데이터 수집이 가능합니다.

 

1. 신규 웹 모니터링 기능

  • 데이터 수집 방식
    • 기존 방식(웹 시나리오): HTTP 요청 기반 데이터 수집
    • 신규 방식:
      1. 특정 서버에 브라우저 설치
      2. Zabbix 서버에서 브라우저에 리퀘스트를 요청
      3. 브라우저에서 세션 생성 후 요청에 대한 정보를 JSON 형식으로 만들어 Zabbix 서버로 전송
      4. Zabbix 서버에서 데이터 가공 후 하위 아이템으로 분리

 

  • 수집 가능한 데이터
    • Navigation , Resource
      • 암호화/복호화 한 데이터 사이즈 크기
      • DOM Content 로딩 타임
      • 파일 전송 사이즈
      • fetch 타임
      • TCP Handshake 타임
      • 응답/요청 타임

 

⚠ 테스트

  • 테스트 방법: 10.220.0.51번 서버에 셀리니움을 도커로 서비스 생성 후, 10.220.0.58번 Zabbix 서버에서 세션 생성 요청을 통해 테스트를 진행해 보았습니다.

 

전체 데이터 수집

  • 브라우저 로그
07:14:00.330 INFO [LocalNode.newSession] - Session created by the Node. Id: 1c82513bfd0c5f0dcd654934f153cd9c, Caps: Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 126.0.6478.114, chrome: {chromedriverVersion: 126.0.6478.63 (df799988fdc9..., userDataDir: /tmp/.org.chromium.Chromium...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:37349}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: linux, proxy: Proxy(), se:bidiEnabled: false, se:cdp: ws://172.17.0.2:4444/sessio..., se:cdpVersion: 126.0.6478.114, se:vnc: ws://172.17.0.2:4444/sessio..., se:vncEnabled: true, se:vncLocalAddress: ws://172.17.0.2:7900, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
07:14:00.331 INFO [LocalDistributor.newSession] - Session created by the Distributor. Id: 1c82513bfd0c5f0dcd654934f153cd9c 
 Caps: Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 126.0.6478.114, chrome: {chromedriverVersion: 126.0.6478.63 (df799988fdc9..., userDataDir: /tmp/.org.chromium.Chromium...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:37349}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: linux, proxy: Proxy(), se:bidiEnabled: false, se:cdp: ws://172.17.0.2:4444/sessio..., se:cdpVersion: 126.0.6478.114, se:vnc: ws://172.17.0.2:4444/sessio..., se:vncEnabled: true, se:vncLocalAddress: ws://172.17.0.2:7900, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
07:14:04.217 INFO [LocalSessionMap.lambda$new$0] - Deleted session from local Session Map, Id: 1c82513bfd0c5f0dcd654934f153cd9c
07:14:04.217 INFO [GridModel.release] - Releasing slot for session id 1c82513bfd0c5f0dcd654934f153cd9c
07:14:04.217 INFO [SessionSlot.stop] - Stopping session 1c82513bfd0c5f0dcd654934f153cd9c

 

  • Zabbix 서버

Zabbix Server
Zabbix Server

 

  • 대시보드

Zabbix Dashboard
Zabbix Dashboard

 

  • 추가로 zabbix에서 제공하는 자바스크립트 동작 테스트 툴인 Zabbix_JS 툴을 이용하여 데이터 수집 테스트를 진행할 수 있습니다.
[root@Jackson-Zabbix7 zabbix]# zabbix_js -w 10.220.0.51:4444 -s test.js  -p dmove.tistory.com | jq
{
  "duration": 2.2842395305633545,
  "performance_data": {
    "details": [
      {
        "navigation": {
          "entry_type": "navigation",
          "dom_content_loaded_event_start": 2.1494000005722045,
          "domain_lookup_start": 1.1081000003814698,
          "tls_negotiation_time": 0.007999999999999785,
          "request_start": 1.1181000003814696,
          "redirect_start": 0,
          "load_event_start": 2.2525,
          "name": "https://dmove.tistory.com/",
          "connect_end": 1.118,
          "dom_content_loaded_event_end": 2.230699999809265,
          "critical_ch_restart": 0,
          "decoded_body_size": 49898,
          "response_end": 1.1708000001907348,
          "secure_connection_start": 1.1101000003814698,
          "initiator_type": "navigation",
          "encoded_body_size": 13426,

 


 

✔ 대시보드 위젯 개선

기존 Zabbix 버전을 사용하고 계신 분들이라면 데이터를 시각화할 때, 제한된 기능과 디자인 때문에 아쉬움을 느끼셨을 텐데요. 이번 7.0 버전에서는 대시보드 기능이 많이 개선되었습니다. 새롭게 추가되거나 개선된 사항을 살펴보겠습니다.

 

1. 신규 추가 위젯

  • 게이지 가젯

Zabbix Gauge Gadget

 

  • HoneyComb 위젯
    Honeycomb 위젯은 모니터링되는 네트워크 인프라와 리소스에 대한 역동적이고 생생한 개요를 제공하며, 가상 머신 및 네트워크 장치와 같은 호스트 그룹과 해당 항목이 대화형 육각형 셀로 시각적으로 표현됩니다.

 

  • Top 트리거 위젯
    대시보드 위젯에 상위 트리거 위젯이 추가되어 문제가 가장 많은 트리거를 볼 수 있습니다.

Zabbix TOP Trigger widget

 

  • 호스트 및 아이템 네비게이터
    호스트 네비게이터 및 항목 네비게이터 위젯이 대시보드 위젯에 추가되었습니다. 위젯은 다양한 필터링 및 그룹화 옵션에 따라 각각 호스트 또는 항목을 표시하고, 선택한 호스트 또는 항목에 따라 다른 위젯에 표시되는 정보를 제어할 수 있습니다.

Zabbix Navigator

 

2. 개선된 위젯

  • 파이 차트

Zabbix Pie Chart
(좌) Zabbix 6.0 (우) Zabbix 7.0

 

  • 파이 차트(도넛형)

Zabbix Pie Chart
(좌) Zabbix 6.0 (우) Zabbix 7.0

 

3. 동적 위젯

동적으로 반응하는 Zabbix 7.0 위젯들은 실시간으로 변경되는 데이터를 즉각적으로 반영합니다.

Zabbix Moving Widget

 


 

✔ 사용자 MFA(Multi-Factor-Authentication) 지원

추가된 MFA 인증 방안은 아래와 같습니다.

  • Time-Based One-Time Password (TOTP) authentication
  • Duo Universal Prompt authentication

각 사용자들은 두 가지 인증 방안을 사용하여 Google Authenticator나 자체 인증 솔루션 등 다양한 방법으로 인증을 진행할 수 있습니다.

 

아래 영상은 Google Authenticator 기반 로그인 예시입니다.

  • Google Authenticator

  • 인증 예시
 

 


 

Monitor Everything! 위에 설명드린 내용 외에 Zabbix 7.0 LTS의 변경 사항, 버그 수정 및 새로운 기능이 궁금하시다면 Zabbix 공식 홈페이지내 릴리스 노트에서 자세한 내용을 확인하실 수 있습니다.