일반 Zabbix Agent가 mysql 클라이언트를 실행해 DB 지표를 수집하는 구성입니다. 원노트의 agent 6 예제를 기준으로 하며 Agent 2의 내장 MySQL 플러그인 설정과 구분합니다. 설치 버전과 같은 템플릿·UserParameter 파일을 사용합니다.
모니터링 전용 계정
MySQL에 지표 수집용 계정을 생성합니다. 전체 데이터 읽기 권한을 무조건 주는 대신 사용할 템플릿의 공식 요구 권한을 확인합니다. 아래는 지표용 권한 예시이며 사용하는 MySQL 버전과 아이템 쿼리에 따라 추가 조정이 필요합니다.
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'CHANGE_ME_PASSWORD';
GRANT REPLICATION CLIENT, PROCESS, SHOW DATABASES, SHOW VIEW ON *.* TO 'zabbix'@'localhost';클라이언트 인증 파일
실제로 UserParameter가 읽는 HOME·defaults-file 경로를 확인합니다. 예시는 /var/lib/zabbix/.my.cnf입니다. zabbix 계정만 읽을 수 있도록 파일을 600으로 설정하고 실제 새 암호로 바꿉니다.
[client]
user=zabbix
password=CHANGE_ME_PASSWORD
host=localhostMySQL 소켓 경로와 포트가 기본과 다르면 같은 파일에 지정합니다. 인증 문자열을 UserParameter 명령행에 직접 붙이지 않습니다.
UserParameter와 테스트
공식 템플릿의 template_db_mysql.conf 또는 배포판에 포함된 대응 파일을 agent include 디렉터리에 둡니다. 소스 설치 mysql은 실제 바이너리의 절대 경로를 사용합니다. 원본의 전체 supplementary group을 덮어쓰는 usermod -G 예제는 사용하지 않습니다.
sudo -u zabbix mysql --defaults-extra-file=/var/lib/zabbix/.my.cnf -e 'SELECT 1'
sudo systemctl restart zabbix-agent
sudo journalctl -u zabbix-agent -n 30 --no-pager호스트에 같은 버전의 MySQL 템플릿을 연결하고 수집 데이터·미지원 아이템의 오류를 확인합니다. MySQL 8.4 등에서 바뀐 복제 쿼리와 구형 템플릿 호환성도 점검합니다. 단순 접속 성공과 모든 지표 수집 성공은 구분합니다.
참고: https://www.zabbix.com/integrations/mysql