Rsyslog লগ ঘোরার পরে রিমোট সার্ভারে ডেটা প্রেরণ বন্ধ করে দেয়


9

আমার কনফিগারেশনে, আমার কাছে rsyslog রয়েছে যিনি নিম্নলিখিত পরিবর্তনগুলির /home/user/my_app/shared/log/unicorn.stderr.logব্যবহারের দায়িত্বে আছেন imfile। সামগ্রীটি টিসিপি ব্যবহার করে অন্য দূরবর্তী লগিং সার্ভারে প্রেরণ করা হয়।

লগ ফাইলটি যখন ঘোরান, তখন rsyslog দূরবর্তী সার্ভারে ডেটা প্রেরণ বন্ধ করে দেয়।

আমি আরএসস্লগ পুনরায় লোড করার, এইচইউপি সিগন্যাল প্রেরণ এবং এটি পুরোপুরি পুনরায় চালু করার চেষ্টা করেছি, কিন্তু কিছুই কার্যকর হয়নি nothing

আমি কেবলমাত্র যে উপায়গুলি দেখতে পেয়েছি যেগুলি বাস্তবে কাজ করেছিল তা নোংরা:

  • পরিষেবাটি বন্ধ করুন, আরএসস্লগ স্ট্যাট ফাইলগুলি মুছুন এবং আরএসস্লগ আবার শুরু করুন। আমার লোগ্রোটেট ফাইলে একটি পোস্ট্রোটেট হুকের মধ্যে যা কিছু রয়েছে।
  • kill -9 rsyslog এবং এটি আবার শুরু করুন।

আমারে আরএসস্লগ ইন্টার্নালগুলি স্পর্শ না করে এটি করার কোনও উপযুক্ত উপায় আছে ?

রাইস্লগ ফাইল

$ ModLoad immark
$ ModLoad imudp
$ ModLoad imtcp
$ ModLoad imuxsock
$ ModLoad ইমক্লগ
$ ModLoad imfile

$ টেমপ্লেট উইদটাইম ফরমেট, "[পরিবেশ]] [% সিসলগ ট্যাগ%] -% চিত্র%"

$ ওয়ার্কডাইরেক্টরি / var / spool / rsyslog

$ ইনপুটফিলনাম / হোম / ইউজার / মাই_অ্যাপ / শেয়ার্ড / লোগো / ইউনিকর্ন.স্টডার.লগ
। ইনপুটফিটটাগ ইউনিকর্ন-স্টার্ডার
। ইনপুটফিলস্টেটফিল স্ট্যাট-ইউনিকর্ন-স্টার্ডার
। ইনপুটফিলসভারিটি তথ্য
8 ইনপুটফিটফেসিটি লোকাল 8
। ইনপুটফিটপোলআইন্টারওয়াল 1
। ইনপুটফায়ারপিস্টিস্ট স্টেটআইন্টারভাল 1
$ InputRunFileMonitor

# দূরবর্তী সার্ভারে ফরোয়ার্ড করুন
যদি ys সিসলগটাগে 'অ্যাপাচি-' থাকে তবে @@ মাই_সার্ভার: 5000; উইথটাইম ফর্ম্যাট
: সিসলগটাগ, রয়েছে, "অ্যাপাচি-" ~ ~

*। * @@ মাই_সার্ভার: 5000; সিসলফর্ম্যাট

লোগ্রোটেট ফাইল

/home/user/my_app/shared/log/*.log {
  দৈনন্দিন
  missingok
  dateext
  30 ঘোরান
  কম্প্রেস
  notifempty
  এক্সটেনশন জিজেড
  copytruncate
  640 ব্যবহারকারী ব্যবহারকারী তৈরি করুন
  sharedscripts
  পোস্ট ঘোরান
    (আরএসএসলগ & অ্যান্ড আরএম / ভার / স্পুল / আরএসআইলগ / স্ট্যাটি * বন্ধ করুন এবং আরএসএসলগ 2> & 1 শুরু করুন) || সত্য
  endscript
}

এফওয়াইআই, ফাইলটি আরএসস্লগ ব্যবহারকারীর জন্য পঠনযোগ্য, আমার সার্ভারটি অ্যাক্সেসযোগ্য এবং অন্যান্য লগ ফাইলগুলি একই চক্রের উপর ঘোরান না এমনগুলি সঠিকভাবে ট্র্যাক করা অবিরত রয়েছে।

আমি উবুন্টু 12.04 চালাচ্ছি।

উত্তর:


8

সমস্যাটি আসলে লোগ্রোটেট থেকে আসছিল।

মূলত আমার কনফিগারেশনের সাথে, ইউনিকর্ন চালানো, আমাকে copytruncateনির্দেশটি ব্যবহার করার দরকার নেই । (যা এখানে সমস্যা তৈরি করে)

ইউএসআর 1 - শ্রমিক প্রক্রিয়ার মালিকানাধীন সমস্ত লগ পুনরায় খুলুন। লগ হিসাবে গণ্য করা হয় তার জন্য ইউনিকর্ন :: ইউটি.আর.ওপেন_লগগুলি দেখুন। বর্তমান অনুরোধটির প্রক্রিয়া শেষ না হওয়া পর্যন্ত লগ ফাইলগুলি পুনরায় খোলা থাকে না, সুতরাং এক অনুরোধের জন্য একাধিক লগ লাইনগুলি (রেল দ্বারা সম্পন্ন) একাধিক লগগুলিতে বিভক্ত হবে না।

এই কনফিগারেশনে আপডেট করার পরে এটি সঠিকভাবে কাজ শুরু করেছে:

/home/user/my_app/shared/log/*.log {
  daily
  missingok
  dateext
  rotate 30
  compress
  notifempty
  extension gz
  create 640 user user
  sharedscripts

  post-rotate
    # Telling Unicorn to reload files
    test -s /home/user/my_app/shared/pids/unicorn.pid && kill -USR1 "$(cat /home/user/my_app/shared/pids/unicorn.pid)"

    # Reloading rsyslog telling it that files have been rotated
    reload rsyslog 2>&1 || true
  endscript
}

এগুলি যদি আপনার ফাইলটির সরাসরি অনুলিপি হয় তবে আমি মনে করি যে আপনার সমস্যাটি আসলে আপনি post-rotateপরিবর্তে ব্যবহার করছেন (যা কোনও জিনিস নয়) postrotateকারণ আপনার যে মূল লোগ্রোটেট লিপিটি ছিল তা আরএসস্লগের সাথে ভাল কাজ করা উচিত ছিল (যদি পোস্ট্রোটেট স্ক্রিপ্টটি চলত ) ...?
mltsy

2
আমি মনে করতে পারছি না, কিন্তু আমি পরিবর্তন করেনি post-rotateজন্য lastaction। আপনার মন্তব্যটি এখনও খুব বুদ্ধিমান এবং এটি আমার সমস্যার সমাধান হতে পারে :)। যদিও রেকর্ডের জন্য, আমি copytruncateভবিষ্যতে যাহাই হউক না কেন এটি এড়ানো হবে কারণ এটি ধীর এবং ফাইল হ্যান্ডলগুলি নিয়ে খেলে।
ভিনসেন্ট বি।

2

আপনার লোগ্রোটেট ফাইলটিতে একটি প্রবেশিকা রয়েছে /home/user/shared/log/*.logযা আপনার লগফাইলে মেলে না /home/user/my_app/shared/log/unicorn.stderr.log। আপনাকে সেই ডিরেক্টরিতে একটি লোগ্রোটেট এন্ট্রি যুক্ত করতে হবে এবং এটি অবশ্যই রয়েছে তা নিশ্চিত করতে হবে copytruncate- যেমনটি হয়, আরএসস্লগ বর্তমান ফাইলটির নাম পরিবর্তন করে একটি নতুন তৈরি করে চলেছে, এবং নাম পরিবর্তন করা ফাইলটির ফাইল হ্যান্ডেল অনুসরণ করে চলবে।


দুঃখিত, ফাইলের নামটি কেবল একটি টাইপো। তবে কপিরটুনকাটটি একটি ভাল পয়েন্ট হতে পারে। আমাকে শুধু এটি এক নজর দিন :)।
ভিনসেন্ট বি।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.