การเก็บ Log File ไม่ได้มีวิธีเดียวเท่านั้น วันนี้เรามาเรียนรู้กันว่าวิธีการเก็บ Log จาก Office 365 จะมีวิธีอย่างไร
ในบทความที่แล้วเราได้พูดถึง วิธีการเก็บ Log File จากเครื่อง Windows Server ที่เป็นส่วนของ Active Directory และ File Share ที่เก็บ Log จาก Local นั้นเอง พอเห็นแบบนั้นแล้วหลาย ๆ คนอาจจะสงสัยว่าแล้วเราจะเก็บ Log จาก Office 365 ที่อยู่บน Cloud ได้ไหม และถ้าได้ต้องทำอย่างไรบ้าง ก่อนอื่นเลยเราจะต้องทำความรู้จักกับโอเพ่นซอร์สตัวหนึ่ง ที่ชื่อว่า O365beat กันก่อน
O365beat คืออะไร
O365beat เป็น Opensource ตัวหนึ่งที่ใช้สำหรับในการดึง Log หรือการบันทึกข้อมูลจากตัว Office 365 มาในใช้ในการตรวจสอบ สำหรับใน Office 365 ก็จะมี Office 365 Management Activity API ที่ใช้สำหรับการดึงข้อมูลจากตัวของ Office 365 เข้ามาในการตั้งค่าในตัว Open source นั่นเอง ซึ่ง Office 365 ที่เป็น O365beat นี้จะใช้ Filebeat สำหรับจะส่งต่อการรวบรวม Log O365 โดยใช้โมดูลของ O365 ผ่าน Office 365 API เพื่อใช้ในการส่ง Log ของ O365
โดยก่อนที่เราจะดำเนินการตั้งค่าตัว Office 365 เราจะต้องรู้จักก่อนว่า Office 365 management activity API มีตัวอะไรบ้างที่เราจะต้องไปดึงค่ามา ซึ่งตัวหลักสำคัญของตัวออฟฟิศ 365 ก็จะเป็นในเรื่องของ Audit ซึ่งเป็นการรวมการกระทำเหตุการณ์ต่าง ๆ เนื้อหาต่าง ๆ ของแต่ละประเภทที่มีการใช้งานบนตัวของออฟฟิศ 365 โดยมีรายละเอียดดังนี้
API ที่ใช้จัดการกิจกรรม Office365
Audit.AzureActiveDirectory
Audit.Exchange
Audit.SharePoint
Audit.General (รวมถึงปริมาณงานอื่น ๆ ทั้งหมดที่ไม่รวมอยู่ในประเภทเนื้อหาก่อนหน้า)
DLP.All (เหตุการณ์ DLP สำหรับปริมาณงานทั้งหมดเท่านั้น)
หลังจากที่เราได้รู้แล้วว่ามี office 365 management activity API เราก็สามารถตั้งค่าตัว O365beat ได้ โดยจะต้องมีการใส่ค่าของ API ที่ใช้งานลงในไฟล์ตั้งค่าด้วยเพื่อให้ O365 สามารถส่ง Log ออกมาตาม Audit ของ management activity API ได้ โดยเราจะต้อง Login เข้าไปที่หน้า Portal ของ Azure เอง แต่ต้องเป็นสิทธิ์ของ Admin เท่านั้น ไม่อย่างนั้นจะไม่สามารถสร้าง ID บนหน้า UI ของ Azure ได้ ในการตั้งค่ากับตัว O365beat ได้ ก่อนอื่นที่เราจะเริ่มดำเนินการไปเอาค่า ID ต่าง ๆ มา ก่อนที่เราไปตั้งค่านำ ID มานั้น เรามาทำความรู้จักสิ่งที่เราต้องไปสร้างเพื่อให้ได้ ID กันก่อน
tenant_domain: ${O365BEAT_TENANT_DOMAIN:} # ชื่อ Domain หรือ Primary domain
client_secret: ${O365BEAT_CLIENT_SECRET:} # ValueID
client_id: ${O365BEAT_CLIENT_ID:} # aka application id (GUID)
directory_id: ${O365BEAT_DIRECTORY_ID:} # aka tenant id (GUID)
registry_file_path: ${O365BEAT_REGISTRY_PATH:./o365beat.state}
โดยค่า ID ต่าง ๆ ที่กล่าวมาเราสามารถเข้าไปเอาค่า ID บน UI ของหน้า Microsoft Azure ต้องเปลี่ยนสถานะเป็น Admin ก่อนทำวิธีการดังนี้
ในส่วนของ registry_file_path นั้นเราสามารถกำหนดได้ครบว่าจะให้เขียน status ไว้ที่ Path ไหนของเครื่องเรา
วิธีการตั้งค่า Microsoft Azure
ขั้นตอนแรก ดำเนินการ Log-in โดยใช้สิทธิ์ Admin

หลังจาก Log in แล้วให้เลือกเมนูไปที่ Azure Active Directory

หลังจากเราเข้ามาที่หน้า Azure Active Directory เราจะเห็นว่าตรง Basic information จะมีค่าของ Primary domain อยู่ที่เราต้องนำไปใช้ในการตั้งค่า

ในส่วนต่อมา แล้วเลือกไปที่ App registrations และคลิก New registrations

ทำการตั้งชื่อตามต้องการและตั้งค่าตามภาพด้านล่าง

หลังจาก กด Register เราจะได้ค่าของ Application ID และค่าของ Directory ID มา ที่ใช้ในการออฟฟิศบนตัวของ O365beat ได้

หลังจากเราได้ค่า Application ID แล้วเราจะต้องทำการ Create Certificates ที่ใช้ในการสร้าง API สำหรับเชื่อมต่อ O365 บีบตัวของ Office 365 เอง โดยเราคลิกเลือกที่เมนูของ Certificates & secrets และ เลือก New Client secret ทำการเลือกวัน Expired ตัวอย่างนี้ผมได้ทำการเลือกเป็น 12 เดือนและกด Add

หลังจากเรากดแอดแล้วเราจะได้ค่า ID ที่เป็น value มาที่ใช้ในการนำไปตั้งค่าบน O365 beat เหมือนกัน

หลังจากเราตั้งค่าเพื่อเอาค่า Application ID แล้ว และทำการตั้งค่าสั่งซื้อที่พิเศษขึ้นมาอาจจะต้องมีการกำหนดเพอร์ Mission ของ PPI ในการส่งข้อมูลออกไปโดยเราจะต้องเข้าไปที่เมนู API Permissions และทำการ Add a permission

ทำการเลือก Add a Permission ตัวแรกคือ Microsoft Graph เลือกในส่วนของ “Delegated” และค้นหา “User.Read” และทำการเลือกที่ User.Read และกด Update permissions
ต่อมทำการ Add a permission เพิ่ม ในส่วนของ Office 365 Management APIs เลือกในส่วนของ “Delegated”และเลือก ActivityFeed.Read และกด Add Permission
ในส่วนของ Office 365 Management APIs อีกครั้งเลือกในส่วนของ “Application”และเลือก ActivityFeed.Read และกด Add Permission เหมือนกัน

หลังจากที่ได้ทำการเพิ่มในส่วนของ API Permission แล้วให้ทำการกด Grant admin consent for … เพื่อให้ Status เป็นการเริ่มทำงาน
และนี่เป็นตัวอย่างในการตั้งค่าใน O365beat โดยเราทำการนำค่า ID จากหน้า UI ที่เราได้ตั้งค่าบน Protal ของ Microsoft Azure มาใส่ ดังนี้

หลังจากตั้งค่าเรียบร้อยแล้วเราสามารถ Run O365beat โดยใช้คำสั่ง
./o365beat –path.config . -c o365beat.yml -e -d “*”
จากตัวอย่างนี้ผมได้ทำการตั้งค่าให้มีการส่งค่าไปเก็บบน Elasticsearch โดยแสดง Index ที่ชื่อ office365 ดังตัวอย่างนี้

ทั้งหมดนี้เป็นวิธีการดี ๆ เพื่อให้คุณได้ลองนำไปปรับใช้ให้เข้ากับองค์กรของคุณ เพื่อความสะดวกและลดเวลาในการจัดเก็บ Log แต่สำหรับข้อสงสัยที่คุณอาจมี หรือต้องการหาตัวช่วยในการจัดเก็บ Log ที่ง่าย โปรดติดต่อเราที่
Facebook : https://bit.ly/ilogfb
Blog : https://ilog.ai/blog/
Youtube : Ragnar Corporation Company Limited