2012-08-11 8 views
5

Tôi muốn viết một kịch bản python để thực hiện một số giám sát "vô hại" rất đơn giản của các tiến trình từ xa chạy trên các máy chủ Linux.Giám sát quy trình từ xa đơn giản với Python

Nó sẽ thực hiện các nhiệm vụ sau, trong psuedocode:

for each remoteIPAddress in listOfIPAddresses: 
    log into [email protected] via ssh 
    execute the equivalent of a 'ps -ef' command 
    grep the result to make sure a particular process (by name) is still running 

Một cách để làm điều này là để có kịch bản shell gọi python trong một tiến trình con và phân tích sản lượng của họ. Điều đó có vẻ khá kém hiệu quả. Có cách nào tốt hơn để làm điều này thông qua thư viện python?

Tất cả tôi có thể tìm thông qua nghiên cứu ở đây và các nơi khác là:

  • psutil - có vẻ như nó không làm giám sát từ xa, vì vậy tôi sẽ phải chạy các đại lý trên các máy từ xa để báo cáo số liệu thống kê lại qua RPC.
  • pymeter - Tôi sẽ phải viết plugin của riêng mình để theo dõi một dịch vụ từ xa cụ thể.
  • stackoverflow #4546492 - Một số liên kết hữu ích nhưng người đăng đang tìm kiếm giải pháp khác.

Cảm ơn, và hãy đi dễ dàng cho tôi, đó là câu hỏi đầu tiên của tôi :-)

+0

http://www.noah.org/python/pexpect/ cũng là tùy chọn gud tôi đoán –

+0

Cảm ơn bạn. Tôi đã tải xuống và sẽ đánh giá song song với Vải (bên dưới). – tohster

Trả lời

3

Thư viện Fabric có thể bạn quan tâm.

+0

+1 to Fabric, tạo ra cách thức hiệu quả hơn để viết và duy trì vị trí của các kịch bản lệnh shell từ Python. –

+0

Cảm ơn rất nhiều. Có vẻ như tôi vẫn sẽ cần phải làm cốt lõi của nó bằng cách sử dụng lệnh ssh nhưng vải kết thúc tốt đẹp hơn nhiều so với tôi có thể đã hy vọng để kluge với nhau bản thân mình. Đánh giá cao gợi ý nhanh! – tohster

1

Check-out paramiko. Bạn có thể sử dụng nó để ssh vào máy chủ và chạy các lệnh. Sau đó, bạn có thể phân tích các kết quả và thực hiện những gì bạn muốn với chúng.

+0

Cảm ơn bạn đã đề xuất. Tôi nghĩ tôi sẽ bắt đầu với Fabric nhưng đây là kế hoạch B và một câu trả lời hay. – tohster

+0

Nhìn vào cả Fabric và Paramiko. Tôi chấp nhận câu trả lời này bởi vì nó phù hợp chặt chẽ nhất với câu hỏi ban đầu. – tohster

0

Nó có thể nặng hơn những gì bạn đang tìm kiếm, nhưng Zenoss hỗ trợ giám sát vô nhân đạo.

paramiko và Fabric, được đề xuất trong các câu trả lời khác, cũng là các tùy chọn tuyệt vời.

+0

Cảm ơn. Trông giống như một sản phẩm thương mại vì vậy tôi sẽ giữ nó trong sổ tay của tôi để mở rộng sau này. – tohster

+0

Đó là mã nguồn mở, nhưng chúng cũng có phiên bản thương mại. –

0

Nhận tín hiệu từ các câu trả lời ở trên, tôi đã nghiên cứu Vải và thấy bản trình bày sau đây đặc biệt thú vị/hữu ích. Đây là tổng quan về ba thư viện - Vải, Ẩm thực và Cơ quan giám sát - để theo dõi và quản trị máy chủ. Đối với hậu thế:

Using Fabric, Cuisine, and Watchdog for server administration in Python

0

Tại sao bạn không sử dụng một công cụ giám sát chuyên dụng như Nagios? Nagios có tác nhân và tác nhân ít giám sát hơn thông qua plugin NRPE và plugin SSH, v.v. Hãy dùng thử.