Giám sát máy chủ web đơn giản (còn sống)


8

Bất kỳ mẹo nào về phần mềm để giám sát nếu một máy chủ web hoạt động và chạy trên linux? Nó có thể chạy mà không biết gì hơn URL. Và nó phải có chức năng gửi thông báo qua email khi trang web bị sập. Không nên tự viết một kịch bản cho điều này nhưng dường như vô nghĩa nếu đã có một cái gì đó tốt đẹp ngoài kia.

Lưu ý rằng tôi sẽ giám sát các máy chủ nội bộ, vì vậy đây cần phải là một công cụ chạy trên máy của tôi trên cùng một mạng, không phải các dịch vụ dựa trên web bên ngoài.

Và lưu ý rằng các giải pháp nhỏ và đơn giản được ưa thích.

Cập nhật : Cuối cùng tôi đã tạo ra một kịch bản python nhỏ mà tôi hiện đang sử dụng cho việc này, nó có thể được tìm thấy ở đây .



Xem thêm: serverfault.com/questions/44/ Mạnh - Chủ đề này đã được đề cập rộng rãi ở cấp độ cao.
Warner

Câu trả lời:


12

Bạn có thể sử dụng wget trong một kịch bản như thế này

wget --timeout=3 --tries=1 --spider --no-check-certificate http://serverfault.com

if [ $? -ne 0 ];then
  echo "Site Down" | mail -s "Site Down" admin@yourdomain.com
fi

Và bạn sẽ nhận được email nếu wget không thể truy cập trang web lần đầu tiên trong vòng ba giây.

Thiết lập một công việc định kỳ để chạy tập lệnh cứ sau vài phút.

Có nhiều lựa chọn thay thế khác nhưng đây có lẽ là cách đơn giản nhất để thiết lập từ đầu.


7
miễn là bạn không chạy nó trên máy chủ mà nó theo dõi - bạn không biết tôi đã thấy nó thường xuyên như thế nào ;-)
Geraint Jones

Cảm ơn. Ngoài ra, tôi thấy rằng --spider cũng là một tùy chọn hữu ích vì nó tránh thực sự lưu trang vào đĩa.
Zitrax

2
Và không cài đặt 'postfix', lệnh mail chỉ âm thầm không gửi được.
Zitrax

3
@Zitrax: Và không cần cài đặt, bạn sẽ gặp lỗi. Nếu không có mạng, wget sẽ thất bại. Không có kịch bản được thực thi, công việc định kỳ sẽ thất bại và cứ thế. Ngoài ra tôi không cài đặt 'postfix' và nó hoạt động tốt với tôi vì tôi đang sử dụng exim.
Richard Holloway

1
Tại sao --no-check-certificate? Nhận được cảnh báo về việc triển khai TLS bị hỏng cũng là thông tin có giá trị.
Avamander

7

Bạn có nhiều lựa chọn, tôi sẽ cung cấp cho bạn hai.

  • Nagios là một ứng dụng giám sát toàn diện có khả năng giám sát nhiều hơn so với http, nhưng nó cũng xử lý điều đó. Nó cũng có thể tạo tất cả các loại repots ("Hãy cho tôi biết tỷ lệ phần trăm thời gian hoạt động của máy chủ / dịch vụ X của chúng tôi trong tuần này / tháng / năm ...")

  • Monit là một lựa chọn phổ biến khác. Có thể không đầy đủ tính năng như Nagios, nhưng dù sao nó cũng tốt.


Tôi đang tìm kiếm một cái gì đó nhỏ và đơn giản, vì vậy monit dường như gần hơn với điều đó.
Zitrax

1

Vâng, nếu bạn muốn tự chạy một cái gì đó.

Đây là một số tùy chọn:

Hoặc nếu bạn muốn một giải pháp được quản lý:

Cá nhân tôi nghĩ rằng Zabbix và Zenoss là quá mức cần thiết nếu bạn chỉ muốn theo dõi trạng thái của một máy chủ web. Nhưng nếu bạn cũng có kế hoạch giám sát bất cứ thứ gì khác ngoài chúng có nhiều tính năng hơn bạn cần;)


Tôi đoán pingdom và xu hướng tăng không thể theo dõi các trang web trên mạng nội bộ của tôi.
Zitrax

@Zitrax: không, họ không thể. Tôi đọc qua phần đó.
Wolph

1

Tôi đã đánh giá cao câu trả lời của Richard và Janne, nhưng nếu bạn muốn biết thêm chi tiết về những gì máy chủ web của bạn đang gửi và nhận, thì hai chương đầu tiên của cuốn sách O'Reilly "Lập trình máy khách với Perl" của Clinton Wong cho một cái nhìn tổng quan tuyệt vời của giao thức HTTP. Nếu bạn muốn theo dõi chi tiết hơn là chỉ lên / xuống và muốn bao gồm mã phản hồi, v.v., đó là một nơi tốt để bắt đầu.

Cuốn sách đã cũ, nhưng vẫn còn hiệu lực. Được xuất bản vào năm 1997, O'Reilly đã đăng tải nội dung của cuốn sách trực tuyến miễn phí tại http://oreilly.com/openbook/webclient/ như một phần của sáng kiến ​​OpenBook của họ.


0

Tôi sẽ bỏ phiếu cho câu trả lời của Janne nếu tôi có đại diện.

Lưu ý quan trọng về Nagios, thực tế là nó hoàn toàn không có nghĩa là nó là một bản cài đặt khó và dài, Nó khá đơn giản và thân thiện.

Điều thứ hai, bạn thực sự nên kiểm tra những gì nhà cung cấp phần cứng của bạn cung cấp. Ví dụ: tôi đang sử dụng HP Proliants và chúng có trợ giúp rất tốt.


0

Nếu bạn thích những gì Nagios làm, nhưng không muốn đi sâu vào nội bộ, bạn cũng có thể xem Opsview . Đó là Nagios và một vài công cụ khác, nhưng được phân phối thông qua một GUI đẹp. Đó là một điểm khởi đầu khá tốt.


0

Tôi đồng ý rằng Nagios là một phần mềm tuyệt vời nhưng nếu bạn muốn có một phần mềm miễn phí, tôi khuyên bạn nên xem qua AppPerinf Agentless Monitor . Giám sát máy chủ Linux với AppPerinf cực kỳ nhẹ và thêm chi phí không đáng kể cho hệ thống đích trong khi giám sát. Bạn có thể theo dõi tất cả các số liệu thống kê quan trọng liên quan đến CPU, đĩa, mạng và bộ nhớ bằng công cụ này. Thiết lập rất đơn giản và phần mềm rất dễ sử dụng. Một tài liệu và hướng dẫn rõ ràng cũng có sẵn ở đây để theo dõi máy chủ Linux


0

Một giải pháp tôi đã sử dụng là lãnh sự của HashiCorp .

Nó chắc chắn không chỉ là một tập lệnh đơn giản với đầu ra email, nhưng thiết lập loại giám sát mà bạn đang nói đến vẫn rất dễ dàng (một vài dòng YAML hoặc JSON).

Bạn rất có thể sẽ tạo một mẫu, nhưng việc giám sát một máy chủ có thể được thực hiện như sau:

{
  "service": {
    "name": "web", 
    "tags": ["production"], 
    "port": 80,
    "check": {
      "id": "front-end",
      "name": "HTTP front-end for web service",
      "http": "http://web.domain.tld",
      "interval": "10s",
      "timeout": "1s"
    }
  }
}

Một lý do để gợi ý rằng nó cho phép bạn vượt ra ngoài việc giám sát 'chỉ' giao diện web nếu bạn muốn và cũng cho phép bạn nhóm kiểm tra theo dịch vụ (ví dụ: report_serverdịch vụ của bạn có thể kiểm tra mặt trước web- end, một cho back-end web và một cho DB chính, tất cả đều cung cấp các cảnh báo gắn liền với dịch vụ này).

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.