সিস্টেমড আর্ক লিনাক্স সহ সিসলগ বার্তা প্রাপ্ত Re


25

আমি অনুভব করছি যে আমি স্পষ্টতাকে অগ্রাহ্য করেছি, তবে আমি কীভাবে আমার আর্চ লিনাক্স সার্ভারটি পেতে পারি, যা কোনও দূরবর্তী সিস্টেম থেকে বার্তা systemdগ্রহণ এবং লগ syslogকরতে ব্যবহার করে।

আমার কাছে সিসকো 678 ডিএসএল মডেম এবং একটি ডিডি-ডাব্লুআরটি ডাব্লুএইচপি রয়েছে এবং উভয়কেই অন্য কোনও মেশিনে সিসলগ-ফর্ম্যাট বার্তা প্রেরণে কনফিগার করা যেতে পারে। আমি সেই যন্ত্রটি আমার আর্চ লিনাক্স সার্ভার হিসাবে চাই।

আমি প্রায় গুগল করেছি, এবং আমি যা খুশি তা হ'ল "সিস্টেমেড সিসলগকে প্রতিস্থাপন করে", বা syslogআমার প্রশ্নটির সাথে আমার আর সমান অপ্রাসঙ্গিকভাবে চালানোর দরকার নেই ।

হালনাগাদ

আমি আর্চ ফোরামগুলিতে জিজ্ঞাসা করেছি এবং কোনও প্রাসঙ্গিক উত্তর পেয়েছি । আমি কেবল ইউডিপি পোর্ট ৫১৪ শোনার জন্য সিসলগ-এনজি ইনস্টল করেছি। সিসলগ-এনজি আমার সিসকো 8 67৮ থেকে বার্তা লেখেন, এবং একটি ডিডি-ডাব্লুআরআরটি ডাবল্যাপ পেয়েছি। দুর্ভাগ্যক্রমে, বার্তাগুলি সিস্টেমডের জার্নালে শেষ হয় না, বরং ফ্ল্যাট ফাইলগুলিতে হয়। সুতরাং, কোনও সঠিক সমাধান নয়, তবে একটি কার্যবিধির কিছু। আমি বরং জার্নালে সিসলগ বার্তা রাখতাম, ফ্ল্যাট ফাইলগুলিতে নয়।


systemd তার নিজস্ব লগ ব্যবহার করে । এর রয়েছে metalog , যা কোর আর্চ Repos পাওয়া যায় - আমি, ব্যক্তিগতভাবে, সব তিনটি ব্যবহার করুন: syslog- র, systemd জার্নালটি এবং metalog। সিস্টেমড জার্নালটি পরীক্ষা করার চেষ্টা করুন। যদি আমি সঠিকভাবে স্মরণ করি, সিসলগ, যখন থেকে সিস্টেমডে স্যুইচ করা হয়েছে, এর সমস্ত বার্তা এবং যেমন সিস্টেমডের জার্নালে প্রেরণের জন্য কনফিগার করা হয়েছে।
আলেকজ মাগুরা

উত্তর:


11

আপনি গরিব লোকটির সিসলগ সার্ভারটি সকেটের সাথে সহজেই লিখতে পারেন । আপনার ঠিক এইরকম একটি পরিষেবা ইউনিট প্রয়োজন:

[Service]
Restart=on-success
ExecStart=/usr/bin/socat -u UDP-RECV:514 STDOUT

এটি সিস্টেমড জার্নালে সিসলোগ পরিষেবা বন্দরে প্রাপ্ত কিছু অন্ধভাবে পাঠিয়ে দেবে। উপরের হিসাবে সংরক্ষণ করুন, বলুন /etc/systemd/system/syslog.serviceএবং তারপর

# systemctl daemon-reload
# systemctl start syslog

তারপরে আপনার শোনার সার্ভারে ইউডিপি পোর্ট 514 এ বার্তা প্রেরণের জন্য আপনার উত্সটি কেবল দরকার।

আপনি প্রাপ্ত তথ্যটিকে প্রকৃতপক্ষে পার্স করতে এবং ফর্ম্যাট করতে আপনি এটি বাড়িয়ে তুলতে চাইতে পারেন তবে আপনি যা করতে চান তা হ'ল জার্নাল যা পেয়েছে তা প্রয়োজনীয় নয়।

( সোকাট আর্চ লিনাক্স অতিরিক্ত সংগ্রহস্থলটিতে রয়েছে pacman -S socat:)


4
ভাল উত্তর. আমি স্যাটাট ইনস্টল করতে পারিনি বলে আমি একটি দ্রুত অজগর স্ক্রিপ্ট নিয়ে গিয়েছিলাম:import socket; sock = socket.socket(type=socket.SocketKind.SOCK_DGRAM); sock.bind(("0.0.0.0", 514)); while True: print(sock.recv(1024 * 1024))
awelkie

3

সুতরাং এখানে কিছুটা ফাঁক রয়েছে।

সিস্টেমড সিস্টেমড-জার্নাল-গেটওয়ে উপাদানটির মাধ্যমে রিমোট মেসেজিং সমর্থন করে। বলা হচ্ছে যে এই বার্তাগুলি সিসলোগ বিন্যাসে নেই। সিসলগ (ফর্ম্যাট হিসাবে) একটি আইইটিএফ দ্বারা অনুমোদিত আর্টিসিফিকে 5424 (যা পূর্ববর্তী সংস্করণ, আরএফসি 3164 অবমূল্যায়ন করা হয়েছে) এর নথিভুক্ত করা হয়েছে।

একসাথে এই নাটকটি তৈরির আরও জটিলতা এখানে নথিভুক্ত করা হয়েছে:

http://www.freedesktop.org/wiki/Software/systemd/syslog/

এবং এখানে (ম্যান সিস্টেমড-জার্নাল্ড। সার্ভিস)

   systemd-journald is a system service that collects and stores logging data.
   It creates and maintains structured, indexed journals based on logging
   information that is received from the kernel, from user processes via the
   libc syslog(3) call, from STDOUT/STDERR of system services or via its native
   API. It will implicitly collect numerous meta data fields for each log
   messages in a secure and unfakeable way. See systemd.journal-fields(7) for
   more information about the collected meta data.

সংক্ষেপে নিশ্চিত করুন যে syslog-ng থেকে STDOUT এ বার্তা প্রেরণ করা হয়েছে এবং জিনিসগুলি জার্নালে শেষ হওয়া উচিত।

এই সম্পর্কে আরও কিছু অনুসরণ করার পরে আমি এটিও পেয়েছি:

https://github.com/intgr/pg_journal/blob/master/doc/pg_journal.md

যেখানে কেউ লগিংয়ের জন্য পোস্টগ্রেএসকিউএল থেকে সিস্টেমডে একটি বাঁধাই লিখছেন। এতে তারা উদ্ধৃত করেছে যে বর্তমানে (সেই ফাইলের সময় হিসাবে, 2013/06) বহু-লাইন বার্তাগুলি সিস্টেমডে সমর্থিত নয়, তাই এটির জন্যও নজর রাখুন।


2

আমি আর্ক বিতরণ জানি না। আমার কাছে ফেডোরা 20 (সিস্টেমড সহ) রয়েছে এবং এটি রিমোট সিসলগ বার্তা গ্রহণ করার জন্য কনফিগার করেছি।

আইএমএইচও, এই কার্যকারিতাটি সিস্টেমডের সাথে সম্পর্কিত নয়। Systemd-Journald.service কার্নেল / ইউজারস্পেস প্রোগ্রাম এবং সিসলগ সাবসিস্টেমের মধ্যে নিজেকে বিভক্ত করে। এটি কেবলমাত্র এই উত্স থেকে স্থানীয় বার্তাগুলি তার জার্নাল ডাটাবেসে ক্যাপচার করে (আমার মনে হয়) এবং সেগুলি সিলেগ-এ ফরোয়ার্ড করে। উদাহরণস্বরূপ "man systemd-Journald.service" দেখুন (কমপক্ষে ফেডোরায়)।

আমার ক্ষেত্রে আমি /etc/rsyslog.conf অর্থাৎ একটি বিকল্প Tচ্ছিক "টিসিপি সিসলগ রিসিভার মডিউল" কনফিগার করে এটি সক্ষম করি

# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

একটি ইউডিপি মডিউলও উপলব্ধ।

পছন্দসই ফাইলগুলিতে আউটপুটকে নির্দেশ করতে (r) সিসলগ বিধিগুলি যুক্ত করাও প্রয়োজনীয়। সম্পূর্ণ ডকুমেন্টেশনের জন্য দেখুন: http://www.rsyslog.com/doc/

আছে HTH।


2

আমি সিসলগ-এনজি ইনস্টল করেছি এবং সিসলগ লগ বার্তা গ্রহণ করতে সক্ষম হয়েছি। তবে আমি চাই সত্যিই সিসলগ লগ বার্তাগুলি গ্রহণ করা এবং তারপরে জর্জেডে বার্তা লেখা। জার্নাল্ডে রিমোট সিসলগ বার্তা লিখতে আমি সিসলগ-এনজি কনফিগার করার কোনও উপায় খুঁজে পাইনি।

তাই এটি করার জন্য আমি একটি ইউটিলিটি লিখেছি।

https://github.com/advantageous/rsyslog-journald-repeater

./rsyslog-journald-repeater -h
Usage of ./rsyslog-journald-repeater:
-debug
    debug flag
-host string
    hostname to listen on (default "0.0.0.0")
-port int
    port to listen on (default 5514 on darwin, default 514 on Linux, Unix, etc.)

প্রকল্পের সাথে টেস্টিং এবং নমুনা সিস্টেমড ইউনিট ফাইলগুলির জন্য ফাইলগুলি তৈরি করুন এবং নির্দেশাবলী অন্তর্ভুক্ত করা হয়েছে। উপভোগ করুন!


0

syslog-ng এবং সিস্টেমড জার্নাল

থেকে syslog- র-NG

সিস্টেমড system()ব্যবহার করে লিনাক্স সিস্টেমে ডিফল্ট উত্সটি সিএসলগ-এনজি সংস্করণ ৩.6.১ দিয়ে শুরু করা হয় এটির স্ট্যান্ডার্ড system()উত্স হিসাবে জার্নাল্ড ব্যবহার করে ।

আপনি যদি জার্নালড এবং সিসলগ-এনজি উভয় ফাইলই ব্যবহার করতে চান তবে নীচের সেটিংসটি কার্যকর রয়েছে তা নিশ্চিত করুন। সিস্টেমেড-জার্নাল্ডের জন্য, /etc/systemd/j Journald.conf ফাইলে স্টোরেজ = হয় অটো বা আনসেট সেট করা হয় (যা ডিফল্টরূপে স্বয়ংক্রিয়রূপে) এবং ফরওয়ার্ডটোস্লগ = সেট করা হয় না বা সেট না করা (ডিফল্ট ডিফল্ট)। /Etc/syslog-ng/syslog-ng.conf- এর জন্য আপনার নীচের সূত্র স্তরের প্রয়োজন:

 source src {
   system();
   internal();
 };

অন্যদিকে, আপনি যদি জারিড লগগুলি ধরে না রাখতে চান তবে কেবল সিসলগ-এনজি-র পাঠ্য লগগুলি সেট Storage=volatileএবং ForwardToSyslog=yesইন করুন /etc/systemd/journald.conf। এটি র‌্যামে জার্নাল স্টোর করবে। Syslog-ng 3.6.3 হিসাবে, syslog-ng উত্স হিসাবে জার্নাল্ড ব্যবহার করছে system()সুতরাং আপনি স্টোরেজ = কোনওটি সেট না করলে সিস্টেমড জার্নাল সমস্ত বার্তা ফেলে দেবে এবং সেগুলিকে syslog-ng তে ফরোয়ার্ড করবে না।

পরিবর্তনের পরে পুনরায় আরম্ভ systemd-journald.serviceএবং syslog-ng.serviceডেমন।

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