Làm cách nào tôi có thể nhận nhật ký nhật ký hệ thống từ hệ thống nối mạng?


23

Tôi muốn định cấu hình Ubuntu để nhận nhật ký từ bộ định tuyến DD-WRT. Màn hình cấu hình của bộ định tuyến chứa phần sau:

Nhật ký hệ thống DD-WRT

tài liệu đăng nhập của nó đọc:

Nếu bạn muốn gửi nhật ký đến một hệ thống từ xa, hãy nhập địa chỉ IP của máy đó cũng đang chạy tiện ích nhật ký hệ thống (nó cần một ổ cắm mạng mở để chấp nhận nhật ký được gửi bởi bộ định tuyến).

Tôi chưa bao giờ (cố ý) sử dụng syslog trước đây. Tôi cần làm gì trong Ubuntu để cho phép nó nhận các bản ghi này?


Motorola Surfboard Extreme SBG901 của tôi dường như có các cài đặt tương tự như DD-WRT của bạn. Chỉ cần nghĩ rằng tôi sẽ thêm từ khóa đó cho những người khác googling cho q / a này.
hobs

Câu trả lời:


23

Máy chủ nhận nhật ký sẽ cần chạy một số trình nền syslog được cấu hình để nghe nhật ký từ xa. Có một số triển khai nhật ký hệ thống trong Ubuntu, nhưng rsyslogthường được khuyến nghị và nên được cài đặt theo mặc định. Tôi không thể biết tài liệu trong liên kết bạn đã đăng nếu DD-WRT đang gửi nhật ký qua TCP hoặc UDP, do đó, có thể cần một số thử nghiệm để tìm chính xác các cài đặt chính xác, nếu bạn lo lắng về việc giảm số lượng truy cập mạng cổng trên máy chủ của bạn.

Có hai cách để kích hoạt tính năng này: cách thứ nhất đơn giản hơn, nhưng có thể yêu cầu tích hợp lại khi hệ thống được nâng cấp. Thứ hai là phức tạp hơn một chút và có thể gây ra kết quả khó hiểu nếu có những thay đổi đáng kể đối với cấu hình nhật ký hệ thống như là một phần của bản cập nhật. Tôi sẽ chọn cái thứ hai, nhưng sở thích của bạn có thể thay đổi.

Đầu tiên là chỉnh sửa /etc/rsyslogd.confvà xóa chữ cái đầu tiên #khỏi các dòng sau:

# $ ModLoad imudp
# $ UDPServerRun 514

hoặc là

# $ ModLoad imtcp
# $ InputTCPServerRun 514

Thứ hai là để tạo ra một tập tin mới, có lẽ tên local-enable-tcp.conftrong /etc/rsyslog.d/, với các nội dung sau:

# cho phép nhận syslog TCP
$ ModLoad imtcp
$ InputTCPServerRun 514

Nếu bạn muốn sử dụng cách tiếp cận tệp riêng biệt và cần UDP, hãy thay đổi nội dung để khớp với khổ thơ UDP ở trên. Tên tệp cụ thể không quan trọng, nhưng nên bắt đầu bằng "local-" vì không gian tên này được dành riêng cho cấu hình quản trị viên cục bộ và phải kết thúc bằng ".conf", vì chỉ các tệp kết thúc như thế này mới được tự động đưa vào cấu hình rsyslog.

Nếu bạn muốn sử dụng một triển khai nhật ký hệ thống khác, hãy kiểm tra cấu hình và tài liệu cho việc triển khai đó: có khả năng trình nền syslog được cấu hình không nghe trên mạng theo mặc định, nhưng cấu hình ví dụ để cho phép trường hợp phổ biến này phải được ghi lại rõ ràng.


1
Nên bắt đầu tên của tệp với số có hai chữ số, thiết lập thứ tự liên quan đến các tệp .conf hiện có khác.
enzotib

Heh, cũng có thể phức tạp. Không có lý do gì mà tên gói không thể bắt đầu bằng số có hai chữ số và .d / $ {gói} - .conf đều được dành riêng cho các gói (mặc dù một tên không có khả năng xảy ra xung đột, ví dụ 72-local-myconf.conf ). Thứ hai, điều quan trọng là cố gắng ghi các tệp cấu hình sao cho thứ tự không quan trọng. Ví dụ: tệp cấu hình được cung cấp bởi 0access.conf từ gói "0access" giả định sẽ được áp dụng trước hầu hết các tệp cấu hình bắt đầu bằng số có hai chữ số.
Emmet Hikory

1
Cũng có thể cần thay đổi quyền sở hữu tệp nhật ký của bạn: sudo chown syslog:adm /var/log/sysloghoặc bất cứ điều gì bạn đã đặt tên cho tệp nhật ký của mình.
hobs

6

Một tùy chọn khác là sử dụng syslog-ng, dễ sử dụng và cho đến nay đã sẵn sàng để sử dụng!

sudo apt-get install syslog-ng

Sau khi cài đặt nó, chúng tôi có một tệp conf trong /etc/syslog-ng/syslog-ng.conf Vì vậy, chỉ cần chỉnh sửa tệp này. bạn muốn điều chỉnh một số thông số

sudo mv /etc/syslog-ng/syslog-ng.conf /etc/syslog-ng/syslog-ng.conf.bak

Bây giờ tạo tập tin cấu hình mới và chỉnh sửa nó!

sudo touch /etc/syslog-ng/syslog-ng.conf
sudo nano /etc/syslog-ng/syslog-ng.conf

Vì vậy, chỉ cần dán cấu hình cơ bản này để làm việc là tốt:

# Listening to incoming UDP Syslog connections
source mysource { udp(); };

#Add the syslog targets:

destination dest { file("/var/log/Cisco$YEAR$MONTH$R_DAY.log"); };
#destination dest_other_server { udp("1.2.3.4" port(514)); };
#Create the filters that will be used to determine what to do with the received syslog message

#filter filter { ( host("2.3.4.5") and level(notice) and match("username=.*@domain\.local" value("MESSAGE") flags("utf8" "ignore-case")) ); };
filter myfilter { ( level(notice) ); };
#And putting it all together:

log { source(mysource); filter(myfilter); destination(dest);  };

Dễ dàng như bạn có thể thấy. Bảo trọng!


-2

Về cơ bản, bạn chạy một daemon (được gọi là syslogd) trên máy chủ của bạn cho bộ định tuyến dd-wrt để đăng nhật ký.

Hướng dẫn- http://www.techiecorner.com/1479/how-to-setup-syslog-server-in-ub Ubuntu /


5
Tránh đăng địa chỉ của một hướng dẫn cũ, thậm chí không kiểm tra xem hướng dẫn của họ có còn hiệu lực hay không. Các tập tin có tên trong hướng dẫn không tồn tại nữa. Ubuntu sử dụng rsyslog.
enzotib

@enzotib - Mặc dù tôi đồng ý rằng nó thiếu chất lượng và nên tránh các liên kết, nhưng hóa ra câu trả lời này cung cấp chính xác những gì tôi cần để đạt được nhiệm vụ tương tự trên máy chủ Ubuntu 8.04. Có ba câu trả lời ở đây, tất cả cho ba biến thể syslog khác nhau vẫn đang được sử dụng trong các hệ thống sản xuất . Câu trả lời này rất hữu ích. Nó được +1 từ tôi.
ghoti

Đó là sự thật nhưng về cơ bản đây chỉ là một câu trả lời liên kết.
Duncan X Simpson
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.