Điểm:0

syslog-ng/telegraf: EOF xảy ra khi không hoạt động - không tương thích?

lá cờ al

Đây là một câu hỏi tiếp theo từ này câu hỏi trước, được tạo bởi vì tôi đã tìm hiểu thêm thông tin và việc đặt câu hỏi này thành một câu hỏi mới sẽ dễ dàng hơn.

Tôi đang sử dụng syslog-ng OSE v3.31.2 để nhận các thông báo nhật ký hệ thống RFC3164 qua cổng UDP 514 từ một loạt máy khách và ghi chúng vào cả hai tệp, đồng thời chuyển tiếp chúng tới telegraf qua cổng TCP 601 RFC5424 không phải TLS để chèn vào một Cơ sở dữ liệu InfluxDB.

Cấu hình syslog-ng của tôi là:

phiên bản @: 3.29
@bao gồm "scl.conf"

tùy chọn {
    flush-lines(1);
};
    
nguồn s_mạng {
    udp(ip(0.0.0.0) cổng(514));
};

đích d_file {
    tệp ("/var/log/tin nhắn");
};
    
điểm đến d_telegraf {
    nhật ký hệ thống (cổng "telegraf" (601) vận chuyển (tcp));
};
    
nhật ký {
    nguồn(s_mạng);
    điểm đến (d_telegraf);
    đích (d_file);
};

Phần có liên quan trong cấu hình telegraf của tôi trông như thế này:

[global_tags]

[đại lý]
  khoảng thời gian = "100ms"
  round_interval = true
  metric_buffer_limit = 10000
  flush_buffer_when_full = true
  bộ sưu tập_jitter = "0s"
  flush_interval = "100ms"
  flush_jitter = "0s"
  gỡ lỗi = đúng
  im lặng = sai

[[đầu ra.influxdb]]
  url = ["http://influxdb:8086"]
  cơ sở dữ liệu = "log_db"

[[inputs.syslog]]
  máy chủ = "tcp://telegraf:601"

Về cơ bản, syslog-ng được thiết lập để chuyển tiếp các mục nhật ký hệ thống qua kết nối TCP tới telegraf.

Vấn đề là tôi thấy syslog-ng thường xuyên bị ngắt kết nối TCP khỏi telegraf. Chúng hiển thị trong nhật ký syslog-ng dưới dạng:

[2021-11-17T02:55:32.662972] EOF xảy ra khi không hoạt động; fd='12'
[2021-11-17T02:55:32.663102] Đã đóng kết nối nhật ký hệ thống; fd='12', server='AF_INET(192.168.0.6:601)', time_reopen='60'
[2021-11-17T02:56:32.719139] Đã thiết lập kết nối nhật ký hệ thống; fd='12', server='AF_INET(192.168.0.6:601)', local='AF_INET(0.0.0.0:0)'

Việc ngắt kết nối này thường được kích hoạt khi tôi gửi nhật ký tới syslog-ng với:

logger -i -d --server kiểm tra máy chủ cục bộ

Nhưng nếu tôi để nó không hoạt động, tôi cũng sẽ nhận được:

[2021-11-17T02:57:05.392356] EOF trên kênh điều khiển, đóng kết nối;

Trong những trường hợp này, 192.168.0.6 là máy chủ telegraf.

Mặc dù tôi có thể đặt tùy chọn thời gian mở lại(1) để tăng tốc độ kết nối lại, tôi muốn tìm ra nguyên nhân gốc rễ và ngăn chặn việc ngắt kết nối ngay từ đầu.

Có thể có sự không tương thích giữa syslog-ng và telegraf gây ra EOF này và ngắt kết nối không rõ ràng?

Tất cả điều này đang chạy trong ngăn xếp docker-compose trên một máy chủ duy nhất.


CHỈNH SỬA: Tôi đã bắt đầu xem xét RFC5424RFC6587. Sử dụng Wireshark để đánh hơi các gói ra khỏi syslog-ng, dành cho telegraf, tôi đã xác định rằng những gói này đang sử dụng kỹ thuật nhồi octet (hay còn gọi là tạo khung không trong suốt), thay vì đếm octet, điều mà telegraf mong đợi theo mặc định. Tải trọng của mỗi thông báo nhật ký hệ thống tới telegraf bắt đầu bằng ký tự "<" thay vì số nguyên.

Tôi đưa ra giả thuyết rằng telegraf đang chấp nhận các tin nhắn này nhưng gặp khó khăn khi phân tích cú pháp chúng và do đó đóng kết nối. FIN đầu tiên đóng kết nối đến từ telegraf.

Thật không may, khi tôi đặt telegraf chấp nhận khung không trong suốt, nó sẽ từ chối toàn bộ mục nhập và tôi vẫn chưa tìm ra lý do tại sao.

Tôi cũng chưa tìm ra cách định cấu hình syslog-ng để xuất thông báo với khung đếm octet.

Nhưng ít nhất thông báo EOF và mất kết nối đã ngừng xảy ra. Nhưng tôi không chắc điều đó có ý nghĩa nhiều nếu telegraf từ chối hoàn toàn tất cả các tin nhắn.

Điểm:0
lá cờ al

Tôi đã xác định rằng syslog-ng gửi tin nhắn được đóng khung đếm octet tới telegraf.

Nguyên nhân của sự cố này là do telegraf ngắt kết nối TCP khỏi syslog-ng sau 5 giây mà không nhận được thông báo. Điều này trái với tài liệu được cung cấp cùng với plugin nhật ký hệ thống telegraf, trong đó nêu rõ rằng thời gian chờ này chỉ áp dụng cho thời gian nhận một tin nhắn chứ không phải thời gian giữa các tin nhắn. Nó có thể là một vấn đề ngôn ngữ / giải thích tiếng Anh mặc dù. Cài đặt giờ đọc đã kết thúc đến 0 trong cấu hình telegraf là đủ để ngăn telegraf bị ngắt kết nối.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.