แสดงบทความที่มีป้ายกำกับ Konga แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ Konga แสดงบทความทั้งหมด

22/03/2566

ทดลองใช้ Plugin ใน KONGA

 


        วันนี้เราจะมาลองใช้ Plugin ใน Konga กัน โดยในเมนู plugin ของ konga จะมีหัวข้อหลัก 7 หัวข้อคือ Authentication, Security, Traffic Control, Serverless, Analytics & Monitoring, Transformations, Logging ถ้าหากใครยังไม่ได้ติดตั้ง Konga สามารถเข้าไปดูวิธีการติดตั้งตามลิ้งค์นี้ได้เลย Konga

        โดยเราจะเริ่มจาก Authentication ซึ่ง plugin ที่จะเลือกมาใช้ในบทความนี้คือ Jwt 


        ในการใช้ plugin Jwt ให้กดเข้าไปใน route ที่ต้องการจะติดตั้ง plugin จากนั้นเลือก add plugin ที่เราต้องการจะติดตั้งซึ่งในที่นี้คือ Jwt เมื่อกดเข้าไปแล้วให้กดที่ add plugin ได้เลยโดยที่ไม่ต้องไปตั้งค่าอะไรทั้งสิ้น เมื่อกดเสร็จจะแสดงรายการ plugin ที่ติดตั้งใน route นี้


        หลังจากนั้นก็ไปที่ consumers เลือก user ที่ต้องการเมื่อเข้ามาแล้วจะมีแถบเมนูด้านบนให้กดไปที่ credentials แล้วเลือกไปที่ JWT กด create JWT แล้วใส่ข้อมูลในช่อง secret ในช่องนี้จะใส่อะไรก็ได้ แล้วกด submit ได้เลย


        เมื่อกด submit เสร็จจะได้ข้อมูลออกมาเป็นรูปแบบ json ตามภาพ


        ในการสร้าง token เพื่อที่จะนำไปใช้ต่อให้เข้าไปที่เว็บ jwt.io ในส่วนของ header ให้เพิ่ม iss เข้าไปและ verify signature ก็ใส่ secret ที่เราตั้งเอาไว้เมื่อใส่เสร็จแล้วทางด้านซ้ายจะมี token ให้นำ token ที่ได้ไปใส่ใน authorization โดย type ให้เลือกเป็น Bearer Token แล้วใส่ token เข้าไป จะได้ผลลัพธ์ตามภาพที่ 2 แต่ถ้าไม่มี token จะได้ผลลัพธ์ตามภาพที่ 1 

jwt.io

ภาพที่ 1

ภาพที่ 2

        Plugin ที่จะใช้ถัดมาคือ Acl ซึ่งจะอยู่ในเมนู Security ก็กด add plugin แล้วจะมีเมนูขึ้นมาให้ใส่ซึ่งในช่อง allow และ deny ให้ใส่ข้อมูลช่องใดช่องหนึ่ง



        จากนั้นให้เข้าไปที่ consumers แล้วเลือก user  ที่ต้องการแล้วเลือกไปที่ groups กด add group แล้วตั้งชื่อตามที่เราเพิ่มไว้ใน Acl หาก group ตรงกับ Acl ที่ได้เพิ่มไว้จะแสดงดังรูปที่ 2 หากไม่ตรงจะแสดงดังรูปที่ 1

add group

ภาพที่ 1

ภาพที่ 2

        Plugin Traffic Control ที่จะเลือกใช้คือ Rate Limiting เมื่อกด add plugin จะมีหน้าให้ config ตัวของ Rate Limiting ในตัวอย่างจะใส่ที่ช่อง second และ hour


        เมื่อทดลองส่ง request ไปแล้วดูในส่วนของ header ที่ response กลับมาจะพบว่ามี header เพิ่มขึ้นมาคือ X-RateLimit-Remaining และ X-RateLimit-Limit ที่ได้ตั้งเอาไว้จะมีส่วนของวินาทีและชั่วโมง

        
         Plugin Analytics & Monitoring ที่จะเลือกใช้คือ prometheus เริ่มต้นจากการเข้าไปที่ consumers เลือก user ที่ต้องการจะติดตั้ง plugin แล้วเลือก prometheus จากนั้นกด add plugin 


         เมื่อทำการ add plugin เสร็จให้เปิด ubuntu ขึ้นมาและใช้คำสั่งตามด้านล่างเพื่อดึง prom/prometheus มาที่ image
 docker pull prom/prometheus
        จากนั้นใช้คำสั่งด้านล่างเพื่อสร้าง container ของ prometheus
 docker run -d -p 9090:9090 prom/prometheus

         เมื่อสร้าง container เสร็จแล้วให้ทำตามรูปด้านล่างทีละคำสั่งเพื่อที่จะเข้าไปแก้ไฟล์ prometheus.yml ในการแก้ไขไฟล์ให้เพิ่มบรรทัดที่ทำกรอบสีแดงเอาไว้แล้วกดปุ่ม esc พิมพ์คำสั่ง :wq จะออกมาจากไฟล์จากนั้นทำการ restart container


        เมื่อเข้าไปที่ localhost:9090 แล้วกดไปที่ status และเลือก targets จะพบกับหน้าจอตามรูปด้านล่าง

        เมื่อเลือกเมนู Graph แล้วพิมพ์คำว่า kong จะมีคำสั่งต่างๆขึ้นมาให้เลือกเพื่อแสดงข้อมูล



        Plugin Tranformations ที่เลือกใช้คือ ResponseTranformer เมื่อกด add config จะมีหน้าต่างขึ้นมาให้กรอกในตัวอย่างได้ลองเพิ่ม header เข้าไปจากนั้นก็ลองเรียกใช้ route นั้นอีกครั้งแล้วลองไปดูที่ response ในส่วนของ header จะพบว่ามีส่วนที่เราเพิ่มเข้ามา



        Plugin Logging ที่เลือกใช้คือ file logs เมื่อกด add plugin ให้ใส่ path ที่ต้องการจะเก็บ log หากต้องการจะดู log ให้ใช้คำสั่งตามรูปด้านล่าง


วิธีการติดตั้ง KONGA บน Docker

 


        วันนี้เราจะมาสอนการติดตั้ง Konga บน Docker กัน โดยการที่จะใช้ Konga นั้นจำเป็นที่จะต้องมี Kong เพราะ Konga เป็น GUI ให้ Kong สำหรับคนที่ไม่อยากใช้ Command line ซึ่งหากใครที่ยังไม่ได้ติดตั้ง Kong สามารถเข้าไปดูวิธีการติดตั้งตามลิ้งนี้ได้เลย Kong

        ในการติดตั้ง Konga เริ่มจากการเปิด Ubuntu ขึ้นมาและทำการใช้คำสั่งตามด้านล่างเพื่อดึง pantsel/konga มาที่ image
 docker pull pantsel/konga

            จากนั้นใช้คำสั่งตามด้านล่างเพื่อสร้างและเริ่มต้นการทำงานของ container ตรงส่วนของ network ให้เปลี่ยนเป็น kong-net และบรรทัด token_secret สามารถตัดออกได้

    docker run -p 1337:1337 \
      --network {{kong-network}} \ //optional
      --name konga \
      -e "NODE_ENV=production" \ // or "development" | defaults to 'development'
      -e "TOKEN_SECRET={{somerandomstring}}" \
      pantsel/konga
            หลังจากที่ทำการติดตั้ง Konga เสร็จให้เข้าไปที่ localhost:1337 จะได้ผลลัพธ์ตามรูปด้านล่าง


            เมื่อสร้าง account admin เสร็จและทำการ login จะพบกับหน้าหลักให้ทำการเชื่อมต่อกับ Kong โดยสามารถใส่ชื่อกับ url ตามรูปด้านล่างได้เลย


            เมื่อเชื่อมต่อสำเร็จจะแสดงเป็นหน้า dashboard 


            ทดลองสร้าง service/route ทางเมนูด้านซ้ายให้กดไปที่ services และกด add new sevice เพื่อที่จะสร้าง service ใหม่


            หลังจากกด add new service ก็จะพบกับหน้า create service ให้ทำการใส่ชื่อและ url โดยในส่วนของ host ให้ใช้เป็น ip address ของเครื่อง สามารถเข้าไปดูได้โดยการเข้าไปที่ command prompt และใช้คำสั่ง ipconfig 


             เมื่อสร้าง service เสร็จให้กดเข้าไปที่ชื่อ service ที่สร้าง เมื่อกดเข้าไปจะพบกับรายละเอียดของ service ซึ่งในนี้เราสามารถที่จะแก้ไขได้ ในเมนูด้านซ้ายมือให้กดเข้าไปที่ routes หลังจากนั้นให้กดเข้าไปที่ add new route 




            หลังจากกด add route ก็จะพบหน้ารายละเอียดของ route ที่เราจะสร้างให้ทำการใส่ชื่อและ  path แต่ในส่วนของ paths ต้องกด enter ด้วยหลังจากพิมพ์เสร็จ เมื่อใส่รายละเอียดเสร็จก็ทำการกด submit route


            เมื่อทำการสร้าง route เสร็จก็มาลองเรียกใช้ route ดูโดย port ที่จะใช้คือ 8000 แล้วตามด้วย path ที่ตั้งเอาไว้ใน route ก็จะได้ผลลัพธ์ตามภาพด้านล่าง