আমি প্রায় 30 সার্ভার পেয়েছি এবং আমি সমস্ত লগ একক লগিং সার্ভারে প্রেরণে সরাসরি স্ট্রেস আপ ব্যবহার করি। ব্যাকআপের জন্য, সমস্ত মেশিন পুরানো লগগুলির আবর্তন এবং মোছার যত্ন নিতে লোগ্রোটেট ব্যবহার করে স্থানীয়ভাবে কিছু দিন তাদের নিজস্ব লগগুলি সংরক্ষণ করার জন্য কনফিগার করা হয়।
আমার প্রতিটি অ্যাপ্লিকেশন সার্ভার তাদের লগগুলি সিসলগে প্রেরণের জন্য একটি ছোট পার্ল স্ক্রিপ্ট চালায় যা পরে লঘস্টে (নীচে পার্ল স্ক্রিপ্ট) দিকে এগিয়ে যায়।
তারপরে লঘস্টে আমাদের কাছে কিছু কাস্টম স্ক্রিপ্ট রয়েছে যা লগ চেকের অনুরূপ যা মূলত সন্দেহজনক কোনও কিছুর জন্য আগত লগগুলি দেখে watch
আমাদের কাছে প্রতিটি হোস্টের সমস্ত ইমেল এক জায়গায় চলেছে, যাতে কোনও প্রোগ্রাম যদি সেভাবে অভিযোগ করে তবে আমরা সমস্ত বার্তা পাই। এটি তাত্ত্বিকভাবে কোনও একক মেলবক্সে যেতে পারে যা কোনও প্রোগ্রামে কাজ করতে পারে এবং বিশ্লেষণ করতে পারে।
এখানে আমার লগিং পার্ল স্ক্রিপ্ট। এটি এতে প্রোগ্রামের আউটপুটটি পাইপ করে কাজ করে এবং তারপরে এটি আউটপুটটিকে সিসলোগ করে এবং পিছনে পিছনে থুতু দেয় যাতে আপনি এটি অন্য কোথাও প্রেরণ করতে পারেন (আমি মাল্টলগে প্রেরণ করি)। আপনি কেবল সিসলগে যাওয়ার জন্য -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;