이 문서는 Zabbix 7.4 환경에서 MySQL 파티션 구조를 적용, Zabbix 패키지 설치 및 스키마 로드 과정을 정리한 실무용 가이드다. 이전에 썻던 아래 글에 이어 실무기반으로
가이드한 글이니 도움이 되었으면 한다.
1) 전제 및 범위
- OS: Ubuntu 22.04
- Zabbix: 7.4 (운영 EOL 민감하면 7.0 LTS 권장)
- DB: MySQL 8.x
- 웹: Apache + zabbix-frontend-php
- 목적: 설치와 스키마 import까지. 파티션은 다음 편부터 진행.
운영 환경에서 보안 인증(컴플라이언스)을 받아야 하면 지원 기간이 짧은 릴리스를 피한다. EOL에 민감한 조직은 7.0 LTS로 고정.
2) Zabbix 저장소 추가
- 레포지토리 추가
# wget https://repo.zabbix.com/zabbix/7.4/release/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.4+ubuntu22.04_all.deb
# dpkg -i zabbix-release_latest_7.4+ubuntu22.04_all.deb
apt update
체크포인트
/etc/apt/sources.list.d/zabbix.list생성 확인apt update시zabbix.com관련 인덱스가 받아지는지 확인
3) Zabbix 서버/프론트/에이전트 설치
- zabbix server / frontend / agent2 설치
# apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent2
- zabbix agent2 plugin (필요한 플러그인만 선택 설치)
# apt install -y zabbix-agent2-plugin-mongodb zabbix-agent2-plugin-mssql zabbix-agent2-plugin-postgresql
체크포인트
/etc/zabbix/하위 설정 파일 생성(특히zabbix_server.conf)- Apache 모듈/설정이 함께 들어오며
/etc/apache2/conf-enabled/zabbix.conf링크되는지 확인
4) MySQL 설치
# apt install -y mysql-server
체크포인트
systemctl status mysql→ active (running)- Ubuntu 22.04 기본 설정에선
auth_socket인증이 활성화된 경우가 있음
: 운영체제 로그인 사용자가root여야만 MySQL에 접속 가능
5) DB 초기화 (DB/계정/권한/함수설정)
# MySQL 접속
mysql -uroot -p
# (패스워드 입력)
# DB/계정/권한
mysql>create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql>create user zabbix@localhost identified by 'password';
#password 부분 실사용 비밀번호로 변경
mysql>grant all privileges on zabbix.* to zabbix@localhost;
# 함수 신뢰 설정(임시)
mysql>set global log_bin_trust_function_creators = 1;
quit
설명
log_bin_trust_function_creators=1을 임시로 켠다.- 이유: Zabbix 스키마 안에는
get_host_agent()등 STORED FUNCTION이 포함된다. 바이너리 로그 활성화 환경에서 SUPER 권한 없는 계정으로 FUNCTION 생성은 기본적으로 차단되어 있어 임포트 시 필요.
6) Zabbix 스키마 import
- zabbix.sql 스키마 import
# zcat /usr/share/zabbix/sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
체크포인트
- 오류 없이 종료
mysql -uzabbix -p zabbix -e "show tables;"→ history/trends 등 핵심 테이블 생성 확인
7) 함수 신뢰 설정 원복
mysql -uroot -p
# (패스워드 입력)
mysql>set global log_bin_trust_function_creators = 0;
quit
설명(보안)
- FUNCTION 생성 신뢰 옵션은 임시로만 사용. 스키마 생성 후 바로 원복한다.
8) Zabbix 서버 DB 접속 정보 등록
- Zabbix 서버 설정
# vi /etc/zabbix/zabbix_server.conf
# 아래 항목에 DB 비밀번호 입력
DBName=zabbix (기본)
DBUser=zabbix (기본)
DBPassword=여기에_실제_비밀번호
9) 서비스 기동
# systemctl restart zabbix-server zabbix-agent2 apache2
# systemctl enable zabbix-server zabbix-agent2 apache2
체크포인트
systemctl status zabbix-server→ active (running)- 웹 UI 접근:
http://<서버IP>/zabbix
타임존은 웹(UI) 표시용(KST 등)과 DB 파티션 경계(UTC epoch)가 분리된다. 파티션 계산은 UTC로만 간다. UI는 표시만 로컬 타임존으로 본다. (자세한 파티션/자동화는 3~4편에서 다룸)
10) 다음 편 예고
- 2편: 디스크 분리(AppArmor, 권한,
innodb_directories), General Tablespace 생성 - 3편: file-per-table 전환 + 파티션 최초 구성(History=일/epoch, Trends=월)
- 4편: 자동화 스크립트 + 크론 + 보존주기(DAYS_KEEP/MONTHS_KEEP)
- 5편: Housekeeper 비활성 + Zabbix 캐시/프로세스 + MySQL InnoDB 튜닝
점검 포인트
- 스키마 임포트 실패 시:
log_bin_trust_function_creators상태 확인 후 재실행 - 계정 인증 오류: DB 사용자/비밀번호,
mysql_native_passwordvsauth_socket상태 확인 - 서비스 기동 실패:
/var/log/zabbix/zabbix_server.log,/var/log/apache2/error.log확인
ⓒ 2025 엉뚱한 녀석의 블로그 [quirky guy's Blog]. 본문 및 이미지를 무단 복제·배포할 수 없습니다. 공유 시 반드시 원문 링크를 명시해 주세요.
ⓒ 2025 엉뚱한 녀석의 블로그 [quirky guy's Blog]. All rights reserved. Unauthorized copying or redistribution of the text and images is prohibited. When sharing, please include the original source link.
ⓒ 2025 엉뚱한 녀석의 블로그 [quirky guy's Blog]. All rights reserved. Unauthorized copying or redistribution of the text and images is prohibited. When sharing, please include the original source link.
🛠 마지막 수정일: 2025.10.28
답글 남기기
댓글을 달기 위해서는 로그인해야합니다.