2012-04-15 24 views
9

Tôi đang sử dụng logback để cập nhật syslog, đây là làm thế nào tôi cấu hình appender tôi:Đang cố gắng để vấn đề debug với logback syslog appender không cập nhật syslog

<appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender"> 
     <syslogHost>localhost</syslogHost> 
     <facility>LOCAL0</facility> 
     <suffixPattern>[%thread] %logger %msg</suffixPattern> 
    </appender> 

tôi cập nhật rsyslog.conf để nghe cho các sự kiện UDP, uncomment sự các dòng bên dưới:

# Provides UDP syslog reception 
$ModLoad imudp.so 
$UDPServerRun 514 

Trình nền syslog được khởi động lại sau khi thay đổi.

Trên tất cả các hộp kiểm tra của tôi, có vẻ như nó hoạt động tốt! Tuy nhiên, một trong syslog hệ thống không được cập nhật bởi quá trình của tôi (Những thứ khác đang cập nhật nó tốt), tôi tự hỏi làm thế nào tôi có thể đi về gỡ lỗi vấn đề này? Bất cứ điều gì tôi nên nhìn vào đó đến với tâm trí?

Cảm ơn mọi ý tưởng

Trả lời

25

Chắc chắn. Theo thứ tự lẻ, hãy thử 4 thử nghiệm sau:

1. Kiểm tra logback: Trình bổ sung rõ ràng: thêm FileAppender làm ứng dụng thứ hai và đảm bảo sự kiện xuất hiện ở đó. Bài đăng của bạn ngụ ý rằng "nó" hoạt động trong dev nhưng tôi không chắc chắn liệu đó có phải là logback hay appender hay không và đoạn mã cấu hình không có phần appender-ref để gửi sự kiện đến SYSLOG.

Nếu FileAppender của bạn không nhận được gì, đó là sự cố ứng dụng/môi trường hoặc máy chủ này không tạo sự kiện cho người dùng.

2. điệp Xác nhận đang được tạo: Giả sử các FileAppender nhận thông điệp nhưng syslog không, hãy chạy:

tcpdump -n -i lo -X -s 1500

.. để sản xuất các tải trọng toàn bộ các gói tin UDP trên lo. Làm cho ứng dụng của bạn tạo một thông điệp tường trình. Bạn sẽ thấy ít nhất 1 gói được gửi đến 127.0.0.1:514. Nếu bạn không, đó là người gửi. Nếu bạn làm, đó là cấu hình rsyslog.

3. Xác nhận rsyslog đó là ràng buộc để cổng 514:

lsof -i :514

hoặc nếu bạn không có lsof và tôi chắc chắn rằng quá trình khác không bị ràng buộc để 514:

netstat -ln | grep 514 

4. Xem rsyslog nhận được: Nếu sự kiện đang được gửi đến cổng 514, sau khi dừng rsyslogd trực tiếp, hãy khởi động lại nó ở chế độ gỡ lỗi và được gắn với thiết bị đầu cuối:

/etc/init.d/rsyslog stop 
rsyslogd -d 

Bạn sẽ thấy các sự kiện đến. Nếu không ai trong số những người xác định được vấn đề, nó là một cái gì đó cách ra khỏi con đường bị đánh đập. Tôi đã có một hoạt động logback config trên môi trường J2EE và syslog đã biết. Hy vọng rằng một trong những điều trên sẽ làm điều đó, mặc dù.

+0

Câu trả lời hay và cảm ơn! Có vẻ như nguyên nhân của vấn đề là một quá trình khác bị ràng buộc vào năm 514, nó hoạt động tốt khi tôi đã sửa chữa nó. – Hoofamon

+0

Câu trả lời hay! Giúp tôi rất nhiều - cảm ơn! –

+0

Có! Cảm ơn bạn - hướng dẫn tuyệt vời. – borodark

Các vấn đề liên quan