ค้นหาเว็บไซต์

วิธีสร้างและส่งมอบรายงานกิจกรรมของระบบโดยใช้ชุดเครื่องมือ Linux - ตอนที่ 3


ในฐานะวิศวกรระบบ คุณมักจะต้องจัดทำรายงานที่แสดงการใช้ทรัพยากรของระบบของคุณ เพื่อให้แน่ใจว่า: 1) มีการใช้ทรัพยากรอย่างเหมาะสมที่สุด 2) ป้องกันปัญหาคอขวด และ 3) รับประกันความสามารถในการปรับขนาด เหนือเหตุผลอื่นๆ

นอกจากเครื่องมือ Linux ดั้งเดิมที่รู้จักกันดีซึ่งใช้ในการตรวจสอบการใช้งานดิสก์ หน่วยความจำ และ CPU แล้ว Red Hat Enterprise Linux 7 ยังมีชุดเครื่องมือเพิ่มเติมอีกสองชุดเพื่อปรับปรุงข้อมูลที่คุณสามารถรวบรวมสำหรับรายงานของคุณ: sysstat และ dstat

ในบทความนี้ เราจะอธิบายทั้งสองอย่าง แต่ก่อนอื่นเรามาเริ่มด้วยการตรวจสอบการใช้เครื่องมือแบบคลาสสิกกันก่อน

เครื่องมือ Linux ดั้งเดิม

ด้วย df คุณจะสามารถรายงานพื้นที่ดิสก์และการใช้งานไอโหนดตามระบบไฟล์ได้ คุณต้องตรวจสอบทั้งสองกรณีเนื่องจากการไม่มีพื้นที่ว่างจะทำให้คุณไม่สามารถบันทึกไฟล์เพิ่มเติมได้ (และอาจทำให้ระบบล่ม) เช่นเดียวกับการหมด inodes หมายความว่าคุณไม่สามารถเชื่อมโยงไฟล์เพิ่มเติมกับข้อมูลที่เกี่ยวข้องได้ โครงสร้างจึงให้ผลเช่นเดียวกัน: คุณจะไม่สามารถบันทึกไฟล์เหล่านั้นลงดิสก์ได้


df -h 		[Display output in human-readable form]
df -h --total         [Produce a grand total]


df -i 		[Show inode count by filesystem]
df -i --total 	[Produce a grand total]

ด้วย du คุณสามารถประมาณการใช้พื้นที่ไฟล์ตามไฟล์ ไดเร็กทอรี หรือระบบไฟล์

ตัวอย่างเช่น มาดูกันว่าไดเร็กทอรี /home มีการใช้พื้นที่เท่าใด ซึ่งรวมถึงไฟล์ส่วนตัวของผู้ใช้ทั้งหมด คำสั่งแรกจะส่งคืนพื้นที่โดยรวมที่ใช้ในปัจจุบันโดยไดเร็กทอรี /home ทั้งหมด ในขณะที่คำสั่งที่สองจะแสดงรายการที่แยกตามไดเร็กทอรีย่อยด้วย:


du -sch /home
du -sch /home/*

อย่าพลาด:

  1. ตัวอย่างคำสั่ง 12 'df' เพื่อตรวจสอบการใช้พื้นที่ดิสก์ Linux
  2. 10 ตัวอย่างคำสั่ง 'du' เพื่อค้นหาการใช้งานดิสก์ของไฟล์/ไดเร็กทอรี

ยูทิลิตี้อีกอย่างที่ขาดไม่ได้จากชุดเครื่องมือของคุณคือ vmstat มันจะช่วยให้คุณเห็นข้อมูลอย่างรวดเร็วเกี่ยวกับกระบวนการ การใช้งาน CPU และหน่วยความจำ กิจกรรมของดิสก์ และอื่นๆ

หากทำงานโดยไม่มีอาร์กิวเมนต์ vmstat จะส่งกลับค่าเฉลี่ยนับตั้งแต่การรีบูตครั้งล่าสุด แม้ว่าคุณอาจใช้คำสั่งรูปแบบนี้เป็นครั้งคราว แต่จะมีประโยชน์มากกว่าถ้านำตัวอย่างการใช้งานระบบจำนวนหนึ่ง ทีละตัวอย่าง โดยมีการแบ่งเวลาระหว่างตัวอย่างที่กำหนด

ตัวอย่างเช่น,


vmstat 5 10

จะส่งคืน 10 ตัวอย่างที่ถ่ายทุกๆ 5 วินาที:

ดังที่คุณเห็นในภาพด้านบน ผลลัพธ์ของ vmstat จะถูกหารด้วยคอลัมน์: procs (กระบวนการ), หน่วยความจำ, swap, io, ระบบ และ ซีพียู ความหมายของแต่ละฟิลด์สามารถพบได้ในส่วน คำอธิบายฟิลด์ ในหน้าคู่มือของ vmstat

vmstat มีประโยชน์ที่ไหน? มาตรวจสอบพฤติกรรมของระบบก่อนและระหว่าง การอัปเดต yum:


vmstat -a 1 5

โปรดทราบว่าในขณะที่ไฟล์กำลังถูกแก้ไขบนดิสก์ จำนวนหน่วยความจำ ที่ใช้งานอยู่ จะเพิ่มขึ้น และจำนวนบล็อกที่เขียนลงดิสก์ (bo) และเวลา CPU จะเพิ่มขึ้นเช่นกัน ทุ่มเทให้กับกระบวนการของผู้ใช้ (พวกเรา)

หรือในระหว่างกระบวนการบันทึกไฟล์ขนาดใหญ่ลงดิสก์โดยตรง (เกิดจาก dsync):


vmstat -a 1 5
dd if=/dev/zero of=dummy.out bs=1M count=1000 oflag=dsync

ในกรณีนี้ เราเห็นได้ว่ามีการเขียนบล็อกจำนวนมากขึ้นไปยังดิสก์ (bo) ซึ่งเป็นไปตามที่คาดไว้ แต่ยังเพิ่มระยะเวลา CPU ที่ต้องรอด้วย การดำเนินการ I/O ที่ต้องทำให้เสร็จก่อนประมวลผลงาน (wa)

อย่าพลาด: Vmstat – การตรวจสอบประสิทธิภาพ Linux

เครื่องมือ Linux อื่น ๆ

ดังที่ได้กล่าวไว้ในบทนำของบทนี้ มีเครื่องมืออื่นๆ ที่คุณสามารถใช้เพื่อตรวจสอบสถานะของระบบและการใช้งาน (เครื่องมือเหล่านี้ไม่เพียงแต่ให้บริการโดย Red Hat เท่านั้น แต่ยังมาจากการกระจายหลักอื่นๆ จากการสนับสนุนอย่างเป็นทางการด้วย ที่เก็บข้อมูล)

แพ็คเกจ sysstat ประกอบด้วยยูทิลิตี้ต่อไปนี้:

  1. sar (รวบรวม รายงาน หรือบันทึกข้อมูลกิจกรรมของระบบ)
  2. sadf (แสดงข้อมูลที่รวบรวมโดย sar ในหลายรูปแบบ)
  3. mpstat (สถิติที่เกี่ยวข้องกับตัวประมวลผลรายงาน)
  4. iostat (รายงานสถิติ CPU และสถิติ I/O สำหรับอุปกรณ์และพาร์ติชัน)
  5. pidstat (รายงานสถิติสำหรับงาน Linux)
  6. nfsiostat (รายงานสถิติอินพุต/เอาต์พุตสำหรับ NFS)
  7. cifsiostat (รายงานสถิติ CIFS) และ
  8. sa1 (รวบรวมและจัดเก็บข้อมูลไบนารีในไฟล์ข้อมูลกิจกรรมรายวันของระบบ
  9. เครื่องมือ sa2 (เขียนรายงานรายวันในไดเรกทอรี /var/log/sa)

ในขณะที่ dstat เพิ่มคุณลักษณะพิเศษบางอย่างให้กับฟังก์ชันการทำงานของเครื่องมือเหล่านั้น พร้อมด้วยตัวนับและความยืดหยุ่นที่มากขึ้น คุณสามารถดูคำอธิบายโดยรวมของแต่ละเครื่องมือได้โดยการเรียกใช้ yum info sysstat หรือ yum info dstat ตามลำดับ หรือตรวจสอบ man page แต่ละหน้าหลังการติดตั้ง

วิธีติดตั้งแพ็คเกจทั้งสอง:


yum update && yum install sysstat dstat

ไฟล์การกำหนดค่าหลักสำหรับ sysstat คือ /etc/sysconfig/sysstat คุณจะพบพารามิเตอร์ต่อไปนี้ในไฟล์นั้น:


How long to keep log files (in days).
If value is greater than 28, then log files are kept in
multiple directories, one for each month.
HISTORY=28
Compress (using gzip or bzip2) sa and sar files older than (in days):
COMPRESSAFTER=31
Parameters for the system activity data collector (see sadc manual page)
which are used for the generation of log files.
SADC_OPTIONS="-S DISK"
Compression program to use.
ZIP="bzip2"

เมื่อติดตั้ง sysstat งาน cron สองงานจะถูกเพิ่มและเปิดใช้งานใน /etc/cron.d/sysstat งานแรกจะรันเครื่องมือการบัญชีกิจกรรมระบบทุกๆ 10 นาที และจัดเก็บรายงานใน /var/log/sa/saXX โดยที่ XX คือ วันของเดือน

ดังนั้น /var/log/sa/sa05 จะมีรายงานกิจกรรมของระบบทั้งหมดตั้งแต่วันที่ 5 ของเดือน นี่ถือว่าเราใช้ค่าเริ่มต้นในตัวแปร HISTORY ในไฟล์การกำหนดค่าด้านบน:


*/10 * * * * root /usr/lib64/sa/sa1 1 1

งานที่สองสร้างสรุปรายวันของการบัญชีกระบวนการเวลา 23:53 pm ทุกวัน และจัดเก็บไว้ในไฟล์ /var/log/sa/sarXX โดยที่ XX มีความหมายเหมือนกับในตัวอย่างก่อนหน้านี้:


53 23 * * * root /usr/lib64/sa/sa2 -A

ตัวอย่างเช่น คุณอาจต้องการส่งออกสถิติระบบตั้งแต่ 9:30 น. ถึง 17:30 น. ของวันที่ 6 ของเดือนเป็น .csv ไฟล์ที่สามารถดูได้อย่างง่ายดายโดยใช้ LibreOffice Calc หรือ Microsoft Excel (วิธีนี้จะช่วยให้คุณสร้างแผนภูมิหรือกราฟได้ด้วย):


sadf -s 09:30:00 -e 17:30:00 -dh /var/log/sa/sa06 -- | sed 's/;/,/g' > system_stats20150806.csv

คุณสามารถใช้แฟล็ก -j แทน -d ในคำสั่ง sadf ด้านบนเพื่อส่งออกสถิติระบบใน JSON ซึ่งอาจมีประโยชน์หากคุณต้องการใช้ข้อมูลในเว็บแอปพลิเคชัน เป็นต้น

สุดท้าย เรามาดูกันว่า dstat มีอะไรให้บ้าง โปรดทราบว่าหากทำงานโดยไม่มีอาร์กิวเมนต์ dstat จะถือว่า -cdngy เป็นค่าเริ่มต้น (ย่อมาจาก CPU, ดิสก์, เครือข่าย, หน้าหน่วยความจำ และสถิติระบบ ตามลำดับ) และเพิ่มอีกหนึ่งรายการ บรรทัดทุกวินาที (การดำเนินการสามารถหยุดได้ตลอดเวลาด้วย Ctrl + C):


dstat

หากต้องการส่งออกสถิติเป็นไฟล์ .csv ให้ใช้แฟล็ก –output ตามด้วยชื่อไฟล์ มาดูกันว่าสิ่งนี้มีลักษณะอย่างไรใน LibreOffice Calc:

ฉันขอแนะนำให้คุณตรวจสอบ man page ของ dstat พร้อมกับ man page ของ sysstat ในรูปแบบ PDF เพื่อความสะดวกในการอ่านของคุณ คุณจะพบตัวเลือกอื่นๆ มากมายที่จะช่วยคุณสร้างรายงานกิจกรรมระบบแบบกำหนดเองและโดยละเอียด

อย่าพลาด: Sysstat – เครื่องมือตรวจสอบกิจกรรมการใช้งาน Linux

สรุป

ในคู่มือนี้ เราได้อธิบายวิธีใช้ทั้งเครื่องมือ Linux ดั้งเดิมและยูทิลิตี้เฉพาะที่มาพร้อมกับ RHEL 7 เพื่อสร้างรายงานเกี่ยวกับการใช้งานระบบ เมื่อถึงจุดหนึ่ง คุณจะต้องพึ่งพารายงานเหล่านี้ในฐานะเพื่อนที่ดีที่สุด

คุณอาจใช้เครื่องมืออื่นที่เราไม่ได้กล่าวถึงในบทช่วยสอนนี้ หากเป็นเช่นนั้น โปรดแบ่งปันกับคนอื่นๆ ในชุมชนพร้อมกับข้อเสนอแนะ/คำถาม/ความคิดเห็นอื่น ๆ ที่คุณอาจมี โดยใช้แบบฟอร์มด้านล่าง

เราหวังว่าจะได้ยินจากคุณ.