Làm thế nào bạn thực hiện quản lý nhật ký trên máy chủ của bạn?


13

Tôi đang cố gắng tìm hiểu làm thế nào những người khác thực hiện các hệ thống quản lý nhật ký của họ.

Tôi có 20-30 máy chủ Linux và một vài hộp Windows (hầu hết chúng được ảo hóa). Chúng tôi sử dụng rất nhiều tập lệnh Perl và Bash để thực hiện hầu hết các công việc tự động của mình và tôi đang cố gắng chuẩn hóa việc ghi nhật ký của chúng.

Tôi đã xem log4perl và log4sh để ghi nhật ký tập lệnh và syslog-ng để lấy tất cả nhật ký trên máy chủ ghi nhật ký tập trung. Tôi cũng đã đọc về splunk, mặc dù nghe có vẻ như phiên bản doanh nghiệp khá đắt tiền và tôi có thể vượt quá giới hạn giấy phép miễn phí với tất cả các máy chủ của mình.

Tôi đã thấy các công cụ khác như swatch và logcheck, nhưng tôi không chắc chắn làm thế nào tất cả các phần này khớp với nhau ... Mọi khuyến nghị sẽ được đánh giá rất cao!


Câu trả lời:


8

Tôi đã có khoảng 30 máy chủ và tôi chỉ sử dụng syslog ngay lập tức để gửi tất cả các bản ghi đến một máy chủ ghi nhật ký. Để sao lưu, tất cả các máy cũng được cấu hình để lưu trữ nhật ký riêng của chúng cục bộ trong vài ngày, sử dụng logrotate để xử lý việc xoay và xóa nhật ký cũ.

Mỗi máy chủ ứng dụng của tôi chạy một tập lệnh perl nhỏ để gửi nhật ký của chúng tới syslog, sau đó chuyển tiếp tới loghost (tập lệnh perl bên dưới).

Sau đó, trên loghost, chúng tôi có một số tập lệnh tùy chỉnh tương tự như logcheck, về cơ bản xem các bản ghi đến cho bất kỳ điều gì đáng ngờ.

Chúng tôi cũng có tất cả các email từ mọi máy chủ lưu trữ đến một nơi, do đó, nếu bất kỳ chương trình nào phàn nàn theo cách đó, chúng tôi sẽ nhận được tất cả các tin nhắn. Về mặt lý thuyết, điều này có thể đi đến một hộp thư duy nhất mà một chương trình có thể hành động và phân tích.

Đây là kịch bản perl đăng nhập của tôi. Nó hoạt động bằng cách đưa đầu ra của chương trình vào trong đó, và sau đó nó syslog đầu ra và nhổ nó ra để bạn có thể gửi nó đi nơi khác (tôi gửi cho nhiều người). Bạn cũng có thể cung cấp cho nó tùy chọn -q để chỉ vào syslog.

#!/usr/bin/perl

use Sys::Syslog;
use Getopt::Long;

$SERVER_NAME = `hostname`;
chomp $SERVER_NAME;
$FACILITY = 'local0';
$PRIORITY = 'info';

GetOptions ('s=s' => \$SERVER_NAME, 'f=s' => \$FACILITY, 'p=s' => \$PRIORITY, 'q+' => \$quiet);

#print "$SERVER_NAME\n$FACILITY\n$PRIORITY\n";

#Sys::Syslog::setlogsock('unix');
openlog ($SERVER_NAME,'ndelay',$FACILITY);

if (!($quiet)) {syslog($PRIORITY,"Logging Started -- Logger version 1.1");}

$| = 1;

while (<>) {
    if (!($quiet)) {print $_ unless $_ =~ /^\s+$/};
    chomp;
    syslog($PRIORITY,$_) if $_;
}

closelog;

$| = 0;

Kịch bản này khá tiện dụng, nhưng với syslog trên máy khách và syslog-ng trên máy chủ (hoặc thậm chí là syslog-ng trên máy khách), bạn có thể có chức năng này với nhiều quyền kiểm soát hơn trong việc lọc nhật ký.
thepocketwade

@thepocketwade: Rất đúng. Tôi chỉ không bao giờ cần các chức năng bổ sung.
jedberg

2

Mặc dù tôi chưa triển khai nó, tôi dự định chuyển tất cả các máy tạo nhật ký của mình sang rsyslog và triển khai một máy chủ kiểu pháo đài sẽ hoạt động như người thu thập nhật ký hệ thống. Từ đó, tôi nghĩ phiên bản Splunk miễn phí có thể làm mọi thứ tôi cần để lấy thông tin.

Bây giờ chỉ để thực hiện nó ...


2

Tôi sử dụng một máy chủ syslog trung tâm. Mỗi hệ thống cạnh gửi * .debug đến loghost trung tâm. Máy chủ lưu trữ nhật ký hệ thống trung tâm chạy syslog-ng và có các quy tắc phân chia nhật ký để mỗi máy tạo các tệp riêng được đặt tên cho ngày hôm đó. Nó cũng kết xuất mọi thứ vào một tệp duy nhất, dựa vào đó tôi chạy một hậu duệ của logcheck.sh.

Mỗi ngày một lần tôi chạy một vi khuẩn nhật ký, giúp loại bỏ bất kỳ nhật ký nào cũ hơn 7 ngày và xóa mọi thứ cũ hơn 28 ngày. Giữa hai, nó cung cấp cho các bản ghi tuổi thọ dự kiến ​​là 35 ngày trên máy chủ, điều đó có nghĩa là tất cả các bản ghi sẽ thực hiện sao lưu hàng tháng, nơi chúng có thể được phục hồi trong tối đa hai năm.

Đó là lưu trữ mạnh, nhưng dường như là cách tốt nhất để đảm bảo phạm vi bảo hiểm.


Tôi đã có một hệ thống tương tự, nhưng máy chủ nhật ký của tôi có các thư mục được xác định trước (mail, auth, Catchall) mà các bản ghi được lọc. Tại một thời điểm tôi đang tìm cách sử dụng splunk. Tôi có thể chuyển tiếp dữ liệu từ máy chủ đăng nhập đến máy chủ splunk dễ dàng.
thepocketwade

1

Để đăng nhập tập trung, tôi rất muốn giới thiệu LogZilla . Chúng tôi đã sử dụng nó hơn một năm nay và hoàn toàn thích nó. Giao diện người dùng cực kỳ dễ học, sử dụng và cài đặt khiến tôi mất khoảng một giờ.

Ngay cả khi bạn không, bạn thực sự nên cố gắng thoát khỏi giám sát dựa trên tập lệnh vì đó chính xác là những gì bạn nhận được ... giám sát. Những gì bạn nên cố gắng để đạt được là Quản lý. Sửa chữa các vấn đề trên Top talkers, v.v. sẽ giảm đáng kể lượng "hỏa hoạn" được kích hoạt bởi giám sát dựa trên kịch bản. Đây là một bài viết rất tốt về quản lý nhật ký hệ thống:

http://www.cisco.com/en/US/technology/collonymous/tk869/tk769/white_apers_c11-557812.html


0

Chúng tôi sử dụng một thiết bị từ LogLogic để đăng nhập doanh nghiệp của chúng tôi. Nó dựa trên syslog, vì vậy tất cả các hộp * nix không có vấn đề gì khi sử dụng nó; có một ứng dụng nhỏ cần được cài đặt trên máy chủ windows. Tôi có thể tìm kiếm bất cứ thứ gì tôi muốn, bao gồm các truy vấn REGEX và dường như nó có thể xử lý khá nhiều tải (chỉ riêng thiết lập Active Directory của chúng tôi đã tạo ra lưu lượng truy cập không đáng kể).


1
Chỉ cần cẩn thận đánh giá sản phẩm của họ ... Tôi nhận được khoảng 10 cuộc gọi / email từ họ, họ rất kiên trì.
Ngọn lửa

Tôi nghĩ rằng điều này có thể được nói cho bất kỳ nhà cung cấp nào trong những ngày này và không liên quan đến chức năng của sản phẩm thực tế. Bạn không muốn biết tần suất DELL, EMC, v.v. đến gõ cửa / gọi điện thoại quanh đây ....
Tatas

0

Đối với máy chủ ghi nhật ký tập trung, bạn có thể xem dự án Octopussy của tôi .

Đó là rất nhiều công việc lúc đầu, nhưng sau khi bạn có thể làm rất nhiều thứ với các bản ghi này!


0

Dưới đây là một hướng dẫn mà tôi đã viết bao gồm tất cả các khía cạnh của ghi nhật ký và phân tích tập trung.

Liên kết: http://crunchtools.com/centralizing-log-files/


Tôi cũng đang xem log4sh cho một dự án mà tôi có trong nội bộ (cuối cùng sẽ mở nguồn, nhưng đang hoạt động), được gọi là scriptlog, về cơ bản bạn chạy nó trước các lệnh mà bạn quan tâm về đầu ra và nó thực hiện một số công cụ kỳ diệu như đã thêm CẢNH BÁO chuỗi hoặc chuỗi CRITICS, nó cũng có một plugin nagios để theo dõi nó. Sẽ đăng khi tôi lấy nó ra
chalinux
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.