Neural net สำหรับการตรวจสอบเซิร์ฟเวอร์


11

ฉันกำลังดู pybrain สำหรับการตรวจสอบการเตือนเซิร์ฟเวอร์และหาสาเหตุที่แท้จริงของปัญหา ฉันมีความสุขกับการฝึกอบรมโดยใช้การเรียนรู้แบบมีผู้สอนและดูแลชุดข้อมูลการฝึกอบรม ข้อมูลมีโครงสร้างดังนี้:

  • เซิร์ฟเวอร์ประเภทA # 1
    • นาฬิกาปลุกประเภท 1
    • Alarm type 2
  • เซิร์ฟเวอร์ประเภทA # 2
    • นาฬิกาปลุกประเภท 1
    • Alarm type 2
  • เซิร์ฟเวอร์ประเภทB # 1
    • Alarm type 99
    • Alarm type 2

ดังนั้นจึงมีnเซิร์ฟเวอร์กับxสัญญาณเตือนที่สามารถหรือUP DOWNทั้งสองnและxเป็นตัวแปร

หากเซิร์ฟเวอร์ A1 มีสัญญาณเตือน 1 & 2เหมือนDOWNกันเราสามารถพูดได้ว่าบริการ aหยุดทำงานบนเซิร์ฟเวอร์นั้นและเป็นสาเหตุของปัญหา

หากการเตือน 1หยุดทำงานบนเซิร์ฟเวอร์ทั้งหมดเราสามารถพูดได้ว่าบริการ aเป็นสาเหตุ

อาจมีหลายตัวเลือกสำหรับสาเหตุดังนั้นการจำแนกแบบตรงจึงไม่เหมาะสม

ฉันต้องการผูกแหล่งข้อมูลในภายหลังกับเน็ต เช่นสคริปต์ที่ ping บริการภายนอกบางอย่าง

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

ฉันพยายามทำสิ่งพื้นฐานบางอย่างในตอนแรก:

from pybrain.tools.shortcuts import buildNetwork
from pybrain.datasets import SupervisedDataSet
from pybrain.supervised.trainers import BackpropTrainer


INPUTS = 2
OUTPUTS = 1

# Build network

# 2 inputs, 3 hidden, 1 output neurons
net = buildNetwork(INPUTS, 3, OUTPUTS)


# Build dataset

# Dataset with 2 inputs and 1 output
ds = SupervisedDataSet(INPUTS, OUTPUTS)


# Add one sample, iterable of inputs and iterable of outputs
ds.addSample((0, 0), (0,))



# Train the network with the dataset
trainer = BackpropTrainer(net, ds)

# Train 1000 epochs
for x in xrange(10):
    trainer.train()

# Train infinite epochs until the error rate is low
trainer.trainUntilConvergence()


# Run an input over the network
result = net.activate([2, 1])

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

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

ฉันควรใช้อัลกอริทึมชนิดใดและฉันจะแมปชุดข้อมูลเพื่อวาดข้อสรุปทั่วทั้งสภาพแวดล้อมโดยรวมด้วยตัวแปรอินพุตได้อย่างไร


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

ฉันยินดีต้อนรับทางออกใด ๆ ตาข่ายประสาทเป็นเพียงสิ่งเดียวที่ฉันพยายามใช้
Matt Williamson

ปัญหาที่น่าสนใจ เมื่อคุณโพสต์สิ่งนี้เมื่อ 6 เดือนที่แล้วฉันขอให้คุณยืนยันว่าคุณยังสนใจสิ่งนี้อยู่ก่อนที่ฉันจะใช้เวลาแทงมัน?
Hack-R

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

คำตอบ:


2

ในความคิดของฉันคุณกำลังมองหาวิธีการที่ไม่ถูกต้องในการแก้ปัญหาของคุณ

คุณไม่มีข้อมูลตัวเลขอย่างเคร่งครัด

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

อย่างไรก็ตามมีวิธีการในการเรียนรู้ระบบที่ยึดกฎตามตรรกะ พวกเขาค่อนข้างล้าสมัยสำหรับการเรียนรู้ของเครื่องในวันนี้ https://en.wikipedia.org/wiki/Rule-based_system


+1, ถ้าคุณสามารถทำแผนที่ว่า / แล้วจัดการกับปัญหาได้อย่างง่ายดายไม่มีวิธีที่ ANN จะทำได้ดีกว่าตรรกะอนุมานบริสุทธิ์ แม้แต่การโต้แย้งทางสถิติ (บริการ A หยุดทำงานในเซิร์ฟเวอร์ 5/6 ดังนั้นบริการ A ไม่ทำงาน) ก็ยังดีกว่าการจัดการกับโอเวอร์เฮดที่ Neural Net ต้องการ
Derek Janni

2

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

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

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

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.