2017-01-12 2 views
0

背景logrotateの、のsyslog-ngのと緩みログ

  1. Apacheサーバマシン上で実行されていると/var/log/httpd/error_log
  2. にログを生成しますkafka producerによって消費され、トピックに送信されます
  3. logrotateは、毎時/var/log/httpd/error_logを返します。

設定

の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 

このJavaプログラムは

を本質的kafka-producerで、カフカのクラスタにデータを送信問題

/var/log/httpd/error_logからcopytruncatesyslog-ngデータ読み出しを開始logrotateの間に、いくつかのデータは、このファイルに送信されますsyslog-ngによってキャプチャされないため、kafka-cluster

にプッシュされません。

logrotateによって定期的にローテーションされているファイルからログを連続的に読み取るには、正常な方法はありますか?

答えて

0

ログのローテーション時にlogrotate reload syslog-ngを実行しますか?それがなければ、syslog-ngはファイルの切り詰めをより遅く知る。

関連する問題