มาลองเล่น Cisco Meraki API กัน

Pao Payungsak Klinchampa
Next-Hop Co., Ltd.
Published in
3 min readAug 26, 2019
Ref: https://meraki.cisco.com

ในยุคปัจจุบัน ผู้ให้บริการ Cloud ทั้งหลาย มักจะเปิด API ให้ Dev เข้ามาใช้งานกันครับ ซึ่งเราสามารถเอามาประยุกต์ใช้ได้หลากหลายมากๆ ไม่ว่าจะเป็นการทำ Automation , Monitoring , Web App ต่างๆ

และ Meraki เองก็เป็นอุปกรณ์ Network ที่ Management ผ่านทาง Cloud ครับ ซึ่งเเน่นอนว่าก็ได้มีการเปิด API ให้ใช้ จึงเป็นที่มาของบทความนี้

Requirement :

  1. Meraki Account
  2. Node.js
  3. Text Editor ตามใจชอบ

อย่าได้รอช้า มาเริ่มกันเลยดีกว่า

  1. เปิดใช้งาน API กันก่อนนะครับ โดยอันนี้ต้องใช้ account ระดับ organization จึงจะจัดการได้ เมื่อ Log in เเล้ว ให้เข้าไปที่ Organization >> Setting เลื่อนลงมาล่างๆ ที่ Dashboard API access กาถูกที่ Enable access to the Cisco Meraki Dashboard API เเล้วก็กดปุ่ม Save

2. การจะเข้าถึง API ได้เราก็ต้องมี Token หรือ Secret Key กันก่อน เเละเเน่นอนว่าเราต้อง “ขอ” โดยไปที่ My Profile ของ User ของเรา เลื่อนลงมาที่ API access เเล้วกดปุ่ม Generate new API key กันเลย เราก็จะได้ค่า API Key เพื่อใช้งานเเล้ว

ระบบก็จะเเสดงผลตามภาพครับ เเละจะเเสดง Timestamp ไว้ด้วย ว่าเราขอ Key วันไหน เเละใช้งานล่าสุดตอนไหน แถมมีปุ่ม Revoke ด้วย หากเราไม่ใช้ Key นี้หรือพลาดโดน Hack , ทำ Key หลุด ก็ให้จัดการกดปุ่ม Revoke เพื่อถอดถอนการเข้าถึงของ Key นี้

3. กลับมาที่เครื่องคอมพิวเตอร์ของเรา ลอง Node.js ให้พร้อมเเล้วก็จัดการสร้าง Project ของเรา ด้วยคำสั่ง

$ mkdir meraki-api-test/ && cd meraki-api-test/

$ npm init

เเละก็กรอกชื่อ Project , รายละเอียดต่างๆที่มันถามให้เสร็จสิ้น

$ npm install — save node-fetch

จากนั้นก็จัดการติดตั้ง Node Fetch ครับ ผมขอใช้ตัวนี้ เป็นตัวอย่างนะครับ

4. มาลองเขียน Code เพื่อ Request ค่ามาเเสดงผลที่ Terminal ของเราอย่างง่ายๆกัน ตามนี้เลย

จาก Code เราก็จัดการดึง Node Fetch มาใช้ด้วยการประกาศตัวเเปรเเบบ const และตั้งค่า url , api key ด้วย

ในที่นี้เราใช้ Method GET ในการดึงข้อมูลมาเเสดงผล เเละกำหนด custom header ชื่อ X-Cisco-Meraki-API-Key เพื่อใช้ในการ authen เเละกำหนด Content-Type เป็นแบบ Json ด้วยนะครับ

ผมจะดึงค่า Json ที่ได้ จับยัดลง Function printData เพื่อเเสดงผล ตามภาพด้านบนเลย โดยอันนี้จะใช้ for-loop เพื่อดึงรายการอุปกรณ์ในระบบออกมาเเสดงผลครับ

และมาลองรันกันดูด้วยคำสั่ง $ node <your-file-name>.js

ก็จะได้ผลลัพธ์ประมาณนี้

อันนี้ในระบบมีอุปกรณ์อยู่ 2 ตัว ซึ่งเป็น AP เเละ Switch ของ Next-Hop เองครับ

5. มาลองดึงค่า Admin User กันบ้าง โดยหน้าตา Code ก็จะประมาณนี้

จะเห็นว่าผมเปลี่ยนค่า url จาก devices เป็น admins ครับ ซึ่งค่าพวกนี้หาได้จาก Doc ของ Meraki เลย

อันนี้ผมจะลองดึงค่า User Admin ที่เป็น User ของผมเอง เเละเมื่อลอง Run Code ก็จะได้หน้าตาแบบนี้

ในตัวอย่างของผมก็ขอเเสดงการใช้งานคร่าวๆเพียงเเค่ 2 ตัวอย่างนะครับ หากสนใจก็ลองศึกษากันได้ต่อที่นี่

เรื่องนี้อาจไม่ใช่เรื่องที่ Network Engineer จะใช้งานกันซักเท่าไรนะครับ5555 ดูเป็นงานทางด้าน Developer มากกว่า เเต่ก็จำเป็นต้องรู้ไว้ เเละอย่างน้อยก็ควรสามารถเขียน Script ได้บ้างก็ยังดี เเละใครที่สนใจสอบ CCNA ตัวใหม่มีเรื่องของ Programming & API เเล้วนะครับ ไม่รู้ไม่ได้เเล้ว5555

สุดท้ายนี้ก็ขอบคุณทุกท่านที่อ่านบทความนี้นะครับ มีปัญหาหรือต้องการสอบถามก็ติดต่อกันเข้ามาได้เลย

Code ตัวอย่าง :

Payungsak Klinchampa

pao@paov6.network

+6693–7738265

--

--