카테고리 없음

05. Mysql 모니터링방법

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

MySQL 대상 Zabbix Agent 모니터링

  • 본 문서는 Zabbix에서 MySQL 또는 MariaDB를 Agent 기반으로 모니터링하는 절차를 설명한다.
  • 최신 권장 방식은 Zabbix agent 2와 MySQL by Zabbix agent 2 템플릿을 사용하는 방법이다.
  • 구버전 호환 또는 기존 운영 환경에서는 MySQL by Zabbix agent 템플릿과 UserParameter 기반 설정도 사용할 수 있다.

구성 개요

{width=700px}

  • Zabbix Server 또는 Proxy: 수집 데이터 저장, 트리거 평가, 알림 처리 담당.
  • MySQL 서버: 대상 DBMS 서버.
  • Zabbix Agent 2: MySQL 플러그인을 통해 DB 상태를 수집하는 컴포넌트.
  • 통신 포트:
    • Zabbix Server/Proxy -> Agent: 10050/tcp, Passive check.
    • Agent -> Zabbix Server/Proxy: 10051/tcp, Active check.
    • Agent -> MySQL: 3306/tcp.

권장 방식

  • 공식 가이드는 MySQL 모니터링에 Zabbix agent 2 사용을 안내한다.
  • Agent 2는 플러그인 기반 구조로 데이터베이스 모니터링에 적합하며, 템플릿과 매크로 기반 설정이 가능하다.
  • 실무에서는 OS 모니터링 + MySQL 모니터링을 동일 호스트에 함께 연결하는 방식이 일반적이다.

사전 준비

  • 대상 서버에는 MySQL 또는 MariaDB가 정상 구동 중이어야 한다.
  • 대상 서버에는 zabbix-agent2가 설치되어 있어야 한다.
  • Zabbix Web UI에서 Host가 생성되어 있어야 하며, Agent interface가 등록되어 있어야 한다.
  • MySQL 접속용 전용 모니터링 계정을 별도로 생성하는 것이 권장된다.

MySQL 모니터링 계정 생성

  • Zabbix 공식 가이드는 모니터링 전용 계정을 생성해 필요한 권한만 부여하는 방식을 사용한다.
  • 예시는 zbx_monitor 계정을 사용한다.

sql
CREATE USER 'zbx_monitor'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT USAGE, REPLICATION CLIENT, PROCESS, SHOW DATABASES, SHOW VIEW ON . TO 'zbx_monitor'@'localhost';
FLUSH PRIVILEGES;

  • 원격 접속이 필요한 구조라면 localhost 대신 적절한 접근 대상을 지정해야 한다.
  • 최소 권한 원칙에 따라 불필요한 쓰기 권한은 부여하지 않는 것이 좋다.

Agent 2 설치

  • Rocky Linux 계열 예시는 다음과 같다.
  • 운영체제에 맞는 공식 저장소 패키지를 사용한다.
rpm -Uvh https://repo.zabbix.com/zabbix/7.4/release/rhel/9/noarch/zabbix-release-latest.el9.noarch.rpm
dnf clean all
dnf install -y zabbix-agent2
  • 설치 후 Agent 2 서비스를 활성화한다.
systemctl enable --now zabbix-agent2

MySQL 접속 정보 설정

  • Zabbix 공식 문서는 MySQL 연결 정보를 매크로와 플러그인 설정으로 관리한다.

  • Web UI에서는 아래 매크로를 주로 사용한다.

    • {$MYSQL.DSN}
    • {$MYSQL.USER}
    • {$MYSQL.PASSWORD}
  • 일반적인 로컬 접속 예시는 아래와 같다.

{$MYSQL.DSN}=tcp://localhost:3306
{$MYSQL.USER}=zbx_monitor
{$MYSQL.PASSWORD}=StrongPassword
  • DB가 같은 서버에 있지 않다면 localhost 대신 실제 DB 주소를 지정한다.

Web UI 등록

  • Zabbix Web UI에서 대상 Host를 생성하거나 기존 Host를 연다.
  • Templates에서 MySQL by Zabbix agent 2를 연결한다.
  • Macros 탭에서 아래 값을 설정한다.

매크로 예시

  • {$MYSQL.DSN} = tcp://127.0.0.1:3306

  • {$MYSQL.USER} = zbx_monitor

  • {$MYSQL.PASSWORD} = StrongPassword

  • 저장 후 Latest data에서 MySQL 관련 항목이 수집되는지 확인한다.

수집 항목 예시

  • MySQL availability
  • Version
  • Uptime
  • Queries per second
  • Threads connected
  • InnoDB 관련 상태값
  • Replication 관련 상태값, 구성에 따라 다름

Passive / Active 선택

  • OS Agent 통신은 Passive 또는 Active 중 하나 또는 둘 다 사용할 수 있다.
  • MySQL 메트릭 자체는 Agent 2가 DB에 직접 접속해 가져오므로, 핵심은 Agent <-> Zabbix 경로와 Agent -> MySQL 경로가 모두 정상이어야 한다.
  • 대규모 환경에서는 Agent 쪽은 Active check 중심으로 운영하고, DB 접속은 로컬 또는 근접 네트워크로 제한하는 구성이 안정적이다.

방화벽 및 접근 제어

  • Zabbix Agent 포트는 기존 Agent 운영 정책과 동일하게 적용한다.
    • Passive: 10050/tcp
    • Active: 10051/tcp
  • MySQL은 기본적으로 3306/tcp를 사용한다.
  • 가능하면 Agent와 MySQL을 같은 서버에 두고 localhost로 접속하게 구성하는 편이 보안상 유리하다.

대용량 운영 추천값

  • 대규모 DB 서버 환경에서는 Agent 2 + Active check + Proxy 조합이 확장성 측면에서 유리하다.
  • MySQL 템플릿은 먼저 기본값으로 시작하고, 불필요한 항목은 운영 중 점진적으로 줄이는 것이 좋다.
  • 추천 시작 기준은 아래와 같다.
항목 추천값
Agent 방식 Zabbix agent 2
템플릿 MySQL by Zabbix agent 2
OS 수집 방식 Active 우선, Passive 보조
DB 접속 경로 가능하면 localhost
계정 권한 모니터링 최소 권한만 부여
Host 그룹 Database 계열로 분리
Proxy 사용 DB 서버가 많거나 망이 분리된 경우 적극 검토

구버전 방식

  • 구버전 템플릿을 사용할 경우 template_db_mysql.conf 파일을 Agent 설정 디렉터리에 배치하고, .my.cnf 파일에 접속 계정을 저장하는 방식이 사용된다.
  • Linux에서는 기본적으로 /var/lib/zabbix/.my.cnf, Windows에서는 c:\my.cnf 위치가 사용될 수 있다.
  • 기존 환경이 이미 UserParameter 기반으로 운영 중이라면 즉시 교체하기보다 Agent 2 방식 전환 계획을 별도로 잡는 것이 현실적이다.

점검 항목

  • zabbix-agent2 서비스가 정상 실행 중인지 확인한다.
  • Agent에서 MySQL 3306 접속이 가능한지 확인한다.
728x90
반응형