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