약 30 대의 서버가 있으며 syslog를 사용하여 모든 로그를 단일 로깅 서버로 보냅니다. 백업의 경우 모든 머신은 logrotate를 사용하여 기존 로그의 회전 및 삭제를 처리하면서 며칠 동안 로컬로 자체 로그를 저장하도록 구성됩니다.
각 응용 프로그램 서버는 작은 perl 스크립트를 실행하여 로그를 syslog로 보내고 로그 파일로 전달합니다 (아래 perl 스크립트).
그런 다음 로그 호스트에는 기본적으로 들어오는 로그를 의심스러운 것으로 확인하는 logcheck와 유사한 일부 사용자 지정 스크립트가 있습니다.
또한 모든 호스트의 모든 전자 메일을 한 곳으로 보내므로 프로그램이 그런 식으로 불만을 제기하면 모든 메시지를받습니다. 이것은 이론적으로 프로그램이 작동하고 분석 할 수있는 단일 사서함으로 이동할 수 있습니다.
다음은 로깅 펄 스크립트입니다. 그것은 프로그램의 출력을 파이프로 연결하여 작동 한 다음 출력을 syslogs하고 다시 뱉어내어 다른 곳으로 보낼 수 있습니다 (멀티 로그로 보냅니다). syslog로 이동하기 위해 -q 옵션을 제공 할 수도 있습니다.
#!/usr/bin/perl
use Sys::Syslog;
use Getopt::Long;
$SERVER_NAME = `hostname`;
chomp $SERVER_NAME;
$FACILITY = 'local0';
$PRIORITY = 'info';
GetOptions ('s=s' => \$SERVER_NAME, 'f=s' => \$FACILITY, 'p=s' => \$PRIORITY, 'q+' => \$quiet);
#print "$SERVER_NAME\n$FACILITY\n$PRIORITY\n";
#Sys::Syslog::setlogsock('unix');
openlog ($SERVER_NAME,'ndelay',$FACILITY);
if (!($quiet)) {syslog($PRIORITY,"Logging Started -- Logger version 1.1");}
$| = 1;
while (<>) {
if (!($quiet)) {print $_ unless $_ =~ /^\s+$/};
chomp;
syslog($PRIORITY,$_) if $_;
}
closelog;
$| = 0;