Mạng lưới thần kinh để theo dõi máy chủ


11

Tôi đang xem pybrain để lấy báo động giám sát máy chủ và xác định nguyên nhân gốc rễ của vấn đề. Tôi hài lòng với việc đào tạo nó bằng cách sử dụng việc học có giám sát và quản lý các bộ dữ liệu đào tạo. Dữ liệu được cấu trúc như thế này:

  • Loại máy chủ A # 1
    • Báo động loại 1
    • Báo động loại 2
  • Loại máy chủ A # 2
    • Báo động loại 1
    • Báo động loại 2
  • Loại máy chủ B # 1
    • Loại báo động 99
    • Báo động loại 2

Vì vậy, có n máy chủ, với x báo động có thể UPhoặc DOWN. Cả hai nxlà biến.

Nếu Máy chủ A1 có cảnh báo 1 & 2 như vậy DOWN, thì chúng ta có thể nói rằng dịch vụ a bị hỏng trên máy chủ đó và là nguyên nhân của sự cố.

Nếu báo động 1 không hoạt động trên tất cả các máy chủ, thì chúng ta có thể nói rằng dịch vụ a là nguyên nhân.

Có khả năng có thể có nhiều lựa chọn cho nguyên nhân, vì vậy phân loại thẳng có vẻ không phù hợp.

Tôi cũng muốn buộc các nguồn dữ liệu sau này vào mạng. Chẳng hạn như các tập lệnh ping một số dịch vụ bên ngoài.

Tất cả các báo động thích hợp có thể không được kích hoạt cùng một lúc, do kiểm tra dịch vụ nối tiếp, do đó, nó có thể bắt đầu với một máy chủ xuống và sau đó một máy chủ khác giảm 5 phút sau.

Tôi đang cố gắng làm một số thứ cơ bản lúc đầu:

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])

Nhưng tôi có một thời gian khó ánh xạ số lượng báo động biến thành số tĩnh của đầu vào. Ví dụ: nếu chúng ta thêm báo thức vào máy chủ hoặc thêm máy chủ, toàn bộ mạng cần phải được xây dựng lại. Nếu đó là điều cần phải làm, tôi có thể làm nó, nhưng muốn biết liệu có cách nào tốt hơn không.

Một tùy chọn khác mà tôi đang cố gắng nghĩ là có một mạng khác nhau cho từng loại máy chủ, nhưng tôi không thấy làm thế nào tôi có thể đưa ra kết luận trên toàn môi trường, vì nó sẽ chỉ đưa ra các đánh giá trên một máy chủ, thay vì tất cả các máy chủ lưu trữ cùng một lúc.

Tôi nên sử dụng loại thuật toán nào và làm cách nào để ánh xạ tập dữ liệu để rút ra kết luận toàn môi trường với các đầu vào biến đổi?


Tại sao không có phương pháp phân loại khác thích hợp ở đây? Âm thanh như bạn quan tâm đến nhiều trường hợp dẫn đến một bộ đầu ra giảm. Nhưng điều này về cơ bản là mọi trường hợp học đại diện trong phân loại. Mạng lưới thần kinh sẽ giúp bạn sắp xếp các hiệu ứng tương tác là dự đoán khi các tính năng cơ bản không quá dự đoán. Nếu không, bạn có thể sử dụng các phương pháp khác.
cwharland

Tôi hoan nghênh bất kỳ giải pháp. Mạng lưới thần kinh chỉ là mạng tôi đang cố gắng sử dụng.
Matt Williamson

Vấn đề thú vị. Vì bạn đã đăng bài này hơn 6 tháng trước, tôi có thể khiến bạn xác nhận rằng bạn vẫn quan tâm đến điều này trước khi tôi dành thời gian đâm vào nó không?
Hack-R

Suy nghĩ ban đầu của tôi sẽ là sử dụng một rừng hồi quy logistic ngẫu nhiên trên các mô hình loại trên mỗi máy chủ. Sau đó, bạn có điểm chuẩn của mình và bạn sẽ tìm ra khá nhanh nếu mạng lưới thần kinh sẽ cung cấp cho bạn nhiều hơn. Mạng lưới thần kinh không phải lúc nào cũng cho kết quả tốt nhất.
1269942

Câu trả lời:


2

Theo tôi, bạn đang xem xét các phương pháp sai để giải quyết vấn đề của mình.

Bạn hoàn toàn không có dữ liệu số.

Thống kê dựa trên máy học có một thời gian rất khó khăn với các vấn đề như vậy. Vấn đề của bạn có vẻ giống như một trong những vấn đề cần được giải quyết với các hệ thống dựa trên quy tắc. Bản năng đầu tiên của tôi sẽ là cố gắng hiểu các quy tắc và đưa chúng vào mã dẫn đến phân loại.

Tuy nhiên, có các phương pháp để học các hệ thống dựa trên quy tắc như vậy dựa trên logic. Chúng chỉ khá thời trang cho máy học ngày nay. https://en.wikipedia.org/wiki/Rule-basing_system


+1, Nếu bạn có thể dễ dàng vạch ra if / thens để giải quyết vấn đề, không có cách nào ANN sẽ vượt trội hơn logic suy luận thuần túy. Ngay cả một đối số thống kê (dịch vụ A không hoạt động trên 5/6 máy chủ, do đó dịch vụ A ngừng hoạt động) vẫn tốt hơn so với xử lý chi phí mà Mạng lưới thần kinh yêu cầu.
Derek Janni

2

Để phù hợp với nhận xét trên, tôi khuyên bạn nên thử một cách tiếp cận dựa trên quy tắc. Đối với mỗi máy chủ bạn có, truy vấn dịch vụ của nó. Nếu tất cả các dịch vụ không hoạt động trên một máy chủ, thì bạn có vấn đề với máy chủ. Đối với mỗi dịch vụ, nếu không có máy chủ báo cáo rằng dịch vụ đang chạy, thì bạn có vấn đề với dịch vụ. Trong trường hợp là cả hai, bạn sẽ nhận được thông báo cho từng người và sau đó có thể kiểm tra những gì đang diễn ra với bất kỳ thành phần nào.

Tất cả chi phí, bảo trì và rủi ro về kết quả xấu khi sử dụng mô hình ANN đều vượt quá giải pháp đơn giản, dựa trên quy tắc và ông chủ của bạn có thể sẽ vỗ lưng bạn chỉ vì làm những gì có ý nghĩa ở đây.

Nếu bạn thực sự nghiêm túc trong việc giữ cho máy chủ và xử lý hoạt động, tôi khuyên bạn nên đầu tư vào dịch vụ APM cung cấp cho bạn thông báo thời gian thực đáng tin cậy về những gì đang diễn ra trong môi trường sản xuất của bạn.

Trong trường hợp bạn chỉ đang cố gắng học cách ANN hoạt động - hãy thử một vấn đề khác. Bất kỳ tập dữ liệu nổi tiếng nào để phân loại hoặc phát hiện bất thường sẽ cung cấp cho bạn cái nhìn sâu sắc hơn về cách thức hoạt động của ANN so với tập dữ liệu tùy chỉnh, có thể rất khó để ép buộc vào một kế hoạch học tập hiệu quả.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.