Splunk เป็นเครื่องมือที่ช่วยในจัดเก็บและวิเคราะห์ข้อมูลความปลอดภัยของระบบเครือข่ายภายในองค์กร เป็นหนึ่งในเครื่องมือประเภท Security Information and Event Management ( SIEM ) ซึ่งหลายคนเข้าใจผิดว่ามันเป็นเครื่องมือประเภท Data Analytic ซึ่งมันจะเป็นเชิง Business แต่ Splunk เป็นเครื่องมือที่ใช้วิเคราะห์ข้อมูลประเภท Log เป็นหลัก ควรเรียกว่า Log Management & Log Analytic มากกว่า จึงเหมาะกับการนำมาทำ Centralized Log
Pros
- Collect and Index Data : สามารถจัดเก็บและวิเคราะห์ข้อมูลได้หลากหลายรูปแบบ เช่น Website, Application
- Search and Investigate : การค้นหาทำได้อย่างรวดเร็ว สามารถกำหนดเงื่อนไขได้ง่ายแบบ Interactive
- Correlate and Analyze : สามารถสร้าง Pattern เฉพาะของแต่ละประเภทข้อมูล เพื่อหาความสัมพันธ์ของข้อมูล แล้วนำมาวิเคราะห์
- Visualize and Report : สามารถแสดงข้อมูลและออก Report ให้สามารถเข้าใจได้ง่ายแบบ Data Visualization
- Monitor and Alert :
- Access from Anywhere : สามารถใช้งาน Splunk ผ่านทาง Web หรือผ่านทาง Mobile App ทำให้สามารถเข้าถึงข้อมูลได้จากทุกที่
Download
Install
STEP1
- ดาวน์โหลดและติดตั้ง Splunk Enterprise ใช้ตัวฟรีไม่ได้นะ
- เข้าไปที่หน้าเว็บ http://localhost:8000 แล้วกรอก Username ด้วย admin และ password ที่เราตั้ง
- คลิก Settings แล้วเลือก Data Inputs แล้วคลิก Files & Directories
- คลิก New Local File & Directory
- ทำการ Browse ไปที่ tutorialdata/www1/access.log แล้วคลิก Next
- ทำการเซต Source Type แต่บน Splunk มันจะทำให้ Auto ถ้ามี Knowledge Base อยู่แล้ว แต่ถ้าหากไม่มีให้ไปดู Splunk App ว่า Support รึป่าว แล้วทำการติดตั้งเพิ่ม
- คลิก Next
- คลิก Submit เพื่อทำการติดตั้ง
- เปิด App Search & Reporting ขึ้นมา
- จะแสดงข้อมูลในรูปแบบ Data Visualization
STEP2
- ลองทำการค้นหา โดยสามารถเลือก Field ได้อย่างรวดเร็วจากเมนูทางซ้ายมือ ค้นหาคำว่า Purchase และไม่เอาเลข 200 หรือหากใครถนัด Regular Expression ก็ใช้ได้เหมือนกัน
host="LAB-Guest" sourcetype="access_combined_wcookie" purchase NOT 200
- สามารถ Custom Field ที่ใช้บ่อย ๆ ได้โดยคลิก All Fields
- สามารถทำ Fields Extraction เพื่อออกเป็น Report โดยคลิก Event Actions แล้วเลือก Extract Fields
- เลือก Regular Expression
- ทำการ Highlight คลิกซ้าย 1 ที จากนั้นทำการใส่ชื่อ Field แล้วคลิก Add Extraction
- Splunk จะทำการสร้าง Pattern เพื่อใช้ในการ Detect ครั้งต่อไป สามารถดูรูปแบบของ Log ได้ที่ Log Format
- ทำการสร้าง Pattern ตามรูปแบบ Netscape Extended ของไฟล์จนครบ แล้วคลิก Next
- มันจะทำการ Count Value ใน Field ให้โดยอัตโนมัติ แล้วคลิก Next
- ทำการตั้งชื่อ Extraction และกำหนด Permission แล้วคลิก Finish
- เมื่อลองเปิด Extract Field มันก็จะถูก Detect ตามรูป
STEP3
- สามารถทำ Field Lookup จะคล้าย ๆ กับการทำ VLOOKUP บน Excel ก็คือเป็นการทำ Reference Field เช่น ในไฟล์ Log ของเราแสดง User ID แต่เราต้องการให้แสดง Username ก็จะทำการ Map กัน โดยคลิก Settings แล้วเลือก Lookups แล้วคลิก Lookup Table File
- คลิก New Lookup Table File
โดยปกติ Lookups จะถูกแบ่งออกเป็น 3 Step
- Lookup Table File : เป็นไฟล์ที่ระบุว่าจะ Lookup อะไรกับอะไร
- Lookup Definition : เป็นการสร้าง Definition เพื่อใช้ในการอ้างอิง กรณีที่เรามีการเปลี่ยนแปลงไฟล์ที่ใช้ในการ Lookup จะได้ไม่ต้องไปนั่งแก้หลาย ๆ จุด
- Automatic Lookup : เป็นการใช้ Source Type ในการ Lookup โดยไม่ระบุไฟล์ใดไฟล์หนึ่งเจาะจง แต่ใช้ประเภทของไฟล์
- ทำการ Browse ไฟล์ prices.csv และตั้งชื่อ แล้วคลิก Save
- จากนั้นกลับไปเลือก Lookup Definition แล้วคลิก New Lookup Definition
- ตั้งชื่อ และเลือก Lookup File แล้วคลิก Save
- จากนั้นกลับไปเลือก Automatic Lookup แล้วคลิก New Automatic Lookup
- ตั้งชื่อ จากนั้นเลือก Lookup Table ที่เราสร้าง และทำการ Apply กับ Source Type : access_combined_wcookie พร้อมทั้งใส่ Input & Output Field แล้วคลิก Save
- ลองเลือก Field Lookup ที่เราสร้างไว้ มันจะทำการ Map ให้เราโดยอัตโนมัติ
STEP4
- การค้นหาโดยใช้ Search Command
sourcetype=access_* action=purchase | top categoryId
sourcetype=access_* action=purchase categoryId=strategy | stats count
sourcetype=access_* action=purchase categoryId=strategy | stats count by clientip
sourcetype=access_* action=purchase categoryId=strategy | stats count as "strategy games" by clientip | rename clientip as customer
- สร้าง Panel 1 บน Dashboard โดยใช้ Search Command
sourcetype=access_combined_wcookie method=GET | chart count as views, count(eval(action="purchase")) as purchase by categoryId | rename views as "Views", purchase as "Purchase", categoryId as "Category"
- ตั้งชื่อ แล้วคลิก Save จากนั้นเลือก View Dashboard
- สร้าง Panel 2 บน Dashboard โดยใช้ Search Command
sourcetype=access_* | timechart count(eval(action="purchase")) by product_name usenull=f
- คลิก Save As แล้วเลือก Dashboard Panel ของเดิมที่เราสร้าง โดยคลิก Existing
- เราก็จะได้ Dashboard สวย ๆ ดังรูป
- สร้าง Panel 3 บน Dashboard โดยใช้ Search Command
sourcetype=access_* action=purchase | stats sparkline as "Purchase Trend" count by product_name
- คลิก Save As แล้วเลือก Dashboard Panel ของเดิมที่เราสร้าง โดยคลิก Existing
- กลับไปดูหน้า Dashboard อีกที
STEP5
- การค้นหาด้วย Sub Search
sourcetype=access_* [search sourcetype=access_* action=purchase | top limit=1 clientip | table clientip]
- สร้าง Panel 4 บน Dashboard โดยใช้ Search Command
sourcetype=access_* action=purchase | stats sum(price) as sales values(product_name) as "Product Name" count by clientip | sort - count | head 1
- คลิก Save As แล้วเลือก Dashboard Panel ของเดิมที่เราสร้าง โดยคลิก Existing
- กลับไปดูหน้า Dashboard อีกที
- เราสามารถเพิ่มเมนู เช่น Textbox, Radio Button, Checkbox, Multiselect, Link, Time และ Submit บน Dashboard โดยเลือก Edit แล้วคลิก Add Input ตามด้วยเมนูที่ต้องการ เช่น Time
- จากนั้นแก้ไข Daashboard Panel Time โดยตั้งชื่อและเลือกค่า Default เป็น Last 24 hours และเลือก Search on Change ให้มีผลกับ Dashboard ทันทีที่เลือก แล้วคลิก Apply
- เมื่อเราตั้งค่า Time เสร็จแล้ว เราต้องเลือกว่าจะให้มีผลกับ Dashboard Panel ไหน เช่น Purchase vs View each Category ให้เลือก Edit Search จากนั้นให้เลือก Time Range เป็น Shared Time Picker แล้วคลิก Apply
- จากนั้นกลับมาดูที่หน้า Dashboard จะไม่ขึ้น เพราะข้อมูลมันเก่ากว่านั้น ให้เปลี่ยนเป็น All time ก็จะเห็นข้อมูลขึ้นเหมือนเดิม
- เราสามารถติดตั้ง App หรือ Add-ons เพิ่มเติมได้โดยดูข้อมูลจากเว็บไซต์ Splunk Base
Tagged: Splunk
Leave a Reply