레이블이 pmm tutorial인 게시물을 표시합니다. 모든 게시물 표시
레이블이 pmm tutorial인 게시물을 표시합니다. 모든 게시물 표시

[PMM] #190 마치며



마치며

[PMM] 시리스 포스팅은 본 장으로 마무리 한다. 이 포스팅 시리즈는 PMM의 서버/클라이언트 구성을 시작으로 마지막에는 Prometheus를 활용한 MySQL 데이터 모니터링까지 연동해보는 내용으로 구성하였다. 초보자도 쉽게 따라할 수 있는 실전 시나리오로 구성 한 만큼, 이론적인 내용보다 독자들이 MySQL 모니터링 환경을 손 쉽게 구성하는데에 초첨을 맞추었다. 많은 도움이 되길 바란다.

 아울러, Prometheus, Grafana 등의 PMM을 구성하는 모듈들은 모두 Open Source 기반의 소프트웨어로 현재도 활발하게 버전 업데이트가 빠르게 진행되고 있으며 그에 따라 각 소프트웨어의 기능들도 확장되고 있다. 반면에, 최신 업데이트 버전은 소프트웨어 안정성 등이 검증되지 않았을 수 있으며 아직 개발단계의 새로운 모듈이 추가될 수도 있다
 그러므로 Open Source 소프트웨어에 대한 무조건적인 맹신은 금물이다. Open Source 소프트웨어의 안정성도 함께 고려하여, 각 모듈들이 정말 본인의 IT인프라에 필요한 기능인지 되 짚어 보고 선별적으로 구성해야 할 것이다.

[PMM] 시리스 포스팅을 다시 한번 정독해보길 바라며, 본 시리즈를 마무리 한다.





[PMM] #030 PMM Server - Client 서버 정보


PMM Server - Client 서버 정보


두 대의 서버에 각각 PMM Server PMM Client를 설치할 것이다. 이 두 서버의 Linux/소프트웨어 버전각 모듈의 설치 및 기동에 필요한 리눅스 계정 정보는 다음과 같다. 또한 각 모듈들의 사용 포트도 미리 명시하였다. 혼란이 없도록 꼼꼼하게 살펴보길 바란다.

PMM Server
- hostname : pmmserver
- IP : 192.168.0.10
- Linux : Oracle Linux Server 6.7
- PMM Server 설치(사용) 리눅스 계정 : pmm
- Prometheus : 버전 1.2.1 / 2016-10-10 Release, 웹 서비스 포트 : 9090
- Grafana : 버전 3.1.1 / 2016-08-01 Release, 웹 서비스 포트 : 3000
- 설치에 필요한 PMM Server모듈 바이너리가 위치한 디렉토리
  : /home/pmm/programs/PMM105/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
--==============================================================================
-- PMM Server 모듈 설치 운영 계정 생성
--==============================================================================
[root@pmmserver ~]# cat /etc/passwd | grep pmm
[root@pmmserver ~]# cat /etc/group | grep pmm
[root@pmmserver ~]# groupadd -g 2100 pmm
[root@pmmserver ~]# useradd -g pmm -u 2100 -s /bin/bash -d /home/pmm pmm
[root@pmmserver ~]# chmod 750 /home/pmm
[root@pmmserver ~]# cat /etc/passwd | grep pmm
pmm:x:2100:2100::/home/pmm:/bin/bash
[root@pmmserver ~]# cat /etc/group | grep pmm
pmm:x:2100:
[root@pmmserver ~]# passwd pmm
pmm 사용자의 비밀 번호 변경 중
새  암호: "XXXXXXXX"
새  암호 재입력: "XXXXXXXX"
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.
[root@pmmserver ~]# chage -E -1 -I 0 -m 0 -M 99999 pmm
[root@pmmserver ~]# chage -l pmm
Last password change                                    : Oct 192016
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7
[root@pmmserver ~]# su - pmm
[pmm@pmmserver ~]$ vi .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
################################################################################
# User specific environment and startup programs
################################################################################
LANG=ko_KR.UTF-8
export LANG
--==============================================================================
-- PMM Server 모듈 다운로드한 디렉토리 생성
--==============================================================================
[pmm@pmmserver ~]$ mkdir /home/pmm/programs/
[pmm@pmmserver ~]$ mkdir /home/pmm/programs/PMM105/
cs


PMM Client
- hostname : pmmclient
- IP : 192.168.0.11
- Linux : Oracle Linux Server 6.7
- PMM Client 설치(사용) 리눅스 계정 : mysql
 : 모니터링 대상 서버는 MySQL 서버이므로 MySQL 서버를 설치하고 운영하는 리눅스 계정명이 mysql 이며 홈 디렉토리는 /home/mysql/ 이다.
- MySQL (싱글인스턴스) : MariaDB5.5.52 (포트:3306)
- PMM ClientMySQL DB 계정 : pmmclient
- node_exporter : v0.13.0-rc.1 / 2016-10-16 Release, 리스닝 포트 : 9100
- mysqld_exporer : 0.9.0 / 2016-09-27 Release, 리스닝 포트 : 9104
- mysql_exporer : 0.1.1 / 2016-09-10 Release 리스닝 포트 : 8090
- 설치에 필요한 PMM Client모듈 바이너리가 위치한 디렉토리
: /home/mysql/DBA/programs/PMM105/client/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
--==============================================================================
-- PMM Client 서버의 MySQL 인스턴스 구동/운영 계정인 mysql 그룹의 mysql 계정 생성 예
--==============================================================================
[root@pmmclient ~]# cat /etc/passwd | grep mysql
[root@pmmclient ~]# cat /etc/group | grep mysql
[root@pmmclient ~]# userdel mysql
[root@pmmclient ~]# cat /etc/passwd | grep mysql
[root@pmmclient ~]# cat /etc/group | grep mysql
[root@pmmclient ~]# groupadd -g 2000 mysql
[root@pmmclient ~]# useradd -g mysql -u 2000 -s /bin/bash -d /home/mysql mysql
[root@pmmclient ~]# chmod 750 /home/mysql
[root@pmmclient ~]# passwd mysql
mysql 사용자의 비밀 번호 변경 중
새  암호: "XXXXXXXX"
새  암호 재입력: "XXXXXXXX"
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.
[root@pmmclient ~]# chage -E -1 -I 0 -m 0 -M 99999 mysql
[root@pmmclient ~]# chage -l mysql
Last password change                                    : Oct 192016
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7
--==============================================================================
-- PMM Client 모듈 다운로드한 디렉토리 생성
--==============================================================================
[mysql@pmmclient ~]$ mkdir /home/mysql/DBA/
[mysql@pmmclient ~]$ mkdir /home/mysql/DBA/programs/
[mysql@pmmclient ~]$ mkdir /home/mysql/DBA/programs/PMM105/
[mysql@pmmclient ~]$ mkdir /home/mysql/DBA/programs/PMM105/client/
cs

설치 공통 규칙
- 각 호스트간에 네트워크 방화벽의 IP/Port는 모두 오픈되어있음을 가정한다.
- 각 모듈들의 설치파일은 이미 다운로드 받아 바이너리 디렉토리에 복사해 두었다고 가정한다.
- 리눅스 쉘 커서
  : 각 코드별로 실행 서버, 명령어 실행 계정, 현재 디렉토리 등을 다음의 룰로 표현한다.
    ㄴ. 규칙 : [계정명@호스트네임 현재디렉토리]$
    . [pmm@pmmserver ~]$ : pmmserver 서버에 pmm계정으로 접속한 상태이며 현재 디렉토리는 pmm계정의 홈디렉토리(/home/pmm/)
    . [mysql@pmmclient client]$ : pmmclient 서버에 mysql계정으로 접속한 상태이며 현재 디렉토리는 ./client


[PMM] #020 PMM (Percona Monitoring and Management)

PMM (Percona Monitoring and Management)


Percona Monitoring and Management(이하 PMM)MySQLMongoDB 성능 모니터링을 위하여 Percona사에서 개발한 오픈 소스 기반의 모니터링, 관리 플랫폼이다.

PMM은 간단한 클라이언트-서버 구조를 기반으로 효율적인 확장성을 갖고 있다. PMM 클라이언트와 서버의 역할은 간단히 다음과 같다.

PMM Client
모니터링 대상 호스트의 일반적인 OS(Linux) 시스템 정보와 데이터베이스(MySQL, MongoDB )의 성능정보 및 쿼리 분석 데이터를 수집하며, 모니터링 대상 호스트에 설치된다.

PMM Server
모니터링 대상 호스트로부터 수집(Scraping)한 모니터링 정보(metrics)를 저장하고, 그 정보들을 대시보드, 그래프 등의 직관적이고 효과적인 GUI형태로 보여준다. PMM 플랫폼의 역할의 중심이라고 말할 수 있다.


PMM Architecture
다음은 PMM 플랫폼의 전체적인 아키텍처를 보여주는 다이어그램이다.

PMM 아키텍처(출처 : https://www.percona.com/doc/percona-monitoring-and-management/architecture.html)


PMM Client
PMM Client는 우분투, 데비앙, 레드햇, CentOS, Oracle 리눅스, Amazon 리눅스등 대부분의 공개형 리눅스를 위한 패키지로 제공된다. 또한 범용 리눅스를 위한 tarball 바이너리로도 제공된다. PMM Client 패키지는 다음과 같은 세부 모듈로 구성되어 있다.
- pmm-admin : PMM client를 관리하기 위한 커맨드라인 툴
:
https://www.percona.com/doc/percona-monitoring-and-management/pmm-admin.html#pmm-admin
- percona-quan-agent : 쿼리 성능 데이터를 수집하는 Query Analytics(QAN)을 관리하는 서비스.
- node_exporter : 일반적인 시스템 정보를 수집하는 Prometheus 익스포터.
:
https://github.com/prometheus/node_exporter
- mysqld_exporter : MySQL 서버 정보를 수집하는 Prometheus익스포터.
: https://github.com/percona/mysqld_exporter
- mongodb_exporter : MongoDB 서버 정보를 수집하는 Prometheus익스포터.
: https://github.com/Percona-Lab/prometheus_mongodb_exporter
- proxysql_exporter : ProxySQL의 성능 정보를 수집하는 Prometheus 익스포터.


PMM Server
PMM Server Docker 이미지로 배포되며 다음의 모듈들로 구성되어 있다.

- Query Analytics(QAN) : 특정기간의 MySQL 쿼리 성능을 분석하고, 수집된 Query Analytics 데이터를 웹 어플리케이션(QAN Wep App)으로 시각화하여 보여준다.
- Metrics Monitor(MM) : MySQL 서버나 MongoDB 서버 인스턴스의 모니터링 지표들을 저장하고 GUI형태로 보여준다. MM은 크게 Prometheus Grafana로 구성되어 있다.
   . Prometheus : 서드 파티 시계열(time-series) 데이터베이스로서 PMM Client가 수집한 시스템 정보를 저장한다.
   . Grafana : Prometheus 등의 다양한 데이터소스의 데이터들을 대시보드나 효과적인 그래프 형태로 보여주는 서드 파티 웹 인터페이스 시각화 도구이다.
- Orchestrator : MySQL Replication 토폴로지 관리도구이다


PMM Demo 사이트
- PMM Query Analytics : https://pmmdemo.percona.com/qan/
- PMM Metrics Monitor : https://pmmdemo.percona.com/graph/
- PMM MySQL Replication Topology Manager : https://pmmdemo.percona.com/orchestrator/