0
배경logrotate에, 시스템 로그 - NG와 잃어버린 로그
-
결국
- 이 될 것입니다 포트에 로그를 보낼
syslog-ng
를 사용/var/log/httpd/error_log
- 에 기계와 생산 로그에서 실행
- 아파치 서버 섭외 :
kafka producer
주제로 보내기 logrotate
매주/var/log/httpd/error_log
5140
설정
의 syslog-ng.conf
options {
flush_lines (0);
time_reopen (10);
log_fifo_size (1000);
long_hostnames (off);
use_dns (no);
use_fqdn (no);
create_dirs (no);
keep_hostname (no);
};
source s_apache2 {
file("/var/log/httpd/error_log" flags(no-parse));
}
destination loghost {
tcp("*.*.*.*" port(5140) template("$MSG\n"));
}
logrotate.hourly.conf
/var/log/httpd/error_log {
copytruncate
rotate 4
dateext
missingok
ifempty
.
.
.
}
로그인 소비
nc -k -l 5140 | grep "STATS:" | java program
이 자바 프로그램은 본질적으로 kafka-producer
하고 /var/log/httpd/error_log
에서 logrotate
시작 copytruncate
및 syslog-ng
데이터를 읽는 사이
문제
는 일부 데이터가이 파일로 전송됩니다 카프카 클러스터에 데이터를 전송 syslog-ng
에 포착되지 않으므로 kafka-cluster
주기적으로 logrotate
으로 회전 된 파일에서 로그를 계속 읽는 것이 정상적인 방법입니까?