হ্যাপ্রোক্সি লগ বার্তাগুলি কীভাবে / var / লগ / সিসলগের বাইরে রাখবেন


29

আমি এই নিবন্ধ থেকে টিপস ব্যবহার করে আরএসস্লগডের মাধ্যমে হ্যাপ্রোক্সি লগিং সেট আপ করেছি এবং সমস্ত কিছুই ঠিকঠাকভাবে কাজ করছে বলে মনে হচ্ছে। লগ ফাইল লগ বার্তা পেতে।

যাইহোক, হ্যাপ্রোক্সি থেকে প্রাপ্ত প্রতিটি লগ বার্তা এতে প্রদর্শিত হয় /var/log/syslog। এর অর্থ হ'ল সার্ভারটি লাইভ হয়ে গেলে, সায়স্লগটি বেশ অকেজো হয়ে যাবে, কারণ এটি হ্যাপ্রোক্সি লগ বার্তাগুলি দিয়ে চলে যাবে।

আমি এই বার্তাগুলি থেকে ফিল্টার আউট করতে চাই /var/log/syslog। আরএসস্লগড ডকুমেন্টেশনের পরে যাওয়ার পরে আমি ফাইলটি /etc/rsyslog.d/50-default.confএভাবে পরিবর্তন করার চেষ্টা করেছি :

*.*;auth,authpriv.none;haproxy.none     -/var/log/syslog

আমি কেবল ;haproxy.noneঅংশটি যুক্ত করেছি। আরএসস্লগড পুনরায় চালু করার পরে আমি আমার পরিবর্তনগুলি উল্টিয়ে না দেওয়া পর্যন্ত এটি সম্পূর্ণরূপে কাজ বন্ধ করে দিয়েছে।

আমি কি ভুল করছি?

উত্তর:


26

আপনি নিম্নলিখিতগুলি করতে পারেন যা এটি তৈরি করবে যাতে তারা অন্য কোনও লগতে না যায়:

local0.*                        -/var/log/haproxy.log
& ~

& ~তাতে সক্ষম না নিয়ম বাকি জন্য অন্য যে কোনো স্থানে উপরের লাইনটি কি মিলেছে করা।


ধন্যবাদ। মূল কনফিগারেশনটি সম্পাদনা করার চেয়ে এটি আরও অর্থবোধ করে বলে মনে হচ্ছে।
itadok

13
লক্ষণীয় যে আপনি যদি এটি করেন তবে আপনার স্থানীয় 0। * লাইনটি /etc/rsyslog.d/50-default.conf এর " " লাইনের আগে প্রক্রিয়া করা উচিত । আমার হ্যাপ্রোক্সি-নির্দিষ্ট লগিং কনফিগারেশনটি ধারণ করতে আমি একটি ফাইল তৈরি করেছি, তবে এটি শেষে "& ~" থাকা সত্ত্বেও সিসলগে লগইন হয়েছিল। এটি কারণ (অবশ্যই) 50-default.conf haproxy.conf এর আগে লোড করা হয়েছে তাই ক্যাচল " " আমার "লোকাল0। *" লাইনের আগে মেলানো হয়েছিল। সমাধানটি ছিল আমার হ্যাপ্রোক্সি-নির্দিষ্ট ফাইলটির নাম /etc/rsyslog.d/49-haproxy.conf
গাইলস টমাস

1
এফওয়াইআই একটি ছোট আপডেটrsyslogd-2307: warning: ~ action is deprecated, consider using the 'stop' statement instead [try http://www.rsyslog.com/e/2307 ]
কেসিডি

এটি এর & stopপরিবর্তে ব্যবহারের বিষয়ে আলোচনা করে & ~: rsyslog.com/doc/v8-stable/compatibility/v7compatibility.html
slm

14

এর ব্যবহারটি & ~rsyslogd এর v7- এ অবচিত করা হয়েছিল এবং & stopপরিবর্তে আপনাকে ব্যবহার করতে উত্সাহিত করা হয়েছে । আপনি v7compatibility পৃষ্ঠার এই বিভাগে এটি সম্পর্কে আরও পড়তে পারেন ।

সর্বগ্রাহ্য এবং বাতিল (~) ক্রিয়াটি অবচয় করা হয়েছে

উভয়ই কাজ চালিয়ে যায়, তবে আরও ভাল বিকল্পের দ্বারা প্রতিস্থাপিত হয়েছে।

বাতিলকরণ অ্যাকশন (টিলডে চরিত্র) "স্টপ" রেইনারস্ক্রিপ্ট নির্দেশিকা দ্বারা প্রতিস্থাপিত হয়েছে। এটি আরও স্বজ্ঞাত হিসাবে বিবেচিত হয় এবং কিছুটা আরও ভাল পারফরম্যান্স সরবরাহ করে।

ওমরুলেসেট মডিউলটি "কল" রেইনস্ক্রিপ্টের নির্দেশনায় প্রতিস্থাপন করা হয়েছে। সাব্রোটিনের মতো একটি রুলসেট কার্যকর করতে কল অনুমতি দেয় এবং ওমরোলসেটের চেয়ে অনেক বেশি পারফরম্যান্সের সাথে এটি করে। নোট করুন যে ওমরোলसेटটি একটি অ্যাসিঙ্ক সারি থেকে চালানো যেতে পারে। এটি একটি কাঙ্ক্ষিত প্রভাবের চেয়ে বেশি পক্ষে ছিল এবং কল স্টেটমেন্ট দ্বারা সমর্থিত নয়। যদি সেই প্রভাবটির প্রয়োজন হয়, তবে এটি অ্যাসিঙ্ক্রোনিকভাবে ডাকা নিয়মসেট ক্রিয়াগুলি চালিত করে সহজেই সিমুলেট করা যায় (যা কোনও ক্ষেত্রে এটি হ্যান্ডেল করার সঠিক উপায়)।

নোট করুন যে হ্রাস করা মডিউলগুলি ব্যবহার করার সময় সতর্কতা বার্তা নির্গত করে। তারা বলে যে কনস্ট্রাক্টটি অবমূল্যায়িত হয়েছে এবং কোন বিবৃতিটি প্রতিস্থাপন হিসাবে ব্যবহার করতে হবে। এটি অপারেশনগুলিকে প্রভাবিত করে না: উভয় মডিউল এখনও পুরোপুরি কার্যকর এবং v7 টাইমফ্রেমে সরানো হবে না।

সুতরাং পরিবর্তে HAProxy এর মতো কিছু:

$ more /etc/rsyslog.d/haproxy.conf
local2.*    /var/log/haproxy.log
& stop

এটি কীভাবে কাজ করে তা হিসাবে, & stopএই ওয়েবসাইটগুলি পূর্ববর্তী ম্যাচের নিয়মগুলির সাথে মেলে এমন কোনও অতিরিক্ত বার্তা বাতিল করতে rsyslogd কে বলে। গ্যারান্টি যে এই নিয়ম থেকেই কুড়ান করা হয়, আপনার কাছ থেকে ফাইলের নাম পরিবর্তন করতে পারেন /etc/rsyslog.d/haproxy.confথেকে /etc/rsyslog.d/00-haproxy.conf


3

ঠিক আছে, আমি এটি বুঝতে পেরেছি। আমার /etc/rsyslog.d/20-haproxy.confদেখতে দেখতে এটাই :

$ModLoad imudp
$UDPServerRun 514

local0.* -/var/log/haproxy_0.log
local1.* -/var/log/haproxy_1.log

আমি লাইনটি এতে পরিবর্তন করেছি 50-default.conf:

*.*;auth,authpriv,local0,local1.none     -/var/log/syslog

এবং এখন মনে হচ্ছে আমি যা চাই তা করছে।


এটি অন্যান্য প্যাকেজগুলির দ্বারা তৈরি কনফিগার ফাইলগুলিকে সংশোধন না করাই ভাল as কারণ এটি আপগ্রেড / মালিকানার সমস্যা তৈরি করে। এটি যদি এক-অফ স্নোফ্লেক সার্ভার হয় তবে অটোমেটেড মোতায়েনের জন্য যাই হোক না কেন, 50-default.onf পরিবর্তন করা সাধারণত "খারাপ জিনিস"।
ব্রুস এজ

2

হ্যাপ্রোক্সি লগিংয়ের জন্য আরও ভাল সমাধান রয়েছে।

  • HAproxy ক্রুটে চালিত হয় যাতে এটি অ্যাক্সেস করতে পারে না /dev/log
  • অফিসিয়াল ম্যানুয়াল অনুযায়ী আরএসস্লগ নেটওয়ার্ক সকেট শুনতে কনফিগার করা প্রয়োজন:

    # to have these messages end up in /var/log/haproxy.log you will
    # need to:
    #
    # 1) configure syslog to accept network log events.  This is done
    #    by adding the '-r' option to the SYSLOGD_OPTIONS in
    #    /etc/sysconfig/syslog
    #
    # 2) configure local2 events to go to the /var/log/haproxy.log
    #   file. A line like the following can be added to
    #   /etc/sysconfig/syslog
    

তবে আপনি এটির জন্য কেবল আরএসস্লগ সকেট ব্যবহার করতে পারেন:

rsyslog.d / haproxy.conf:

    # HAproxy local socket
    $AddUnixListenSocket /var/lib/haproxy/dev/log
    :programname, contains, "haproxy" /var/log/haproxy.log
    & stop

haproxy.cfg:

    global
          log         /dev/log daemon
          chroot      /var/lib/haproxy
          .......

1

আমি ফাইলের ক্রম সঙ্গে জগাখিচুড়ি পছন্দ না করেন তাই পরিবর্তে আমি একটি local0.none যোগ লাইন প্রবেশ কনফিগারেশনটি দেখে মনে হচ্ছে:

*.info;mail.none;authpriv.none;cron.none;local2.none     /var/log/messages

local2.*                                                 /var/log/haproxy.log

(CentOS 7 এ পরীক্ষিত)

আশা করি এইটি কাজ করবে!

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