# Monitor SQL Database with Percona Monitoring and Management (PMM)

## Prerequisite

* มี Database Instance ใน Project ([ขั้นตอนการสร้าง SQL Database Instance](https://docs-epc.gitbook.io/ncs-documents/database-as-a-service/sql-database/create-sql-database-instance))
* Database Instance จะต้องมี Monitoring User เพื่อใช้เชื่อมต่อ PMM ([ขั้นตอนการสร้าง Monitoring User](https://docs-epc.gitbook.io/ncs-documents/database-as-a-service/sql-database/manage-monitoring-user/create-monitoring-user))

## Instructions

### 1. สร้าง Compute Instance สำหรับการใช้งาน PMM บน NIPA Clouc Space

ปัจจุบัน NCS ให้บริการ Deployment Script เพื่อให้ง่ายต่อการติดตั้ง PMM หลังสั่งสร้างสำเร็จ จะสามารถเข้าใช้งาน Percona Monitoring and Management (PMM) ผ่าน External IP ได้ทันที โดยมีขั้นตอนการสร้าง ดังนี้

### 1.1 เข้าสู่หน้า Compute Instances

เลือกรายการ “Compute Instances” ที่ Sidebar จากเมนู Compute

<figure><img src="https://1352697161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2BYmWTMiaonrEL8QBP2%2Fuploads%2FX9Gx7ZdPITA8ifc1c5Ww%2Fimage.png?alt=media&#x26;token=63edf333-072e-42c8-809c-a9f89d790b09" alt=""><figcaption><p>เข้าหน้า Compute Instance</p></figcaption></figure>

### 1.2 เข้าสู่หน้า Launch Compute Instance

กดปุ่ม + “Compute Instance(s)” ที่มุมขวาบนของหน้าเพื่อทำการ Launch Compute Instance

<figure><img src="https://1352697161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2BYmWTMiaonrEL8QBP2%2Fuploads%2FyZDHge7HiHpotvEPvIkp%2Fimage.png?alt=media&#x26;token=df6cc592-b491-487a-b980-cf7f272243f3" alt=""><figcaption><p>กดปุ่ม + “Compute Instance(s)” </p></figcaption></figure>

### 1.3 เลือก Source เป็น Deployment Script ของ Percona Monitoring and Management (PMM)

ตั้งค่าข้อมูลเริ่มต้นต่าง ๆ ของ Compute Instance โดยเมื่อถึงขั้นตอนการเลือก Source ให้เลือกเป็น Deployment Script ของ Percona Monitoring and Management (PMM)&#x20;

<figure><img src="https://1352697161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2BYmWTMiaonrEL8QBP2%2Fuploads%2FZ5v69pORu2VdIynUbQja%2Fimage.png?alt=media&#x26;token=5451b353-d16e-431f-b18a-143b27d96b52" alt=""><figcaption><p>เลือก Source เป็น Deployment Script ของ Percona Monitoring and Management (PMM)</p></figcaption></figure>

### 1.4 สามารถเปลี่ยนแปลงค่าเริ่มต้นของ Username และ Password สำหรับเข้าใช้งาน PMM

ใน step ถัดมา สามารถตั้งค่าเริ่มต้นของ Username และ Password สำหรับเข้าใช้งาน PMM ได้ตามต้องการ โดยการจัดการ User สามารถทำได้ผ่าน PMM หลังการเข้าถึงครั้งแรก

<figure><img src="https://1352697161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2BYmWTMiaonrEL8QBP2%2Fuploads%2FZBHtViF97VnMnqDMaOlZ%2Fimage.png?alt=media&#x26;token=b4820c24-f46c-4b8c-aff4-d08d1eeec587" alt=""><figcaption><p>กำหนด Username และ Password ของ PMM</p></figcaption></figure>

### 1.5 กรอกข้อมูลการ Launch Compute Instance ให้ครบถ้วน แล้วกด Launch เพื่อสั่งสร้าง

จะต้องตั้งค่า Security Group ให้สามารถเข้าใช้งาน HTTPS ได้ เพื่อให้สามารถใช้งานได้ผ่าน Web Browser

<figure><img src="https://1352697161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2BYmWTMiaonrEL8QBP2%2Fuploads%2FUjIIEFWdu0YG7hOunL50%2Fimage.png?alt=media&#x26;token=db4a14c8-314e-4976-ae7c-61491ec0440c" alt=""><figcaption><p>เพิ่ม Default Security Group ที่เป็น HTTPS</p></figcaption></figure>

{% hint style="info" %}
สามารถศึกษาขั้นตอนการ [Launch Compute Instance](https://docs-epc.gitbook.io/ncs-documents/compute/compute-instance/launching-compute-instance) โดยละเอียด เพื่อกรอกข้อมูลได้อย่างถูกต้อง
{% endhint %}

เมื่อกรอกข้อมูลครบถ้วนและตรวจสอบความถูกต้องอีกครั้ง จากนั้นกดปุ่ม LAUNCH เพื่อสั่งสร้าง

<figure><img src="https://1352697161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2BYmWTMiaonrEL8QBP2%2Fuploads%2FnMFM1l2HxmeCYNBtpJ1D%2Fimage.png?alt=media&#x26;token=fbc58804-02ce-4df3-bd51-8dae2ae7dcd8" alt=""><figcaption><p>กดปุ่ม LAUNCH</p></figcaption></figure>

### 1.6 PMM จะสามารถใช้งานได้ หลังจากคำสั่งสำเร็จ

รอให้  OS status เป็น HEALTHY และ Instance status เป็น active จึงสามารถเข้าถึง PMM ผ่าน Web Browser ได้

<figure><img src="https://1352697161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2BYmWTMiaonrEL8QBP2%2Fuploads%2Foa255AwrDyIGT05kGFDM%2Fimage.png?alt=media&#x26;token=c2c20a85-4471-40e2-8b50-b9fb5a6f80fc" alt=""><figcaption><p>OS status เป็น HEALTHY และ Instance status เป็น active</p></figcaption></figure>

{% hint style="info" %}
แม้ว่า OS Status ของ Compute Instance เป็น HEALTHY แล้ว ก็อาจจะใช้เวลาอีกซักพักหนึ่ง ระหว่างที่ Deployment Script สำหรับติดตั้ง PMM ทำงาน
{% endhint %}

### 2. เข้า PMM เพื่อเชื่อมต่อ Database Instance โดยใช้ Monitoring User ที่สร้างไว้

เข้า PMM ผ่าน Web Browser โดยกรอก https\://\[ External IP ของ Compute Instance ที่ได้จากขั้นตอนที่ 1.6 ]

### 2.1 Log in เข้า PMM&#x20;

กรอก Username และ Password ที่ได้กำหนดจากขั้นตอนที่ 1.4

<figure><img src="https://1352697161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2BYmWTMiaonrEL8QBP2%2Fuploads%2FWBCbG22MfaTxfnXO10xZ%2Fimage.png?alt=media&#x26;token=fe957953-c208-421b-8e39-56c1ee50f970" alt=""><figcaption><p>กรอก Username และ Password</p></figcaption></figure>

### 2.2 เข้าหน้า Add Service และเลือก MySQL

เลือก “Add Service” ภายใต้เมนู PMM Configuration ที่ Sidebar เพื่อเชื่อมต่อ Database กับ PMM

<figure><img src="https://1352697161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2BYmWTMiaonrEL8QBP2%2Fuploads%2FDaPV2lFr98X2qeCsONUG%2Fimage.png?alt=media&#x26;token=f10d3358-8630-4d14-845c-1104d46bd110" alt=""><figcaption><p>เลือก “Add Service”</p></figcaption></figure>

เลือก MySQL สำหรับ Database ที่ใช้งานบน NCS

<figure><img src="https://1352697161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2BYmWTMiaonrEL8QBP2%2Fuploads%2Fg3FN0gm0FzkWYDk4JXXX%2Fimage.png?alt=media&#x26;token=372076ae-d994-4847-b9aa-081ccd4564a8" alt=""><figcaption><p>เลือก MySQL </p></figcaption></figure>

### 2.3 กำหนดชื่อของ Service

กำหนดชื่อของ Service โดยแนะนำให้ใช้ชื่อเดียวกับ Database Instance บน NCS เพื่อให้ง่ายต่อการใช้งาน

<figure><img src="https://1352697161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2BYmWTMiaonrEL8QBP2%2Fuploads%2FcjkzyqDt0KvcpXRTATsa%2Fimage.png?alt=media&#x26;token=e15a5900-ee5c-4c66-bf60-ca82507e7fd2" alt=""><figcaption><p>กำหนดชื่อของ Service</p></figcaption></figure>

### 2.4 กรอก Hostname โดยใช้ External IP ของ Database Instance

กรอก Hostname ของ Database ซึ่งเป็นเลข External IP ของ Database Instance โดยดูได้จาก หน้า Database Instances และ Database Instance Detail

<figure><img src="https://1352697161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2BYmWTMiaonrEL8QBP2%2Fuploads%2FIF7jn4hRcsuPuGU2vc5R%2Fimage.png?alt=media&#x26;token=ee2bc106-a834-41fd-8aea-8508520b64eb" alt=""><figcaption><p>กรอก Hostname</p></figcaption></figure>

<figure><img src="https://1352697161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2BYmWTMiaonrEL8QBP2%2Fuploads%2F1IT3DJi0IcwZLMqPlUmb%2Fimage.png?alt=media&#x26;token=f789c864-040a-40fc-9b9c-7a82b1e53e93" alt=""><figcaption><p>External IP ของ Database Instance ที่หน้า Database Instances</p></figcaption></figure>

<figure><img src="https://1352697161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2BYmWTMiaonrEL8QBP2%2Fuploads%2FRBWEhfRa9NamUKiUOehf%2Fimage.png?alt=media&#x26;token=889ef937-c8ec-485f-ae90-c1d4afe5a28a" alt=""><figcaption><p>External IP ของ Database Instance ที่หน้า Database Instance Detail</p></figcaption></figure>

### 2.5 กรอก Username และ Password ของ Monitoring User

กรอก Username และ Password ของ Monitoring User ที่จะเชื่อมต่อ โดย host ที่เชื่อมต่อ ต้องมีเงื่อนไขตรงตามขอบเขตการเข้าถึงของ Database นั้น ๆ ที่กำหนดไว้

<figure><img src="https://1352697161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2BYmWTMiaonrEL8QBP2%2Fuploads%2FnZg9pSphA6G4UOiI0ZaD%2Fimage.png?alt=media&#x26;token=998a56cd-4c3d-4644-b610-2e1621569469" alt=""><figcaption><p>กรอก Username และ Password ของ Monitoring User </p></figcaption></figure>

ระบบแสดงเฉพาะ Username ของ Monitoring User ที่หน้า Database Detail

<figure><img src="https://1352697161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2BYmWTMiaonrEL8QBP2%2Fuploads%2FMlj69JRJhEha6wiO3FNx%2Fimage.png?alt=media&#x26;token=610b7320-2c91-4731-83cb-c16d10298707" alt=""><figcaption><p>ระบบแสดง Username ของ Monitoring User</p></figcaption></figure>

### 2.6 กรอกข้อมูลอื่น ๆ ให้ครบถ้วน และตรวจสอบอีกครั้ง

กำหนด Labels, Additional options และ Table statistic limit ตามการใช้งาน แล้วตรวจสอบความถูกต้อง

<figure><img src="https://1352697161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2BYmWTMiaonrEL8QBP2%2Fuploads%2FxPd1PGyJnty6hr4pyvmi%2Fimage.png?alt=media&#x26;token=1da864ce-0e13-4eab-b9f7-0d1272853bc3" alt=""><figcaption><p>กำหนด Labels, Additional options และ Table statistic limit ตามการใช้งาน </p></figcaption></figure>

### 2.7 กดปุ่ม "Add service"&#x20;

กดปุ่ม "Add service" หากไม่พบ error บน PMM แสดงว่าคำสั่งสำเร็จ

<figure><img src="https://1352697161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2BYmWTMiaonrEL8QBP2%2Fuploads%2FtKrsmOTUolxGGOAaLv4w%2Fimage.png?alt=media&#x26;token=85607afa-f187-4872-ba7d-691fba006744" alt=""><figcaption><p>กดปุ่ม Add service</p></figcaption></figure>

### 2.8 สามารถเริ่มใช้งาน PMM หลังคำสั่งสำเร็จ

ที่ Sidebar จะแสดงรายการ "MySQL" และสามารถเข้าไปเพื่อเรื่มใช้งาน

<figure><img src="https://1352697161-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fq2BYmWTMiaonrEL8QBP2%2Fuploads%2Fe51eYv5g2JEHoUSqioce%2Fimage.png?alt=media&#x26;token=5f6942aa-e90c-4f27-b6bf-ded3bba20882" alt=""><figcaption><p>สามารถเริ่มใช้งาน Dashboard ของ PMM สำหรับ MySQL</p></figcaption></figure>
