카테고리 없음

02. Zabbix Server k8s에서 설치하기

잘나가는전산쟁이 2026. 8. 5. 02:18
728x90
반응형

Zabbix Server를 Kubernetes Helm Chart로 배포

  • 본 문서는 Kubernetes 클러스터에 Zabbix Server를 Helm Chart로 배포하는 절차를 설명한다.
  • 공식 Helm Chart는 PostgreSQL 또는 TimescaleDB를 데이터베이스 백엔드로 사용하며, MySQL/MariaDB는 지원하지 않는다.
  • 기본 구성은 Zabbix Server, Zabbix Web, Zabbix Agent, Zabbix Proxy, PostgreSQL로 이루어진다.

사전 준비

  • Kubernetes cluster 1.21 이상이 필요하다.
  • Helm 3 이상과 kubectl이 필요하다.
  • PersistentVolume provisioner가 있으면 PostgreSQL 데이터 영속성 구성이 더 쉬워진다.
  • Zabbix를 배포할 namespace를 미리 정한다. 보통 monitoring을 사용한다.

Helm Repository 추가

  • Zabbix 공식 Helm repository를 추가한다.
  • $> helm repo add zabbix-community https://zabbix-community.github.io/helm-zabbix $> helm repo update
  • 사용 가능한 차트 버전을 확인한다.
  • $> helm search repo zabbix-community/zabbix -l

차트 버전 선택

  • 사용하려는 Zabbix 버전에 맞춰 Helm Chart 버전을 고른다.
  • 공식 문서는 예시로 특정 차트 버전을 지정한 뒤 설치하는 방식을 안내한다.
  • $> export ZABBIX_CHART_VERSION='7.0.6'
  • 운영 환경에서는 Zabbix Server 버전과 차트 버전의 호환성을 먼저 확인하는 것이 좋다.

기본 values 추출

  • 차트의 기본 설정값을 파일로 내보낸 뒤 환경에 맞게 수정한다.
  • $> helm show values zabbix-community/zabbix --version $ZABBIX_CHART_VERSION > $HOME/zabbix_values.yaml
  • 이후 아래 항목을 주로 수정한다.
    • PostgreSQL 접속 정보.
    • Zabbix Server replica 수.
    • Ingress 설정.
    • Persistence 설정.
    • Zabbix Agent 실행 방식.

values 주요 설정

  • 공식 차트는 PostgreSQL/TimescaleDB를 백엔드로 사용한다.
  • 내부 PostgreSQL을 쓸지, 외부 PostgreSQL을 쓸지 먼저 결정한다.
  • 기본적으로 postgresql.enabled=true이며, 외부 DB를 쓸 경우 관련 값을 수정한다.
  • Zabbix Server HA를 사용할 경우 Server replica 수를 2개 이상으로 설정한다.

자주 수정하는 항목

  • zabbixImageTag: 사용할 Zabbix 이미지 태그.
  • postgresql.enabled: 내부 DB 사용 여부.
  • postgresAccess.host: 외부 DB 사용 시 DB 호스트.
  • postgresAccess.database, user, password.
  • zabbixServer.zabbixServerHA: Server HA 활성화 여부.
  • zabbixAgent.runAsDaemonSet: 노드별 Agent를 DaemonSet으로 실행할지 여부.
  • ingress.enabled: 외부 노출 여부.

배포 전 점검

  • Helm dry-run으로 렌더링 결과를 먼저 확인한다.
  • $> helm upgrade --install zabbix zabbix-community/zabbix \ --dependency-update \ --create-namespace \ --version $ZABBIX_CHART_VERSION \ -f $HOME/zabbix_values.yaml -n monitoring --debug --dry-run
  • 리소스 이름, Service, PVC, Secret 생성 여부를 확인한다.
  • PostgreSQL 저장소와 리소스 요청/제한값도 함께 검토한다.

실제 배포

  • 문제 없으면 실제로 설치한다.
  • $> helm upgrade --install zabbix zabbix-community/zabbix \ --dependency-update \ --create-namespace \ --version $ZABBIX_CHART_VERSION \ -f $HOME/zabbix_values.yaml -n monitoring --debug
  • Namespace는 monitoring을 권장하지만, 조직 정책에 맞게 변경 가능하다.

배포 확인

  • Pod 상태를 확인한다.
  • $> kubectl get pods -n monitoring
  • 서비스와 배포 상태를 확인한다.
  • $> kubectl get svc -n monitoring $> kubectl get deploy,statefulset,ds -n monitoring
  • 문제 발생 시 Pod 로그를 확인한다.
  • $> kubectl logs -f pods/POD_NAME -n monitoring
  • 상세 상태가 필요하면 describe를 사용한다.
  • $> kubectl describe pods/POD_NAME -n monitoring

Zabbix 접속

  • 가장 간단한 접근 방법은 port-forward이다.
  • $> kubectl port-forward service/zabbix-zabbix-web 8888:80 -n monitoring
  • 브라우저에서 http://localhost:8888으로 접속한다.
  • 기본 로그인 정보는 Admin / zabbix이다.

Kubernetes 모니터링 연계

  • Zabbix Kubernetes 통합은 Helm Chart 설치 후 템플릿을 Import하고, 자동 생성되는 토큰을 사용하는 흐름이다.
  • 토큰은 다음 명령으로 확인할 수 있다.
  • $> kubectl get secret zabbix-zabbix-helm-chart -n monitoring -o jsonpath={.data.token} | base64 -d
  • Kubernetes 모니터링에서는 다음 템플릿을 주로 사용한다.
    • Kubernetes nodes by HTTP
    • Kubernetes cluster state by HTTP
    • Kubernetes API server by HTTP
    • Kubernetes Controller manager by HTTP
    • Kubernetes Scheduler by HTTP
    • Kubernetes kubelet by HTTP

운영 시 참고 사항

  • 공식 차트는 PostgreSQL/TimescaleDB 백엔드를 사용하므로, MySQL 기반 Zabbix 배포와는 차이가 있다.
  • 대규모 환경에서는 PostgreSQL persistence, Resource requests/limits, Replica 수, Proxy 사용 여부를 함께 검토해야 한다.
  • Zabbix Server HA를 사용할 경우 replica를 늘리는 것만으로 자동 HA 구성이 가능하다.
  • Kubernetes 모니터링은 템플릿 매크로와 필터링 매크로를 적절히 설정해야 대규모 클러스터에서 성능 저하를 줄일 수 있다.


http://igoni.kr/02.Open-Infra/01.%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81/Zabbix%EA%B5%AC%EC%84%B1%ED%95%98%EA%B8%B0/02.%20Zabbix%20Server%20k8s%EC%97%90%EC%84%9C%20%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0.html

 

02. Zabbix Server k8s에서 설치하기 - 이곤아이.kr

02. Zabbix Server k8s에서 설치하기 Zabbix Server를 Kubernetes Helm Chart로 배포 본 문서는 Kubernetes 클러스터에 Zabbix Server를 Helm Chart로 배포하는 절차를 설명한다. 공식 Helm Chart는 PostgreSQL 또는 TimescaleDB를 데

igoni.kr

 

 

728x90
반응형