Nhật ký vận chuyển và tổng hợp ở quy mô


14

Bạn đang phân tích các tệp nhật ký từ các máy UNIX / Linux như thế nào? Chúng tôi chạy hàng trăm máy chủ mà tất cả đều tạo tệp nhật ký của riêng họ, trực tiếp hoặc thông qua syslog. Tôi đang tìm kiếm một giải pháp hợp lý để tổng hợp những điều này và chọn ra những sự kiện quan trọng. Vấn đề này được chia thành 3 thành phần:

1) Vận chuyển tin nhắn

Cách cổ điển là sử dụng nhật ký hệ thống để ghi thông điệp vào máy chủ từ xa. Điều này hoạt động tốt đối với các ứng dụng đăng nhập vào syslog nhưng ít hữu ích hơn cho các ứng dụng ghi vào tệp cục bộ. Các giải pháp cho vấn đề này có thể bao gồm việc đăng nhập ứng dụng vào một FIFO được kết nối với chương trình để gửi tin nhắn bằng syslog hoặc bằng cách viết một cái gì đó sẽ grep các tệp cục bộ và gửi đầu ra đến máy chủ syslog trung tâm. Tuy nhiên, nếu chúng ta gặp rắc rối với việc viết các công cụ để đưa tin nhắn vào syslog, liệu chúng ta có nên thay thế toàn bộ bằng một cái gì đó như Scribe của Facebook mang lại sự linh hoạt và độ tin cậy cao hơn syslog không?

2) Tổng hợp tin nhắn

Các mục nhật ký dường như rơi vào một trong hai loại: mỗi máy chủ lưu trữ và mỗi dịch vụ. Tin nhắn trên máy chủ là những tin nhắn xảy ra trên một máy; nghĩ rằng thất bại đĩa hoặc đăng nhập đáng ngờ. Tin nhắn trên mỗi dịch vụ xảy ra trên hầu hết hoặc tất cả các máy chủ đang chạy dịch vụ. Chẳng hạn, chúng tôi muốn biết khi nào Apache phát hiện ra lỗi SSI nhưng chúng tôi không muốn lỗi tương tự từ 100 máy. Trong tất cả các trường hợp, chúng tôi chỉ muốn xem một trong từng loại tin nhắn: chúng tôi không muốn 10 tin nhắn nói rằng cùng một đĩa bị lỗi và chúng tôi không muốn có tin nhắn mỗi khi bị hỏng SSI.

Một cách tiếp cận để giải quyết vấn đề này là tổng hợp nhiều tin nhắn cùng loại thành một trên mỗi máy chủ, gửi tin nhắn đến một máy chủ trung tâm và sau đó tổng hợp các tin nhắn cùng loại thành một sự kiện tổng thể. SER có thể làm điều này nhưng thật khó sử dụng. Ngay cả sau vài ngày loay hoay, tôi chỉ có các tập hợp thô sơ hoạt động và phải liên tục tra cứu các logic sử dụng SER để tương quan các sự kiện. Đó là thứ mạnh mẽ nhưng phức tạp: Tôi cần thứ gì đó mà đồng nghiệp của tôi có thể nhặt và sử dụng trong thời gian ngắn nhất. Quy tắc SER không đáp ứng yêu cầu đó.

3) Tạo cảnh báo

Làm thế nào để chúng ta nói với quản trị viên của chúng tôi khi một cái gì đó thú vị xảy ra? Gửi hộp thư đến nhóm? Tiêm vào Nagios?

Vì vậy, làm thế nào bạn giải quyết vấn đề này? Tôi không mong đợi một câu trả lời trên một tấm; Tôi có thể tự mình tìm ra các chi tiết nhưng một số cuộc thảo luận cấp cao về những gì chắc chắn là một vấn đề phổ biến sẽ là tuyệt vời. Hiện tại chúng tôi đang sử dụng một mớ hỗn độn các công việc định kỳ, nhật ký hệ thống và ai biết những gì khác để tìm sự kiện. Điều này không thể mở rộng, duy trì hoặc linh hoạt và vì vậy chúng tôi bỏ lỡ rất nhiều thứ chúng ta không nên.

Đã cập nhật: chúng tôi đã sử dụng Nagios để theo dõi, điều này rất tốt cho việc phát hiện các máy chủ / dịch vụ thử nghiệm / vv nhưng ít hữu ích hơn trong việc loại bỏ các tệp nhật ký. Tôi biết có các plugin đăng nhập cho Nagios nhưng tôi quan tâm đến thứ gì đó có khả năng mở rộng và phân cấp hơn so với cảnh báo trên mỗi máy chủ.


Câu trả lời:


5

Tôi đã sử dụng ba hệ thống khác nhau để tập trung hóa nhật ký:

  1. Syslog / syslog-ng chuyển tiếp đến một máy chủ
  2. Zenoss để tổng hợp và cảnh báo các sự kiện
  3. Splunk để tổng hợp nhật ký và tìm kiếm

Đối với # 3, tôi thường sử dụng syslog-ng để chuyển tiếp các tin nhắn từ mỗi máy chủ trực tiếp vào splunk. Nó cũng có thể phân tích cú pháp các tệp nhật ký trực tiếp, nhưng điều đó có thể là một chút đau đớn.

Splunk là khá tuyệt vời để tìm kiếm và phân loại nhật ký của bạn. Tôi đã không sử dụng splunk để cảnh báo nhật ký, nhưng tôi nghĩ rằng nó có thể.


+1 cho Splunk. Bạn có thể có Splunk kích hoạt các tập lệnh bên ngoài khi phát hiện một số sự kiện; hoặc gửi thư hoặc bẫy SNMP.
Murali Suriar

2

Bạn có thể xem OSSEC, một HIDS mã nguồn mở hoàn chỉnh, nó phân tích nhật ký & có thể kích hoạt các hành động hoặc gửi thư về cảnh báo. Cảnh báo được điều chỉnh bởi một tập hợp các quy tắc dựa trên XML đơn giản, rất nhiều quy tắc được xác định trước cho các định dạng nhật ký khác nhau được bao gồm và bạn có thể thêm các quy tắc của riêng mình

http://www.ossec.net/


1

Hãy nhìn vào Octopussy . Nó hoàn toàn tùy biến và dường như đáp ứng tất cả nhu cầu của bạn ...

PS: Tôi là nhà phát triển giải pháp này.


1
Tôi sẽ không muốn mạo hiểm triển khai hoặc thậm chí giới thiệu một sản phẩm có "âm hộ" trong tên. Điều đó có lẽ sẽ không phù hợp với hầu hết các công ty, đặc biệt nếu có phụ nữ làm việc trong CNTT (khá phổ biến ngày nay).
Sao biển

0

Bạn cần xem xét một hệ thống giám sát, ví dụ Zenoss Core . Trong số những thứ khác, nó nói trên trang giới thiệu:

Quản lý và giám sát sự kiện Zenoss cung cấp khả năng tổng hợp thông tin nhật ký và sự kiện từ nhiều nguồn khác nhau bao gồm giám sát tính khả dụng, giám sát hiệu suất, nguồn syslog , nguồn bẫy SNMP, nhật ký sự kiện Windows.

Xem what-tool-do-you-use-to-Monitor-your-server .


Tôi đã không nhận ra Zenoss có các tính năng tổng hợp nhật ký. Tôi sẽ xem xét - cảm ơn.
markdrayton
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.