সংক্ষিপ্ত হোস্টনামের পরিবর্তে কোনও সার্ভারের এফকিউডিএন লগ করতে আমি কীভাবে আরএসএসলগড করব?


22

আমি উবুন্টু 10.04 এলটিএসে স্টক আরএসএসলগড (4.2.0-2ubuntu8.1) ব্যবহার করে একটি সাধারণ সেন্ট্রালাইজড সিসলগ সার্ভার বাস্তবায়নের চেষ্টা করছি। এই মুহুর্তে আমার কাছে আমার সমস্ত ক্লায়েন্ট নোডগুলি কেন্দ্রীয় সার্ভারে লগ প্রেরণ করছে তবে ক্লায়েন্টরা লগ বার্তা প্রেরণ করছে যা তাদের এফকিউডিএন এর পরিবর্তে সংক্ষিপ্ত হোস্টনাম ধারণ করে।

উবুন্টু আরএসপ্লোগড ম্যানপেজ প্রতি:

রিমোট হোস্টটি হোস্টের মতো একই ডোমেনে অবস্থিত থাকলে, rsyslogd চলছে, পুরো fqdn এর পরিবর্তে কেবল সাধারণ হোস্টনামটি লগ হবে।

এটি আমার পক্ষে সমস্যাযুক্ত, কারণ আমি পরিবেশের মধ্যে সংক্ষিপ্ত নামগুলি পুনরায় ব্যবহার করছি, যেমন, কোর 1.example.com এবং কোর 1.stg.example.com উভয়ই তাদের বার্তাটি কোর 1 হিসাবে লগইন করে।

ক্লায়েন্ট এবং সার্ভার উভয়েরই একই / ইত্যাদি / ডিফল্ট / আরএসআইলগ রয়েছে:

RSYSLOGD_OPTIONS="-c4"

এবং একই /etc/rsyslogd.conf ফাইল:

$ModLoad imuxsock
$ModLoad imklog
$PreserveFQDN on
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$IncludeConfig /etc/rsyslog.d/*.conf

ক্লায়েন্টদের কাছে এই /etc/rsyslog.d/remote.conf ফাইল রয়েছে, তাদের বলছে দূরবর্তী সার্ভারে প্রেরণ করুন:

*.* @@syslog.example.com

এবং সার্ভারটি এই /etc/rsyslog.d/server.conf ফাইলটি ব্যবহার করে:

$ModLoad imtcp
$InputTCPServerRun 514
$DirGroup root
$DirCreateMode 0755
$FileGroup root
$template PerHostAuth,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/auth.log"
$template PerHostCron,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/cron.log"
$template PerHostSyslog,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/syslog"
$template PerHostDaemon,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/daemon.log"
$template PerHostKern,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/kern.log"
$template PerHostLpr,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/lpr.log"
$template PerHostUser,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/user.log"
$template PerHostMail,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/mail.log"
$template PerHostMailInfo,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/mail.info"
$template PerHostMailWarn,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/mail.warn"
$template PerHostMailErr,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/mail.err"
$template PerHostNewsCrit,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/news.crit"
$template PerHostNewsErr,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/news.err"
$template PerHostNewsNotice,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/news.notice"
$template PerHostDebug,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/debug"
$template PerHostMessages,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/messages"
auth,authpriv.*         ?PerHostAuth
*.*;auth,authpriv.none  -?PerHostSyslog
cron.*                  ?PerHostCron
daemon.*                -?PerHostDaemon
kern.*                  -?PerHostKern
lpr.*                   -?PerHostLpr
mail.*                  -?PerHostMail
user.*                  -?PerHostUser
mail.info               -?PerHostMailInfo
mail.warn               ?PerHostMailWarn
mail.err                ?PerHostMailErr
news.crit               ?PerHostNewsCrit
news.err                ?PerHostNewsErr
news.notice             -?PerHostNewsNotice
*.=debug;\
   auth,authpriv.none;\
   news.none;mail.none   -?PerHostDebug
   *.=info;*.=notice;*.=warn;\
      auth,authpriv.none;\
      cron,daemon.none;\
      mail,news.none        -?PerHostMessages

যেহেতু ক্লায়েন্ট এবং সার্ভার উভয়ই একটি কনফিগারেশন ভাগ করে যা "serve PreservFQDN চালু" সুনির্দিষ্ট করে, আমি সিসলগ বার্তায় FQDN হোস্টনামগুলি দেখতে প্রত্যাশা করি, তবে সেটিংটির কোনও প্রভাব ছিল না বলে মনে হয়। বেশিরভাগ অন্যান্য সেটিংস যা আমি আরএসস্লাইগের জন্য খুঁজে পেয়েছি সেগুলি এফকিউডিএন থেকে তাদের ধরে রাখার পরিবর্তে ডোমেনগুলি সরিয়ে নেওয়া at আমি মনে করি সমস্যার মূলটি আমার ক্লায়েন্টরা প্রথমে FQDN প্রেরণ করে না, তবে কীভাবে সেই আচরণটি জোর করা যায় তা আমি দেখছি না।

আমি কী মিস করছি সে সম্পর্কে কেউ মন্তব্য করতে পারেন? আমি কল্পনা করি যে আমি একমাত্র ব্যক্তি নই যাকে লগ বার্তায় অন্তর্ভুক্ত করার জন্য এফকিউডিএন প্রয়োজন needs


আমি পরে আমার সার্ভারে উবুন্টু ১১.০৪ থেকে আরএসএসলগ ৪. 4..৪-২ বুন্টু u প্যাকেজটি তৈরি করেছি এবং আমার ক্লায়েন্ট নোডগুলির একটি উপসেট ইনস্টল করেছি, ফলস্বরূপ এই আচরণে কোনও পরিবর্তন লক্ষ্য করি নি।
cwjohnston

উত্তর:


38

আমিও এই ইস্যুতে দৌড়েছি। এখানে আমি এটি ঠিক করতে সক্ষম হয়েছি।

  1. ক্লায়েন্টগুলিতে / ইত্যাদি / হোস্ট ফাইলটি পরিবর্তন করুন যাতে পছন্দসই হোস্টনাম লোকালহোস্টের আগে আসে।

    127.0.0.1 হোস্টনেম লোকালহোস্ট লগ করে

  2. ক্লায়েন্ট এবং সার্ভারে /etc/rsyslog.conf এ বিবৃতিটি অন্তর্ভুক্ত করতে পরিবর্তন করুন:

    $ সংরক্ষণ করুন এফকিউডিএন চালু

  3. সার্ভারে আমি rsyslog.conf টেম্পলেটগুলির জন্য% HOSTNAME% ভেরিয়েবল ব্যবহার করেছি:


1
এটি উত্তর হিসাবে চিহ্নিত করা উচিত
এরজাব

1
উপরের উত্তর হিসাবে চিহ্নিত করুন।
গ্রেগ আনানডালে

1
4 বছর পরে এই উত্তর এখনও পা আছে। ক্রিসমাস উপলক্ষ্যে ম্যাটকে সাহায্য করার জন্য ধন্যবাদ।
জো

7

হোস্টনাম আরএসস্লাগ প্রেরণগুলি পরিবর্তন করতে, কোনও মডিউল লোড হওয়ার আগে /etc/rsyslog.conf এ খুব প্রথম লাইনের হিসাবে নিম্নলিখিত নির্দেশকে যুক্ত করুন:

$LocalHostName yourhostname

বিকল্পভাবে, কেবলমাত্র হোস্টনাম (system1) এর পরিবর্তে সম্পূর্ণ-যোগ্যতাসম্পন্ন ডোমেন নাম (FQDN, যেমন system1.example.com) সহ আরএসএসলগ প্রেরণ করতে, নির্দেশটি ব্যবহার করুন:

$PreserveFQDN on

এটি খুব কমই প্রয়োজন হয়। আপনার অভিন্ন নামকরণকারী সিস্টেম না থাকলে আমরা হোস্টনামটি (ডোমেন নাম ছাড়াই) ব্যবহার করার পরামর্শ দিই।

এটি সেট করার বিকল্প উপায় (যা আপনাকে বিভিন্ন হোস্টনাম হিসাবে বিভিন্ন লগ প্রেরণ করতে দেয়) একটি কাস্টম টেম্পলেট সেট করে:

$template MyTemplate, "<%pri%> %timestamp% MySpoofedHostName %syslogtag% %msg%\n"
$ActionForwardDefaultTemplate MyTemplate

4

এটি একটি বাগ হতে পারে। এফকিউডিএন সমর্থনটি উইকিপিডিয়া হিসাবে পরিচিত বা জানা ছিল , যদিও নিবন্ধিত এফকিউডিএন বাগের কোনওটিই প্রয়োগ হয় না বলে মনে হয়।

কার্যকারণ হিসাবে, আপনি যদি কোনও রিলেিং %FROMHOST%না করেন তবে% HOSTNAME% এর পরিবর্তে ব্যবহার করুন।


1
ব্যবহার %FROMHOST%আমাকে একটি FQDN দিতে, কিন্তু এটি ক্লায়েন্ট নোড এর IP ঠিকানার উপর একটি বিপরীত লুকআপ ফল বলে মনে হয়। যেহেতু আমার সিস্টেমগুলি এডাব্লুএস ইসি 2 এ চলছে, দুর্ভাগ্যক্রমে, এটি সর্বদা একটি এফকিউডিএন দেবে যা আমার কাছে তাত্ক্ষণিক অর্থ নেই has
cwjohnston

0

আমি কেবল .6..6.x এর সাথে কথা বলতে পারি, তবে $PreserveFQDNএটির কাজ করার জন্য যা ছিল তা ছিল। /etc/hostsআপনার নোডের এফকিউডিএন সঠিকভাবে সেটআপ করা থাকলে আপনি ঝামেলা এড়াতে পারবেন ।

CentOS / RHEL সিস্টেমের উদাহরণ:

$ -> vi /etc/sysconfig/network

# Change this
HOSTNAME=service-a-1

# To this
HOSTNAME=service-a-1.sn1.vpc3.example.com

পুনরায় বুট করতে ভুলবেন না।


0

আপনি এটি ক্লায়েন্ট সাইড rsyslog কনফিগারেশনে ব্যবহার করতে পারেন।

$LocalHostName {{HOSTNAME}}

এবং {{HOSTNAME}}পছন্দসই হোস্টনামের সাথে প্রতিস্থাপন করুন বা আপনি স্বয়ংক্রিয়ভাবে গোঁফ ব্যবহার করে প্রতিটি ক্লায়েন্টের উপর এটির নমুনা তৈরি করতে পারেন ।

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