Zabbix 7.0 Server, web 컨테이너 구성 (DB는 vm)

2025. 2. 22. 17:35·모니터링(Zabbix,Grafana)

 

테스트용 Zabbix 환경이 날아가서 재구성 진행 

 

구성 

  • OS: Ubuntu 24.04.2 LTS
  • DB: psql (PostgreSQL) 16.6 (Ubuntu 16.6-0ubuntu0.24.04.1)
  • Docker: Docker version 28.0.0, build f9ced58
  • 서버구성
    • zdb / 10.0.0.210 (vm)
    • docker1 / 10.0.0.200 (vm)
      •  zabbix-server-pgsql / 172.0.1.2 (container)
      • zabbix-web-nginx-pgsql / 172.0.1.3 (container)
    • docker2 / 10.0.0.201 (vm)
      • grafana / 172.0.2.2 (container) 

 

ZDB 

1. 패키지 설치

# cd /tmp
# wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb
# dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb
# apt update
# apt install -y postgresql
# apt install -y zabbix-agent2
# systemctl status postgresql
# systemctl enable postgresql

 

 

 

2. DB 구성

  • DB 초기화
# sudo -u postgres createuser --pwprompt zabbix 
# sudo -u postgres createdb -O zabbix zabbix

 

  • DB 스키마 생성
# zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix

 

  • DB 외부 연동 설정
# vi /etc/postgresql/16/main/postgresql.conf

(변경 전) listen_addresses = 'localhost'

(변경 후) listen_addresses = '*' 

 

# vi /etc/postgresql/16/main/pg_hba.conf

IPv4 local connections: 수정
(변경 전) host    all             all             127.0.0.1/32            scram-sha-256
(변경 후) host    all             all             0.0.0.0/0            scram-sha-256

 

  • DB 권한 설정
# sudo -u postgres psql

 

데이터베이스 목록 확인

postgres=# \l

 

권한 부여

postgres=# GRANT ALL PRIVILEGES ON DATABASE zabbix TO zabbix;

 

 

데이터 베이스 목록 확인

postgres=# \l

 

나가기

postgres=# \q

 

 

3. 서비스 재가동

# systemctl restart postgresql

 


 

DOCKER1

1. Docker 구성

  • 참고: 리눅스 VM에 Docker 구성(Docker-Compose 포함) — 메모장

 

2. Docker 네트워크 변경

  • 기존 172.17.0.0/16 에서 172.1.0.1/24로 변경 (사용하는 환경에 따라 네트워크 대역 선택)
  • daemon.json 파일 신규 생성
    • docker0 네트워크는 172.1.0.1 ~ 255까지의 IP 대역 사용
    • 해당 호스트에서는 172.1.0.0/16 네트워크 주소 풀을 가지고 있어 추가 네트워크(/24) 생성 가능
# vi /etc/docker/daemon.json
----------------------------------
{
        "bip":"172.1.0.1/24",
        "default-address-pools":
        [
                {"base":"172.1.0.0/16","size":24}
        ]
}

 

  • 도커 서비스 재가동
# systemctl restart docker
# systemctl status docker
# systemctl enable docker

 

 

3. 계정 설정

  • dockeruser 계정 생성 및 sudo 권한 부여
# adduser dockeruser
# echo 'dockeruser ALL=(ALL) NOPASSWD:ALL'|sudo EDITOR='tee -a' visudo

 

  • zabbix 사용자에 대한 Docker 소켓 파일을 액세스 할 수 있도록 docker 그룹에 추가
# usermod -aG docker zabbix

 

  • 도커 서비스 재가동
# systemctl restart docker

 

 

 

4. Zabbix Server 컨테이너 실행

docker run -d --name zabbix-server-pgsql \
 -e DB_SERVER_HOST=10.0.0.210 \
 -e POSTGRES_USER=zabbix \
 -e POSTGRES_PASSWORD=설정한패스워드 \
 -e POSTGRES_DB=zabbix \
 -e TZ=Asia/Seoul \
 -p 10051:10051 \
 --restart unless-stopped \
 zabbix/zabbix-server-pgsql:ubuntu-7.0.9

 

 

5. Zabbix Web 컨테이너 실행

  • Zabbix Server 는 IP가 변경되더라도 접속 가능하게 link 옵션을 사용하여 컨테이너 이름으로 연결
docker run -d --name zabbix-web-nginx-pgsql \
  -e DB_SERVER_HOST=10.0.0.210 \
  -e POSTGRES_USER=zabbix \
  -e POSTGRES_PASSWORD=설정한패스워드 \
  -e POSTGRES_DB=zabbix \
  -e TZ=Asia/Seoul \
  -p 80:8080 \
  -p 443:8443 \
  --link zabbix-server-pgsql:zabbix-server \
  --restart unless-stopped \
  zabbix/zabbix-web-nginx-pgsql:ubuntu-7.0.6

 

 

6. docker1 호스트 서버 zabbix agent2 설치

# cd /tmp
# wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb
# dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb
# apt update
# apt install -y zabbix-agent2

 


 

DOCKER2

1. Docker 구성

  • 참고: 리눅스 VM에 Docker 구성(Docker-Compose 포함) — 메모장

 

2. Docker 네트워크 변경

  • 기존 172.17.0.0/16 에서 172.2.0.1/24로 변경 (사용하는 환경에 따라 네트워크 대역 선택)
  • daemon.json 파일 신규 생성
# vi /etc/docker/daemon.json
----------------------------------
{
        "bip":"172.2.0.1/24",
        "default-address-pools":
        [
                {"base":"172.2.0.0/16","size":24}
        ]
}

 

  • 도커 서비스 재가동
# systemctl restart docker
# systemctl status docker
# systemctl enable docker

 

 

3. 계정 설정

  • dockeruser 계정 생성 및 sudo 권한 부여
# adduser dockeruser
# echo 'dockeruser ALL=(ALL) NOPASSWD:ALL'|sudo EDITOR='tee -a' visudo

 

  • zabbix 사용자에 대한 Docker 소켓 파일을 액세스 할 수 있도록 docker 그룹에 추가
# usermod -aG docker zabbix

 

  • 도커 서비스 재가동
# systemctl restart docker

 

 

4. Grafana 컨테이너 실행

docker run -d --name grafana \
 -e TZ=Asia/Seoul \
 -p 3000:3000 \
 -v grafana-storage:/var/lib/grafana \
 --restart unless-stopped \
 grafana/grafana:11.4.0

 

 

5. Zabbix 플러그인 설치

# docker exec -it grafana grafana cli plugins install alexanderzobnin-zabbix-app
# docker restart grafana

 

 

6. docker2 호스트 서버 zabbix agent2 설치

# cd /tmp
# wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb
# dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb
# apt update
# apt install -y zabbix-agent2

 

 


 

Zabbix Agent2 설정

1. docker1

  • passive 모드 구성이라 Server 부분만 수정
    • zabbix server 컨테이너 IP 등록 (도커 서비스 재가동 시 변경 될 수 있음)
    • zabbix server 컨테이너가 운영중인 도커 호스트 서버의 경우 다른 서버와 동일하게 도커 호스트 서버 IP 등록 시 에이전트 연결이 되지 않음. (Get value from agent failed: cannot read response: cannot read from socket: [104] Connection reset by peer)
  • active 모드 설정 부분의 ServerActive=, Hostname= 부분은 주석 처리 (불필요한 로그 제거)
vi /etc/zabbix/zabbix_agent2.conf
---------------------------------
Server=172.0.1.2

 

 

2. 그 외 서버

  • passive 모드 구성이라 Server 부분만 수정
    • zabbix server 컨테이너가 설치 된 도커 호스트 서버 IP 등록
  • active 모드 설정 부분의 ServerActive=, Hostname= 부분은 주석 처리 (불필요한 로그 제거)
vi /etc/zabbix/zabbix_agent2.conf
---------------------------------
Server=10.0.0.200

 

 

3. agent2 서비스 재가동

# systemctl restart zabbix-agent2.service

 


 

Zabbix 웹 접속, 호스트 등록 및 추가 설정

1. 호스트 등록 테스트

  • 접속- http://10.0.0.200
  • 계정 - Admin / zabbix  (초기 패스워드)

 

 

 

 

모니터링 대상 및 항목은 필요 시 천천히 진행...

 


 

Grafana 웹 접속 및 Zabbix 연동

1. 웹 접속

  • 접속 - http://10.0.0.201:3000
  • 계정 - admn / admin (초기 패스워드)

 

2. Zabbix plugins 활성화

  • Administration - Plugins and data - Plugins
  • zabbix 검색 후 오른쪽 상단 enable 클릭

 

3. Zabbix 연동

  • Connections - Data sources 
  • Zabbix 선택 후 연결 정보 등록 후 "Save &test" 클릭
    • URI - http://10.0.0.200/api_jsonrpc.php
    • Zabbix Connection - Admin / 설정한 패스워드

 

 

이 후 마음에 드는 대시보드를 선택하여 생성하면 됨.

  • Grafana dashboards: https://grafana.com/grafana/dashboards/
저작자표시 비영리 변경금지 (새창열림)
'모니터링(Zabbix,Grafana)' 카테고리의 다른 글
  • zabbix 컨테이너로 실행 시 system infomation 알람 제거 하기
  • Grafana 버전 업그레이드 (11.4.0 -> 11.6.1)
  • zabbix docker 모니터링 오류 (Cannot fetch data: Get http://1.28/system/df : dial unix /var/run/docker.sock: connect: permission denied.)
  • Zabbix를 통한 TCP/UDP 포트 상태 모니터링(UserParameter 사용)
기억보다는 기록을...
기억보다는 기록을...
내가 보려고 정리하는 글..
  • 기억보다는 기록을...
    메모장
    기억보다는 기록을...
    • 분류 전체보기
      • 클라우드(Azure, AWS, Alibaba)
      • 모니터링(Zabbix,Grafana)
      • 가상화(VMWare, Hyper-V)
      • Docker
      • Ansible
      • Linux
      • Windows
      • 이것저것
      • SQL
      • -------------------------
      • 재테크
  • 전체
    오늘
    어제
  • hELLO· Designed By정상우.v4.10.2
기억보다는 기록을...
Zabbix 7.0 Server, web 컨테이너 구성 (DB는 vm)
상단으로

티스토리툴바