레이블이 Linux 모니터링인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Linux 모니터링인 게시물을 표시합니다. 모든 게시물 표시

[PMM] #120 Coffee Break


Coffee Break

{PMM] 이라는 이름으로 11개의 포스팅을 통해서 PMM의 플랫폼을 설치했고, 최종 목적인 MySQL 서버 모니터링 환경(모니터링 정보 수집, 대시보드 구성 등)을 구성해 보았다. 주요 모듈(Prometheus, Grafana, node/mysqld exporter )에 대한 상세한 구조와 원리에 대한 설명보다는 실행(Action)에 중점을 두어 설명했으므로, 여기까지 잘 따라해 보았다면, 잠시 쉬어가자.

지난 포스팅을 쭈욱 살펴보는것도 괜찮다.

[PMM] #010 PMM Tutorial for MySQL Monitoring
[PMM] #020 PMM (Percona Monitoring and Management)
[PMM] #030 PMM Server - Client 서버 정보
[PMM] #040 PMM Server - Prometheus 설치
[PMM] #050 PMM Client - Node Exporter 설치
[PMM] #060 PMM Client - Mysqld Exporter 설치
[PMM] #070 PMM Server - Grafana 설치
[PMM] #080 PMM Server - Grafana/Prometheus 데이터소스 연동
[PMM] #090 PMM Server - Percona App for Grafana 설치
[PMM] #100 Percona Dashboard - 리눅스 모니터링
[PMM] #110 Percona Dashboard - MySQL 모니터링



그리고 본 포스팅시리즈를 읽고 있는 독자들이 갖고 있을지도 모르는 몇가지 의아한 점에 대해서 간단히 언급해본다.



010. PMM 관련 포스팅을 왜 시작했나요?
- 한글 매뉴얼이 없음.
- 인터넷 검색을 해봐도 한글로 포스팅한 자료를 찾을 수 없음. 없는 듯 함.


020. PMM을 설치할 때 왜 Docker 이미지가 아니라 각각의 모듈별로 따로 설치하나요?
- Docker가 익숙치 않은 독자들을 위함.
- PMM을 구성하는 모듈의 개별 버전 업데이트가 빠르게 announce되고 있다. 개별 모듈별로 설치하므로써, 아직 실험적인 모듈들은 나중에 안정화 버전이 나오면 설치하고 싶다.
- PMM의 기능 중에서 꼭 필요한 기능만 사용하고 싶기 때문에.
- 각각의 모듈을 설치해보고 연동하는 과정은 생각보다 간단하기에 독자가 이해하고 실습하기에 더 적절할 것이라고 생각함.


030. PMM 아키텍쳐에는 Query Analytics, Ochestrator, Proxy Exporter 등의 모듈들이 있던데, 이 모듈들의 설명이나 설치에 관련한 내용은 왜 없나요?
- Query Analytics : 추후, 포스팅 하고 싶음. 아직까지는 시간적인 여유가 없기에.
- Ochestrator : 아직 실험적인 툴. 나중에 안정화 버전이 나오면 PMM과는 별도로 테스트해 보고 공유하고 싶음.
- Proxy Exporter : ProxySQL 관련 포스팅은 별도로 진행 예정.


040. Percona Dashborad TokuDB Metrics 대시보드는 언급하지 않고 건너뛴 이유가 있나요?
MySQL 서버를 사용하는 시스템에서 TokuDB 엔진에 비하여 InnoDB 엔진을 사용하는 것이 아직은 일반적이라고 생각하고 있다. 물론 Toku 엔진을 상용서비스( Production환경)에서 사용하고 있는 시스템이 없지는 않을 것이라 예상한다. “보편적으로 더 많이 사용하는 것들에 대한 모니터링하는 것을 먼저 언급하는 것뿐이다. Toku엔진, Galera Cluster, MyISAM 엔진 등에 대한 모니터링 지표도 기회가 되면 꼭 포스팅 하고 싶다


050. 리눅스 모니터링, MySQL 모니터링 지표 설명이 너무 간단한 것 같다. 실제로 MySQL 모니터링 지표를 성능 관점의 튜닝 등을 위하여 자세히 설명하거나 다양한 케이스를 예를 들어 설명해줄 수 없나요?
가장 공유하고 싶은 내용이다. 하지만 이 내용은 매우 자세하고 다양한 케이스를 언급해야 하는데 내용도 많고, 튜닝 케이스 재연이 필요하므로 포스팅에 오랜 시간이 필요하다. 이 내용도 나중에 기회가 된다면


060. 다음 PMM관련 포스팅 내용에는 어떤 것들이 있을지 미리 알려주세요.
다음 포스팅 내용을 미리 공유하자면 간단히 다음과 같다.

MySQL 실시간 모니터링
MySQL
모니터링 지표 중 실시간으로 조회하는 것이 의미있는 그래프로 구성하는 대시보드 만들기..
- [PMM] #130 MySQL
모니터링 - Realtime#1
- [PMM] #140 MySQL
모니터링
- Realtime#2

MySQL
일별 모니터링
MySQL
모니터링 지표 중 일별로 조회하는 것이 의미있는 그래프로 구성하는 대시보드 만들기
- [PMM] #150 MySQL
모니터링 - Daily#1
- [PMM] #160 MySQL
모니터링
- Daily#2


MySQL 모니터링 알림
Prometheus
Alert Manager를 설치하여 MySQL 모니터링 지표 중 특정 지표의 상태 변경시 알림(이메일 등) 기능 연동
- [PMM] #170 MySQL
모니터링 - 알림-Prometheus Alertmanager 설치
- [PMM] #180 MySQL
모니터링 - 알림
-Replication Stop

MySQL
데이터 모니터링
MySQL 성능 지표가 아닌 MySQL 서버의 특정 테이블들에 대한 SQL 질의 결과를 Prometheus에 저장하고 이를 대시보드로 구성.
- [PMM] #190 MySQL
모니터링 - 데이터모니터링#1-mysqlexporter 설치
- [PMM] #200 MySQL
모니터링 - 데이터모니터링#2-대시보드구성













[PMM] #110 Percona Dashboard – MySQL 모니터링

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 크기를 보여준다.







[PMM] #100 Percona Dashboard – 리눅스 모니터링

Percona Dashboard – 리눅스 모니터링

Percona Dashboard에서 조회할 수 있는 리눅스 모니터링 지표는 앞서 연동한 node exporter가 주기적으로 수집하여, Prometheus가 주기적으로 가져와(scraping) 저장하고 있는 정보(metric)를 조회하는 것이다.
리눅스 모니터링 지표에 대한 대시보드는 크게 System Overview, Disk Space, Disk Performance 세개의 대시보드이며 Summary Dashboard는 리눅스 모니터링 지표와 MySQL 서버 모니터링 지표를 요약하여 함께 보여주는 대시보드이다. 이 지표들은 리눅스 시스템의 시스템 자원(CPU, Memory, Disk, Newwork )의 주요 지표들을 시간별, 기간별로 보여준다.

본 장에서는 System Overview, Disk Space, Disk Performance 세 개의 대시보드의 주요 그래프에 대해서 간단히 알아보자.


010. 리눅스 모니터링 - System Overview
System Overview는 모니터링 대상 리눅스(운영체제)의 주요 모니터링 지표를 보여준다.

- CPU Usage
기간별 CPU 사용량을 100분률로 보여주며 idle, user, system등의 사용영역별 비율을 함께 보여준다.


- Memory, Memory Distribution
기간별 Memory 사용량을 영역별 용량으로 보여준다




020. 리눅스 모니터링 – Disk Space
Disk Space는 리눅스에 마운트 되어 있는 마운트 포인트별 디스크 사용량을 보여준다.

- Mountpoint
마운트 되어 있는 디스크(블록 디바이스)별로 사용중인 디스크 용량과 유휴 디스크 용량을 보여준다.



030. 리눅스 모니터링 – Disk Performance
Disk Performance 는 리눅스에서 사용하는 블록 디바이스들의 여러 디스크 성능 지표를 보여준다.

- Disk Latency
Disk Latency는 디스크들의 읽기/쓰기 지연 시간(Read/Write Latency)을 보여준다



- Disk Operations
Disk Operations 는 디스크들의 물리적 읽기/쓰기 횟수(초당, IOPS)를 보여준다.



- Help
Help 항목은 Disk Performance 대시보드의 각 그래프들의 보여주는 성능지표에 대하여 간단하게 설명한 내용이다