না থাকলে লগ ফাইল তৈরি করতে আরএসএসলগকে কীভাবে বলবেন?


12

আরএসস্লগ দ্বারা ডিফল্ট আচরণ হ'ল বিদ্যমান লগ ফাইলের ট্রেস যুক্ত করা ।

এখন, আমি (সেন্টোস, বৈজ্ঞানিক লিনাক্স) দেখেছি যে আরএসস্লগ ইতিমধ্যে চালু থাকলে আপনি লগ ফাইলটি মুছে ফেলেন (যেমন আপনার অ্যাপ্লিকেশন থেকে লগকে উত্সর্গীকৃত)) আপনি নিজের অ্যাপ্লিকেশনটি চালান, আরএসল্লগ কোনও লগ ফাইল তৈরি করবে না এবং কোন ট্রেস রেকর্ড করা হবে না।

এমন কোনও কনফিগার বিকল্প আছে যা আরএসস্লগকে ট্রেস যুক্ত করার আগে যদি লগ ফাইল তৈরি না করে বলতে পারে?

দ্রষ্টব্য : একটি service rsyslog restartউইল করা খালি লগ ফাইল তৈরি করতে বাধ্য করবে।

rsyslog.conf ( এটিতে কিছুই যুক্ত হয়নি)

# rsyslog v5 configuration file

# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html

#### MODULES ####

$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog   # provides kernel logging support (previously done by rklogd)
#$ModLoad immark  # provides --MARK-- message capability

$SystemLogRateLimitInterval 1
$SystemLogRateLimitBurst 50000

# Provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514

# Provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514


#### GLOBAL DIRECTIVES ####

# Use default timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

# File syncing capability is disabled by default. This feature is usually not required,
# not useful and an extreme performance hit
#$ActionFileEnableSync on

# Include all config files in /etc/rsyslog.d/
$IncludeConfig /etc/rsyslog.d/*.conf


#### RULES ####

# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*                                                 /dev/console

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none;local1.none    /var/log/messages

# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure

# Log all the mail messages in one place.
mail.*                                                  -/var/log/maillog


# Log cron stuff
cron.*                                                  /var/log/cron

# Everybody gets emergency messages
*.emerg                                                 *

# Save news errors of level crit and higher in a special file.
uucp,news.crit                                          /var/log/spooler

# Save boot messages also to boot.log
local7.*                                                /var/log/boot.log

# ### begin forwarding rule ###
# The statement between the begin ... end define a SINGLE forwarding
# rule. They belong together, do NOT split them. If you create multiple
# forwarding rules, duplicate the whole block!
# Remote Logging (we use TCP for reliable delivery)
#
# An on-disk queue is created for this action. If the remote host is
# down, messages are spooled to disk and sent when it is up again.
#$WorkDirectory /var/lib/rsyslog # where to place spool files
#$ActionQueueFileName fwdRule1 # unique name prefix for spool files
#$ActionQueueMaxDiskSpace 1g   # 1gb space limit (use as much as possible)
#$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
#$ActionQueueType LinkedList   # run asynchronously
#$ActionResumeRetryCount -1    # infinite retries if host is down
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
#*.* @@remote-host:514
# ### end of the forwarding rule ###

আপনি কি আপনার .conf ফাইলটি ভাগ করতে পারেন?
slm

উত্তর:


10

আরএসস্লগের পিওভি থেকে, মুছে ফেলা লগ ফাইলটি এখনও বিদ্যমান। এর কারণ হল যে rsyslog ফাইল নাম লিখছে না, এটি লগ ফাইলের জন্য খোলা ফাইল হ্যান্ডেলটিতে লিখছে।

ইউনিক্স সিস্টেমগুলি ফাইলটি ওপেন হ্যান্ডলগুলি সহ কোনও প্রক্রিয়া না হওয়া পর্যন্ত আসলে কোনও ফাইল মুছবে না। এর অর্থ হ'ল মুছে ফেলা ফাইলের দ্বারা ব্যবহৃত ডিস্কের স্থানটি কোনও এবং সমস্ত খোলা ফাইল-হ্যান্ডলগুলি বন্ধ না হওয়া পর্যন্ত মুক্ত করা হয় না। এর অর্থ হ'ল মোছা ফাইলে ওপেন ফাইল হ্যান্ডলগুলি সহ যে কোনও প্রক্রিয়া ফাইল থেকে এবং / অথবা লেখা পড়া চালিয়ে যেতে পারে।

আরএসএসলগকে এইচপি সংকেত (উদাহরণস্বরূপ pkill -HUP rsyslogবা এর মাধ্যমে /etc/init.d/rsyslog rotate) প্রেরণ এটিকে তার সমস্ত খোলা ফাইল বন্ধ করতে, তার কনফিগারেশন ফাইলটি পুনরায় লোড করতে এবং সমস্ত লগ ফাইলগুলি লেখার জন্য পুনরায় খুলতে (প্রয়োজনে সেগুলি তৈরি করার জন্য) বলে।

আরএসআলগ্ড পুনরায় চালু করাও কাজ করে।

মনে রাখবেন যে এটি একটি বৈশিষ্ট্য, কোনও বাগ নয়, কিছু কার্যকর জড়িত রয়েছে - উদাহরণস্বরূপ, আরএসস্লগ একটি একই লগ ফাইলটি ঘোরার পরেও (যেমন নাম পরিবর্তন / এমভি-এডি) রাইস রাখে যতক্ষণ না আরএসএসলগ এইচপি সংকেত প্রাপ্ত করে। এর অর্থ হ'ল লগ-প্রসেসিং স্ক্রিপ্টস এবং ইউটিলিটিগুলির সময় সম্পর্কে সতর্কতার সাথে সতর্কতা অবলম্বন করা উচিত নয় - তারা কেবল সমস্ত লগ ঘোরানো যায়, আরএসএসলগকে একটি এইচইউপি পাঠাতে পারে এবং লগ ডেটার কোনও ক্ষতি ছাড়াই সব কাজ চালিয়ে যেতে পারে।

বিটিডাব্লু, আরএসস্লগের সাথে এটি না হওয়ার একমাত্র উপায় হ'ল যদি বন্ধ হয়ে যায় এবং প্রতিটি লেখার (বা কমপক্ষে ডাকা হয় sync()) প্রতিটি লগ ফাইল পুনরায় খোলা হয় । পারফরম্যান্স অস্বাভাবিক হবে।


আপনি কি জানেন যে ক্রেস্ট-এইচইপআপ থেকে আরএসস্লগ এটি কোনও নতুন ফাইলে লেখা শুরু করতে ট্রিগার করবে?
slm

আপনার অর্থ, যদি আরএসল্লগ.কোনফ পরিবর্তিত হয়ে থাকে এবং একটি নতুন লগ ফাইল সংজ্ঞায়িত হয়? হ্যাঁ, এটি অবশ্যই একটি এইচইউপি পাওয়ার জন্য নতুন ফাইলটি তৈরি এবং লিখতে শুরু করবে ... এটি কনফিগারেশনটি পুনরায় লোড করার পয়েন্টের অংশ।
কেস

ঠিক আছে, আমি আমার 3 য় পদ্ধতিতে এটি পরামর্শ দিয়েছি, ধন্যবাদ!
slm

সমস্যাটি হল আরএসস্লগ চলছে, আপনি একটি অ্যাপ্লিকেশন লগ ফাইলটি মুছে ফেলুন (আরএসএসলগ পুনরায় আরম্ভ না করে) এবং এরপরে আর কোনও ট্রেস লগ করা হবে না কারণ
আরএসস্লগ

1
যেমনটি আমি বলেছি, আরএসস্লগের পিওভি থেকে, ফাইল হ্যান্ডেলটি এখনও বিদ্যমান। এটা করবে না না বন্ধ না হওয়া পর্যন্ত আপনি এটি পুনরায় চালু করলে এটা বা hup সংকেত তা জানাও পুনরায় খুলুন / পুনরায় তৈরি লগ ফাইল এবং। আরএসল্লগ যা করতে বলবে তাই করে। আরও গুরুত্বপূর্ণ বিষয়, সমস্যাটি আরএসল্লগ কী করে তা নয়, তবে আরএসস্লগের আচরণ এবং এটি কেন এমন আচরণ করে তা বোঝার ক্ষেত্রে।
কাস

3

$ FileCreateMode

এই বিকল্পটি আপনি যা চান তা করেন না, C ফাইলক্রিটমোড ?

উদ্ধৃতাংশ

$FileCreateMode 0600

This sample lets rsyslog create files with read and write access only for the 
users it runs under.

The following sample is deemed to be a complete rsyslog.conf:

$umask 0000 # make sure nothing interferes with the following definitions
*.* /var/log/file-with-0644-default
$FileCreateMode 0600
*.* /var/log/file-with-0600
$FileCreateMode 0644

*.* /var/log/file-with-0644

ফাইল আউটপুট মডিউল

আরএসস্লগ ডকুমেন্টেশন অনুসারে ফাইল আউটপুট মডিউলটির ফাইল যুক্তি এটি করতে ব্যবহৃত হতে পারে।

উদ্ধৃত ওমফাইল মডিউল

ফাইল

যদি ফাইলটি ইতিমধ্যে বিদ্যমান থাকে তবে নতুন ডেটা এতে যুক্ত করা হয়। বিদ্যমান ডেটা কাটা হয়নি। ফাইলটি ইতিমধ্যে বিদ্যমান না থাকলে এটি তৈরি করা হয়। যতক্ষণ না RSSyslogd সক্রিয় থাকে ততক্ষণ ফাইলগুলি খোলা রাখা হয়। বাহ্যিক লগ ফাইলের ঘূর্ণনের সাথে এই দ্বন্দ্ব। ঘোরার পরে কোনও ফাইল বন্ধ করার জন্য, ফাইলটি ঘোরার পরে rsyslogd একটি HUP সিগন্যাল প্রেরণ করুন।

সিসলগকে একটি এইচপি সংকেত প্রেরণ করুন

আমি মনে করি এটি করার জন্য আপনাকে শেষ পর্যন্ত "ট্রিগার" আরএসল্লগের দরকার। আপনি স্বয়ংক্রিয়ভাবে যা চান তা তা করবে বলে আমি মনে করি না। সুতরাং আপনি এটিকে মুছে ফেলার পরে লগ ফাইলটি পুনরায় তৈরি করতে ট্রিগার করতে এইচপি সংকেত দিতে পারেন।

$ sudo pkill -HUP rsyslog

এটি করা আমার /var/log/messagesলগ ফাইলে নিম্নলিখিত বার্তাগুলি তৈরি করেছে :

Sep 26 15:16:17 grinchy rsyslogd: [origin software="rsyslogd" swVersion="4.6.3" x-pid="1245" x-info="http://www.rsyslog.com"] rsyslogd was HUPed, type 'lightweight'.
Sep 26 15:16:44 grinchy rsyslogd: [origin software="rsyslogd" swVersion="4.6.3" x-pid="1245" x-info="http://www.rsyslog.com"] rsyslogd was HUPed, type 'lightweight'.

না, আমি এটি ফাইলের অনুমতি সেট করতে ব্যবহার করেছি এবং এটি দুর্দান্ত কাজ করে। সমস্যাটি হ'ল যদি লগ ফাইলটি সরিয়ে ফেলা হয়, সিসলগ লগিংয়ের আগে এটি তৈরি করার চেষ্টা করবে না।
fduff

এটি মুছে ফেলা হয়েছে, এবং সার্ভারটি পুনরায় চালু করা হয়নি?
slm

ঠিক। আমি কিছু পরীক্ষা নিচ্ছি এবং আমি এই বিশেষত্বটি
পেলাম

@fduff - আমার আপডেট দেখুন, 3 য় বার চেষ্টা করুন!
slm
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.