Contents

วิธีทำให้การตรวจสอบระบบอัตโนมัติโดยใช้ Python

องค์กรส่วนใหญ่พึ่งพาโครงสร้างพื้นฐานด้านไอทีเป็นอย่างมากในการดำเนินธุรกิจ ความล้มเหลวของระบบโดยไม่ได้วางแผนหรือประสิทธิภาพการทำงานลดลงสามารถนำไปสู่การหยุดชะงัก การสูญเสียทางการเงิน และความเสียหายต่อชื่อเสียง

ระบบอัตโนมัติสำหรับการประเมินสุขภาพเป็นระยะถือเป็นสิ่งสำคัญในการรับรองเสถียรภาพและความน่าเชื่อถือของโครงสร้างพื้นฐานด้านเทคโนโลยีสารสนเทศขององค์กร ด้วยการติดตามตัวบ่งชี้ที่สำคัญอย่างต่อเนื่องและการระบุความเบี่ยงเบนจากรูปแบบปกติอย่างทันท่วงที โอกาสที่จะเกิดการหยุดชะงักในการดำเนินงานเป็นระยะเวลานานจะลดลงอย่างมีนัยสำคัญ

การกำหนดการตรวจสุขภาพ

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

เพื่อสร้างตัวชี้วัดประสิทธิภาพที่มีประสิทธิภาพสำหรับโครงสร้างพื้นฐานด้านไอทีของคุณ สิ่งสำคัญคือต้องสร้างเส้นฐานโดยการวิเคราะห์แนวโน้มในอดีตในการใช้งานระบบ สิ่งนี้จะช่วยให้คุณสามารถกำหนดระดับการใช้ทรัพยากรที่เหมาะสมและระบุปัญหาคอขวดที่อาจเกิดขึ้นได้ นอกจากนี้ การตั้งค่าเกณฑ์เฉพาะสำหรับเวลาที่การแจ้งเตือนจะเกิดขึ้นสามารถช่วยให้ผู้ดูแลระบบตอบสนองต่อปัญหาได้ทันทีก่อนที่จะบานปลาย ค่าเกณฑ์สำหรับการพิจารณาว่าการใช้ทรัพยากรสูงหรือต่ำอาจแตกต่างกันไปขึ้นอยู่กับปัจจัยต่างๆ เช่น รูปแบบปริมาณงานและกำลังการผลิตที่มีอยู่ จำเป็นอย่างยิ่งที่จะต้องพิจารณาพารามิเตอร์เหล่านี้อย่างรอบคอบและสื่อสารอย่างชัดเจนระหว่างทีมเพื่อรักษาประสิทธิภาพของระบบให้ดีที่สุด

การเลือกห้องสมุดและการตั้งค่าสภาพแวดล้อมของคุณ

ในการใช้โซลูชันการตรวจสอบระบบอัตโนมัติโดยใช้ Python ต้องใช้ชุดไลบรารีเพื่อรวบรวมข้อมูลประสิทธิภาพของระบบและสร้างจุดตรวจสอบปกติ ไลบรารีเหล่านี้ช่วยให้ดำเนินงานได้อย่างมีประสิทธิภาพในขณะเดียวกันก็รับประกันการประเมินประสิทธิภาพที่เชื่อถือได้

Psutil เป็นไลบรารีอเนกประสงค์ที่ช่วยให้ผู้ใช้รับข้อมูลเกี่ยวกับประสิทธิภาพของระบบบนแพลตฟอร์มต่างๆ รวมถึงการใช้งาน CPU การจัดสรรหน่วยความจำ กิจกรรมของดิสก์ แบนด์วิดท์เครือข่าย และการอ่านเซ็นเซอร์

ห้องสมุดในปัจจุบันมีวิธีการจัดการที่ไม่ซับซ้อนในการดำเนินการตามระยะเวลาที่กำหนดไว้

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

โมดูลการบันทึก Python ทำหน้าที่เป็นยูทิลิตี้ในตัวสำหรับการสร้างและรักษาบันทึกบันทึก ช่วยให้นักพัฒนาสามารถติดตามและตรวจสอบประสิทธิภาพและสถานะของระบบผ่านการเก็บบันทึกที่จัดระเบียบ

ในการเริ่มต้น ให้สร้างสภาพแวดล้อมเสมือน Python ใหม่ซึ่งจะช่วยลดความคลาดเคลื่อนที่อาจเกิดขึ้นในเวอร์ชันไลบรารี จากนั้นดำเนินการคำสั่งเทอร์มินัลถัดไปโดยใช้’Pip’เพื่อติดตั้งไลบรารีที่จำเป็น

 pip install psutil schedule

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

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

การนำเข้าไลบรารีที่จำเป็น

เริ่มต้นการพัฒนาสคริปต์ Python ที่เป็นนวัตกรรมใหม่ชื่อ “monitoring.py” ซึ่งจะเริ่มต้นด้วยการนำเข้าโมดูลและเฟรมเวิร์กที่ขาดไม่ได้ที่จำเป็นสำหรับการดำเนินการ

 import psutil
import schedule
import time
import logging 

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

การบันทึกและการรายงาน

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

ใช้สิ่งอำนวยความสะดวกในการบันทึกข้อมูลในตัวเพื่อสร้างบันทึกสำหรับการดำเนินการนี้ รายการบันทึกอาจถูกบันทึกลงในไฟล์ชื่อ “system\_monitor.log”

 # Function to log messages
def log_message(message):
    # Configure logging
    logging.basicConfig(filename='system_monitor.log', level=logging.INFO,
                       format='%(asctime)s - %(message)s')
    logging.info(message) 

เพื่ออำนวยความสะดวกในการสื่อสารที่รวดเร็วเกี่ยวกับข้อกังวลเร่งด่วน ขอแนะนำให้แสดงภาพบ่งชี้ในรูปแบบของข้อความแจ้งเตือนบนคอนโซลของระบบเพื่อให้ทราบและพิจารณาในทันที

 # Function to print alerts to the console
def print_alert(message):
    print(f"ALERT: {message}") 

ฟังก์ชันตรวจสุขภาพจะใช้ฟังก์ชันเหล่านี้เพื่อวัตถุประสงค์ในการบันทึกและเผยแพร่ข้อมูลที่เกี่ยวข้อง

การสร้างฟังก์ชั่นตรวจสุขภาพ

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

การตรวจสอบการใช้งาน CPU

การใช้กลไกการตรวจสอบที่มีประสิทธิภาพสำหรับการใช้งาน CPU ถือเป็นพื้นฐานในการวัดประสิทธิภาพการดำเนินงานและการจัดสรรทรัพยากรของระบบที่กำหนด การตรวจจับการใช้งาน CPU ในระดับสูงสามารถช่วยระบุปัญหาคอขวดที่อาจเกิดขึ้นหรือปัญหาที่อาจนำไปสู่ประสิทธิภาพที่ลดลง การตอบสนองที่ช้า และอาจเกิดความล้มเหลวของระบบ ซึ่งอาจส่งผลเสียต่อบริการที่สำคัญที่ผู้ใช้ต้องพึ่งพาอย่างมาก

ด้วยการตรวจสอบการใช้งาน CPU อย่างสม่ำเสมอและการกำหนดระดับเกณฑ์ที่เหมาะสม ผู้ดูแลระบบจึงสามารถระบุอุปสรรคด้านประสิทธิภาพ กระบวนการที่ต้องใช้ทรัพยากรจำนวนมาก หรือข้อกังวลด้านฮาร์ดแวร์ที่น่าสงสัย โดยการระบุความเบี่ยงเบนจากรูปแบบพฤติกรรมที่คาดหวัง

 # Health check functions
def check_cpu_usage(threshold=50):
    cpu_usage = psutil.cpu_percent(interval=1)

    if cpu_usage > threshold:
        message = f"High CPU usage detected: {cpu_usage}%"
        log_message(message)
        print_alert(message) 

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

การตรวจสอบการใช้หน่วยความจำ

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

 def check_memory_usage(threshold=80):
    memory_usage = psutil.virtual_memory().percent

    if memory_usage > threshold:
        message = f"High memory usage detected: {memory_usage}%"
        log_message(message)
        print_alert(message) 

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

การตรวจสอบพื้นที่ดิสก์

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

 def check_disk_space(path='/', threshold=75):
    disk_usage = psutil.disk_usage(path).percent

    if disk_usage > threshold:
        message = f"Low disk space detected: {disk_usage}%"
        log_message(message)
        print_alert(message) 

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

การตรวจสอบการรับส่งข้อมูลเครือข่าย

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

 def check_network_traffic(threshold=100 * 1024 * 1024):
    network_traffic = psutil.net_io_counters().bytes_recv \+\
                      psutil.net_io_counters().bytes_sent

    if network_traffic > threshold:
        message = f"High network traffic detected: {network_traffic:.2f} MB"
        log_message(message)
        print_alert(message) 

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

การใช้ลอจิกการตรวจสอบ

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

 # Function to run health checks
def run_health_checks():
    print("Monitoring the system...")
    log_message("Running system health checks...")

    check_cpu_usage()
    check_memory_usage()
    check_disk_space()
    check_network_traffic()

    log_message("Health checks completed.") 

การดำเนินการเฉพาะนี้จะดำเนินการประเมินโดยรวมของความเป็นอยู่โดยรวมของโครงสร้างพื้นฐานของคุณโดยดำเนินการตรวจสุขภาพหลายครั้งในลักษณะที่สอดคล้องกันและครอบคลุม โดยนำเสนอภาพรวมแบบรวมของสถานะปัจจุบันของความมีชีวิตชีวาของระบบของคุณ

การกำหนดเวลาการตรวจสอบอัตโนมัติและการรันโปรแกรม

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

 # Schedule health checks to run every minute
 schedule.every(1).minutes.do(run_health_checks) 

เพื่อที่จะตรวจสอบประสิทธิภาพของคอมพิวเตอร์ของคุณอย่างต่อเนื่อง จำเป็นต้องดำเนินกระบวนการตรวจสอบระบบอย่างต่อเนื่อง

 # Main loop to run scheduled tasks
while True:
    schedule.run_pending()
    time.sleep(1)

วงดังกล่าวจะเพียรพยายามในการตรวจสอบหน้าที่ที่กำหนดไว้และดำเนินการตามกำหนดเวลาตามระยะเวลาที่กำหนดไว้ เมื่อรันซอฟต์แวร์ จอแสดงผลจะแสดงผลลัพธ์ต่อไปนี้:

/th/images/how-to-automate-system-monitoring-using-python-output.jpg

ซอฟต์แวร์จะรักษาบันทึกของกิจกรรมการตรวจสอบภายในไฟล์ system\_monitor.log ขณะเดียวกันก็สร้างการแจ้งเตือนที่แสดงบนอินเทอร์เฟซบรรทัดคำสั่งไปพร้อมๆ กัน

ความก้าวหน้าของโปรแกรมตรวจสอบระบบ

Psutil ให้ความสามารถในการตรวจสอบเพิ่มเติมนอกเหนือจากที่ระบุไว้ที่นี่ ช่วยให้สามารถปรับแต่งได้ตามความต้องการและความชอบเฉพาะ

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