Percona Dashboard – MySQL 모니터링
Percona Dashboard에서 조회할 수 있는 MySQL 모니터링 지표는 앞서 연동한 mysqld exporter가 주기적으로 수집하여, Prometheus가 주기적으로 가져와(scraping) 저장하고 있는 정보(metric)를 조회하는 것이다.
MySQL 모니터링 지표에 대한 대시보드는 MySQL Overview, MySQL InnoDB Metrics, MySQL Table Statistics, MySQL User Statistics, MySQL Replication 등이 있다. 이 지표들은 mysqld exporter로부터 수집한 MySQL 서버의 전역 변수(Global Variables)와 전역 상태 정보(Global Status) 등의 주요 지표들을 시간별, 기간별로 보여준다.
본 장에서는 MySQL Overview, MySQL InnoDB Metrics, MySQL Table Statistics, MySQL User Statistics, MySQL Replication 다섯 개 대시보드의 주요 그래프에 대해서 간단히 알아보자.
010. MySQL – MySQL Overview
MySQL Overview는 모니터링 대상 MySQL 서버의 주요 모니터링 지표를 보여준다.
- Connections, Active Thread, Thread Cache 등.
MySQL 서버의 커넥션과 스레드의 상태별 수, 스레드 캐시 사용량 등을 보여준다.
- Top Command Counter/Counter Houry, Handlers
MySQL 서버에서 실행되는 SQL의 유형별 실행 횟수 상위 5개 SQL 유형 실행 횟수(초당)를 보여준다(Top Command Counters). 또한 최근 24시간 동안의 유형별 SQL 실행횟수를 시간당 누적 횟수로도 보여준다(Top Command Coounters Hourly). MySQL Handler 그래프는 MySQL서버의 주요 핸들러의 초당 사용량을 보여준다.
020. MySQL – MySQL InnoDB Metrics
MySQL 서버에서 사용하는 InnoDB 엔진과 관련된 성능지표를 나타낸다.
- InnoDB Buffer Pool Size, InnoDB Row Operations 등.
InnoDB 버퍼 풀의 전체크기와 실제 물리 메모리에서 InnoDB 버퍼 풀의 용량이 차지하는 비율, InnoDB 버퍼 풀의 초당 행 읽기/쓰기 횟수 등의 지표등을 보여준다.
- InnoDB Buffer Pool Content, Pages, I/O 등
InnoDB 버퍼 풀에 적재되어 있는 데이터 량(크기, 페이지 수)와 아직 디스크로 플러시 되지 않은 데이터 량을 보여준다. 또한 InnoDB 버퍼 풀의 읽기/쓰기 페이지 수, 읽기/쓰기 요청 횟수 등을 보여준다.
030. MySQL – MySQL Table Statistics
MySQL Table Statistics 대시보드는 MySQL 서버의 모든 테이블에 대한 간략한 통계정보(테이블 크기, 행 읽기 횟수 등)를 보여준다.
- Table Size
mysqld expoter 프로세스를 실행할 때, “-collect.infor_schema.tables=true” 옵션을 추가하여 실행하면 테이블 관련 통계정보를 수집한다. 이 테이블 통계 정보는 MySQL 서버의 information_schema 데이터베이스의 tables 테이블에 저장된 통계정보를 수집하는 것이다.
전체 데이터베이스 크기, 데이터베이스별 크기 상위 5개, 테이블별 크기 상위 5개 등의 사이즈 정보를 보여준다.
- Table Activity
mysqld expoter 프로세스를 실행할 때, "-collect.infor_schema.tablestats=true" 옵션을 추가하여 실행하면 해당 통계정보를 수집한다. 이때, 모니터링 대상 MySQL 서버의 전역 변수(Global Variables) 중 사용자 통계정보 수집 기능을 사용 중이어야 한다(userstats=1). MySQL의 클론 DB인 MariaDB와 Percona Server에서만 사용할 수 있는 기능이다.
Table Activity 항목의 그래프는 읽은 행의 수, 변경 행의 수가 많은 상위 5개 테이블의 행 읽기 수, 변경 행의 수 등의 테이블 관련 모니터링 지표를 보여준다.
Top Tables by Auto Incremeht Usage 그래프는 auto_increment 속성의 컬럼의 최대 값 대비 현재 값을 백분율로 보여준다.
이 지표는 mysqld expoter 프로세스를 실행할 때, "-collect.auto_increment.columns=true " 옵션을 추가하여 실행해야 해당 통계정보를 수집한다.
040. MySQL – MySQL User Statistics
MySQL Table Statistics 대시보드는 MySQL 서버의 유저들에 대한 간략한 통계정보(유저별 접속 횟수, 유저별 CPU사용시간, 유저별 행 추출/변경 휫수 등)를 보여준다. 이 지표들은 mysqld expoter 프로세스를 실행할 때, "-collect.infor_schema.userstats=true" 옵션을 추가하여 실행해야 해당 통계정보를 수집한다.
MySQL Table Statistics 대시보드의 Table Activity 항목의 그래프와 동일하게 사용자 통계정보 수집 기능을 사용 중이어야 한다(userstats=1).
050. MySQL – MySQL Replication
MySQL Replication 대시보드는 MySQL의 레플리케이션 관련 모니터링 지표를 보여준다.
- IO/SQL Tread Running, Replication Delay
모니터링 대상 서버의 Replication 관련 지표(IO/SQL 스레드 동작 상태, 복제 지연(Slave Lag) 상태 등)를 보여준다.
- Binlogs Size 등
MySQL 서버의 Binlog 크기와 시간별 누적 binlog 크기를 보여준다.
- Relay Log Space 등
MySQL 서버의 Relay Log 크기와 시간별 누적 Relay Log 크기를 보여준다.