sysdig คือ เครื่องมือสำหรับใช้ค้นหาปัญหาในระดับ system ซึ่งได้รวม tool ทุกอย่างไว้ใน application เดียวเช่น tcpdump, strace, lsof เป็นต้น เท่านั้นยังไม่พอ sysdig สามารถที่จะ save system activity เป็น file เพื่อใช้วิเคราะห์ปัญหาในภายหลังได้ ในบทความนี้จะลองใช้ sysdig มาทำ audit LAMP Server และดูว่าผลจะเป็นอย่างไร ในตัวอย่างจะติดตั้ง LAMP บน Centos 7 แล้ว และมี ip address 192.168.56.100

การติดตั้ง sysdig มีขั้นตอนดังนี้

ทำการ Import key ของ Draios เพื่อให้สามารถเพิ่ม Draios repository ได้

rpm --import https://s3.amazonaws.com/download.draios.com/DRAIOS-GPG-KEY.public

แล้ว download Draios repository และทำการ config yum ให้สามารถใช้ repo นี้ได้

curl -s -o /etc/yum.repos.d/draios.repo http://download.draios.com/stable/rpm/draios.repo

ทำการ Enable EPEL Repository โดย EPEL คือ Extra Packages for Enterprise Linux ซึ่งต้องใช้เพื่อ download Dynamic Kernel Module Support (DKMS) package ซึ่ง sysdig ต้องใช้ และยัง download dependency อื่นๆ อีกด้วย

yum -y install epel-release

ทำการติดตั้ง Kernel Headers เพราะ sysdig ต้องทำการ build kernel module ชื่อ sysdig-probe

yum -y install kernel-devel-$(uname -r)

ติดตั้ง sysdig package

yum -y install sysdig

การ Running sysdig sysdig สามารถ run ได้ 2 mode คือ แบบ real-time stream และ แบบที่สามารถ save เป็น file เพื่อไว้ดูคราวหลังได้ ลอง run basic command sysdig -n คือ capture ไว้ 1000 บรรทัด -z คือ compress ไฟล์ด้วย

sysdig -w act1.scap.gz -n 1000 -z

จะค้างสักพักจนกว่าจะ capture ได้ 1000 บรรทัด หรือกด Ctrl+V เพื่อ interrupt ออกมาก็ได้ ทำการดูคำสั่งต่างๆ ของ sysdig

sysdig -cl

ใช้ Option -i เพื่อดูวิธีใช้คำสั่งต่างๆ

sysdig -i (chisel name)

เช่น

sysdig -i spy_ip

ที่นี้เรามาลอง audit network traffic ดู ให้เราลองสร้างหน้า web page login ดู /var/www/html/index.php

vi /var/www/html/index.php

เพิ่มดังนี้

แล้วให้สร้าง web page หน้าผลลัทธ์การ login ด้วย

vi /var/www/html/login.php


โดยขั้นตอนการใช้ sysdig audit Web Server มีดังนี้

save real time data เป็นไฟล์

sysdig -w act1.scap.gz -z -s 4096

ระหว่างที่ run sysdig เพื่อ capture event อยู่นั้นให้เราเข้า web browser จากเครื่องอื่นๆ แล้วพิมพ์ URL: http://192.168.56.100/index.php จะขึ้นหน้า Login ให้เราลองใส่ Login ดูเพื่อให้เกิด traffic ที่เครื่อง web server

เมื่อเรา capture event ได้สักพักให้กด Ctrl+C เพื่อยกเลิกการ capture

ทำการใช้ sysdig วิเคราะห์ไฟล์ act1.scap.gz

sysdig -r act1.scap.gz -c topprocs_net


จะเป็นการ list top process ที่ใช้งาน bandwidth เยอะที่สุด

sysdig นั้นมีการกำหนด Classes และ Fields เพื่อเลือกสิ่งที่สนใจ เช่น audit เฉพาะ client ip address 192.168.56.1 เป็นต้น โดยเราสามารถดู list ทั้งหมดของ Classes และ Fields จากคำสั่ง

sysdig -l

เลือกการใช้งาน bandwidth ของ process httpd

sysdig -r act1.scap.gz -c topconns proc.name=httpd

วิเคราะห์การใช้งาน network ที่เป็น service httpd เฉพาะ client ip address ที่ต้องการ

sysdig -r act1.scap.gz -s 4096 -A -c echo_fds fd.cip=192.168.56.1 and proc.name=httpd

จากรูปจะเห็นว่าตัวอักษรสีแดงจะเป็นการ Read data จาก web server และตัวอักษรสีน้ำเงินจะเป็นการ write data ไปที่ web server

จากการได้ทดลองเล่นดูก็รู้สึกน่าจะให้เป็น package default สำหรับ linux server เลย เพราะมีความสะดวกมากไม่ต้องติดตั้ง tool หลายๆ ตัวบน linux server คือติดตั้งตัวเดียวจบเลยอะไรประมาณนั้นครับ ขอบคุณที่อ่านบทความนี้น่ะครับ ขอให้สนุกกับการใช้งาน open source น่ะครับ

Comments are closed.