Notice
Recent Posts
Recent Comments
Tags
- drbd
- mariadb
- 웰카
- perplexity
- port description
- n15148
- wildfly jboss
- admin port
- maxscale
- 우파푸른하늘80만이벤트
- CEP
- 참교육
- pod
- data-door
- Network
- docker
- Path
- mgmtip
- unix_socket
- etcd
- snmp
- Netflix
- openldap
- MotD
- 우파푸른하늘
- Galera Cluster
- Auth
- CentOS
- Storage
- n1548
- dell
- Kubernetes
- RHEL8
- vmware
- banner
- web&was apche htaccess
- 진상부모_물러가라
반응형
250x250
전산쟁이의 기억노트
02. Zabbix Server k8s에서 설치하기 본문
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
반응형
Comments
