লিনাক্স: রিমোট সিসলগে লগ ফাইলগুলিতে নতুন লাইন কীভাবে প্রেরণ করা যায়?


8

আমাদের বেশ কয়েকটি অ্যাপ্লিকেশন রয়েছে যা তাদের নিজস্ব প্লেইন-পাঠ্য লগ ফাইল তৈরি করছে, যা আমি কেন্দ্রীভূত লগিংয়ের জন্য একটি রিমোট সিসলগ সার্ভারে ফরোয়ার্ড করতে চাই। rootএই মেশিনগুলিতে আমার অ্যাক্সেস নেই এবং আমি syslogকোনও দূরবর্তী মেশিনে আউটপুট পুনর্নির্দেশ করতে পুনরায় কনফিগার করতে পারি না ।

আমি অনলাইনে কিছু সমাধান পেয়েছি, তবে এগুলি বেশিরভাগ লোকের বাড়িতে তৈরি বাশ স্ক্রিপ্ট এবং আমি আরও শক্তিশালী এমন কিছু সন্ধান করছি যা সম্ভাব্য উচ্চ-ভলিউম উত্পাদন পরিবেশে বাস্তবায়নের জন্য উপযুক্ত।

একটি ছোট পায়ের ছাপ, ব্যাকগ্রাউন্ড ডেমন যা চলতে থাকে, যা প্রচুর লাইন ধরে রাখতে পারে ইত্যাদি জন্য সাধারণত চোখের সাথে নকশাকৃত কিছু - বর্তমানে কী কী সমাধান পাওয়া যায়?


3
আপনি কি rsyslog এর জন্য পাঠ্য ফাইল ইনপুট মডিউলটি দেখেছেন ?
ইউনিক্স

@ ইউনিক্স: না আমার নেই, তবে আমি যাচ্ছি :)
মাইকেল মার্টিনেজ

3
উহম, সিসলগ দূরবর্তী সিসলগ সার্ভারগুলিতে প্রেরণ করতে পারে। দূরবর্তী সার্ভারে প্রেরণের জন্য আপনার স্থানীয় সিসলগটি কনফিগার করুন। তারপরে স্ট্যান্ডার্ড সিলেগ কলের মাধ্যমে বা লগার বা কিছু ব্যবহার করে আপনার স্থানীয় সিসলগ অ্যাক্সেস করুন।
জোরডাচি

4
আপনি কেন নিজের লগ ফাইলগুলিকে একটি নামযুক্ত পাইপে লিখেন না এবং একটি ডেমন শুনছেন যা তাদের পথে পাঠায় সার্ভারফল্ট
প্রশ্নগুলি /

3
আপনার অ্যাপ্লিকেশনটি পরিবর্তন করতে হবে না যে অ্যাপটি ঠিক সেই জায়গাতেই লগ ফাইলটি লিখছে ঠিক একই নামের একটি পাইপ রেখে দেওয়া উচিত।
ব্যবহারকারী 9517

উত্তর:


13

আপনি ইতিমধ্যে "অন্যান্য ব্যক্তির বাশ স্ক্রিপ্টগুলি" প্রত্যাখ্যান করেছেন, তবে এটি একটি দুর্দান্ত সাধারণ সমাধান - কমান্ডের কিছু সৃজনশীল ব্যবহারlogger কোনও ফাইল অনুসরণ করতে পারে এবং এর সামগ্রীগুলি অন্য কোথাও প্রেরণ করতে পারে।
যদিও ব্যক্তিগতভাবে আমি কোনও উত্পাদন পরিবেশে এটি করব না।


কম স্ক্রিপ্টিং হ্যাকারি প্রয়োজন এমন একটি ভাল বিকল্পটি ব্যবহার করছে rsyslogdএবং ইউনিক্সের মতো টেক্সট ফাইল ইনপুট মডিউলটি উল্লেখ করেছে - এটি একটি দুর্দান্ত শালীন সমাধান যদিও একটি ফাইল ঘোরার সময় হারিয়ে যাওয়া লাইনের সম্ভাবনা রয়েছে এবং আপনি যদি লিনাক্স সিস্টেমে থাকেন তবে rsyslogআপনার সিসলগ ডেমন হিসাবে অতিরিক্ত অতিরিক্ত কাজের প্রয়োজন নেই।

syslog-ngএর মতো কার্যকারিতা সহ একটি ফাইল ইনপুট উত্সকে সমর্থন করে rsyslog


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


7
@ মিশেলমার্টিনেজ আপনি rsyslogবর্তমানে সিস্টেমে চলছে এমন কনফিগারেশনটি পরিবর্তন করতে পারবেন । আপনার দুটি সিসলোগ ডেমন চালানো উচিত নয় । অভদ্র হতে হবে না, তবে আপনাকে এটি ভুল করার চেষ্টা করা বন্ধ করতে হবে *: এই দৃশ্যের প্রতিটি যথাযথ সমাধানের জন্য প্রশাসকের (রুট) ক্রিয়াকলাপটি অ্যাপ্লিকেশনটির সংশোধন বা সংশোধন করা দরকার। আপনি বাস্তবতা এবং যাই হোক না কেন গ্রুপ আপনার প্রতিষ্ঠানের মধ্যে সঙ্গে চুক্তি প্রশ্নে সিস্টেমে রুট আছে মুখ আছে চলুন, অন্যথায় এই প্রশ্নের হয় -বহির্ভূত বন্ধ (আপনি আপনার প্রতিষ্ঠানের নীতির ফাঁদে করার চেষ্টা করছেন) ....
voretaq7

5
@ মিশেল এগুলি আমাদের জানায় যে কেউ ভুল দলকে এই সমস্যাটি কার্যকর করতে বাধ্য করার চেষ্টা করছে।
অ্যান্ড্রু বি

4
@ মিশেলমার্টিনিজ ইমো, এটি প্রযুক্তিগত debtণের পঙ্গু স্তরের এক দ্রুত দ্রুত পথের মতো শোনাচ্ছে।
সাইরেক্স

2
@Sirex। তা যাই হোক না কেন, এটিই উপায় the আমি এমন একটি সংস্থায় কাজ করি যা কয়েক হাজার মানুষকে নিয়োগ দেয়, যার বেশিরভাগ প্রযুক্তিগত (প্রকৌশলী, দেব, অপস, ইত্যাদি)
মাইকেল মার্টিনেজ

5
আমি অনুমান করি. সাধারণত আমি দীর্ঘমেয়াদী খুঁজে পেয়েছি যে স্ব-ক্ষতিগ্রস্থ লড়াইয়ে জয়ী কোনও পদক নেই। যখন কারিগরি theণ বিন্দুতে পৌঁছে যায় তখন ব্যবসায়টি বিদ্রূপাত্মকভাবে প্রভাবিত করে যে লোকেরা দৃ in়তার সাথে ঘরের হাতিটিকে এড়াতে কঠোর পরিশ্রম করেছিল, তা আমার অভিজ্ঞতাতে ক্যানটি বহন করার প্রবণতা রয়েছে। তাই আমি বলতে চাই যে আপনার গাধাটি coverেকে রাখুন এবং কাউকে এটির ডাউনসাইড লিখতে সম্মত করুন।
সাইরেক্স

6

আপনি ব্যবহার করতে পারে logstash সঙ্গে ফাইল ইনপুট এবং syslog- র আউটপুট।

উদাহরণস্বরূপ, আপনি যে ফাইলটি (বা ফাইলগুলি) নিরীক্ষণ করতে চান সেটি এবং আপনার সিসলগ সার্ভার তথ্য সহ একটি কনফিগারেশন তৈরি করুন।

ফাইল-টু-syslog.conf:

input { file { path => "/var/log/kern.log" } }
output {
    syslog {
        facility => "kernel"
        host => "syslog.example.com"
        port => 514
        severity => "informational"
    }
}

দিয়ে লগস্ট্যাশ শুরু করুন

java -jar logstash-1.2.2-flatjar.jar agent -f file-to-syslog.conf

+1 টি। আরএসল্লগের ফাইল ইনপুট যদি কোনও বিকল্প না ব্যবহার করে তবে লগস্ট্যাশ পরবর্তী সেরা জিনিস। দীর্ঘমেয়াদে এটি অনেক দিক থেকে ভাল।
সাইরেক্স

আমি এর সাথে পরিচিত নই। এটি যদি আমার যা প্রয়োজন তা করে, এটি আমাকে হ্যাকিং কোর্টিলস এবং ইউজু-লিনাক্সের ঝামেলা বাঁচাতে পারত।
মাইকেল মার্টিনেজ

হ্যাঁ, কনফিগারেশনটি এর মতো কিছুটা দেখতে চলেছে: পেস্টবিন.
com

দেখতে খুব দুর্দান্ত সরঞ্জামের মতো, তবে আমার এখানে যা প্রয়োজন তা অবশ্যই স্পষ্টভাবে ওভারকিল করে। লগস্ট্যাশটির নিজস্ব পরিষেবাদি, ওয়েব ইন্টারফেসের সাথে জাভা ইত্যাদির প্রয়োজন হয় I'll আমি আমার ফাইললগারটি ব্যবহার চালিয়ে যা যা হালকা, ছোট পদক্ষেপ, পারফরম্যান্সের জন্য অনুকূলিত। ... তবে, লগস্ট্যাশের পরামর্শ দেওয়ার জন্য ধন্যবাদ কারণ আমি ভবিষ্যতে অন্যান্য পরিস্থিতিতেও এর প্রয়োজন দেখতে পাচ্ছি!
মাইকেল মার্টিনেজ

হ্যাঁ এটি একটি জার প্যাকড জুরবি সরঞ্জাম। গুই আসলে কীবানা যা এটিকে সহজেই প্যাকেজ করা হয় তবে এটি আসলে একটি পৃথক প্রকল্প, সুতরাং কেবল বার্তাগুলি বিশ্লেষণের জন্য এটির প্রয়োজন হয় না। এটি মূলত লগিংয়ের একটি সুইস সেনা ছুরি। আপনি ইনপুট এবং আউটপুট সংজ্ঞায়িত করেন এবং মাঝখানে আপনি optionচ্ছিকভাবে লগগুলি ছাঁটাই করতে পারেন, যা তাদের প্রসঙ্গ দেয়। - আপনি যদি আপনার লগ ডেটাতে স্থিতিস্থাপক যন্ত্র ব্যবহার না করতে চান তবে আপনার জন্য সম্ভবত এটি ওভারকিল।
সাইরেক্স

4

আমি একসাথে হ্যাক করেছি tail.cএবং logger.cএকটি একক, ছোট পায়ের ছাপ সংকলিত প্রোগ্রামে (বাইনারি) যা হালকা ওজনের, দ্রুত এবং স্থিতিশীল। যতক্ষণ না এটি লগ ফাইলগুলিতে অ্যাক্সেস পড়তে পারে ততক্ষণ এটি রুট সুবিধার প্রয়োজন ছাড়াই কাজ করে।

আমি নেটিভ লগারেও বেশ কয়েকটি উন্নতি করেছি এবং লগ সার্ভারে প্রেরণের আগে প্রতিটি লগ লাইনের শুরুতে একটি পাঠ্য স্ট্রিং সন্নিবেশ করার জন্য একটি নতুন (alচ্ছিক) সক্ষমতা যুক্ত করেছি। ফলাফলটি এমন একটি প্রোগ্রাম যা শেল পাইপ ব্যবহার করার প্রয়োজন ছাড়াই (যেমন প্রয়োজন হয় না tail logfile | logger) নিজের দ্বারা চালিত হতে পারে । স্পষ্টভাবে হত্যা না হওয়া বা এটি নেটওয়ার্ক সকেটে লেখার ক্ষেত্রে ত্রুটির মুখোমুখি হওয়া পর্যন্ত এটি চিরকাল চলবে। এমনকি লগ ফাইলটি ঘোরানো বা এমনকি অদৃশ্য হয়ে গেলে এটি চলতে থাকে (এটি ফাইলটি আবার প্রদর্শিত হবে কিনা তা সন্ধান করতে থাকবে will)

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

আমি আসলে প্রোগ্রামটি ডিসেম্বরে ফিরে এসেছি, তবে ইয়াহু কপিরাইট গ্রহণ এবং এটি উপলব্ধ করার জন্য অপেক্ষা করছিলাম, যা তারা এখন করেছে've (আমি এটি ইয়াহুতে আমার কাজের অংশ হিসাবে লিখেছি)।

ফাইললগার প্রোগ্রামের তথ্য এবং ডাউনলোড লিঙ্ক:


@ এসএলএম: আপনার অনুরোধ অনুসারে আমি আবারও লিখেছিলাম
মাইকেল মার্টিনেজ

খুব দরকারী, মাইকেল ধন্যবাদ। ডেবিয়ান অ্যাপ-গেট ইনস্টলের জন্য আপনি যে কোনও প্যাকেজ প্যাকেজ করবেন?
joelparkerhenderson

@joelparkerhenderson। হাই জোয়েল দুর্ভাগ্যক্রমে, সম্ভবত আমি ডিবিয়ান নিয়ে কাজ করি না বলে নয়। আপনি কি বাইনারিটিকে আপনার সিস্টেমে অনুলিপি করার চেষ্টা করেছেন এবং দেখেছেন যে এটি চলছে কিনা?
মাইকেল মার্টিনেজ

1

এটি মোকাবেলার জন্য বেশ কয়েকটি উপায় রয়েছে। তবে খুব প্রথম আপনার যা করা উচিত তা হ'ল সিসলগ ব্যবহার করে লগগুলি ফরোয়ার্ড করুন ।

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

*.*    @192.168.1.1

... 192.168.1.1 এ মেশিনে সমস্ত সুবিধা ফরোয়ার্ড করবে , (আশা করি) পরিষেবাটি চলছে। আমি এখানে যে উদাহরণটি দিচ্ছি তা হ'ল রাইস্ল্লগের জন্য, যা দেবিয়ানের স্টক সিলেগ সার্ভার, যদিও এটি অন্য অনেকের পক্ষে কাজ করা উচিত। আপনার সাথে সিসলগ প্রয়োগের জন্য ডকুমেন্টেশনের সাথে পরামর্শ করুন man syslogএবং দেখুন "ফরোয়ার্ডিং" সম্পর্কে এটি কী বলে।

রিমোট সিসলগ সার্ভারটি আপনার পছন্দ মতো কিছু হতে পারে। এমনকি স্প্লঙ্কের মতো পণ্য রয়েছে যা ওয়েব ড্যাশবোর্ড, অনুসন্ধান, ইভেন্ট-চালিত বিজ্ঞপ্তি ইত্যাদির সাহায্যে এই লগগুলি আনন্দের সাথে একত্রিত করে আপনি এখানে আরও দেখতে পারেন: http://www.splunk.com/ যদি যা আপনার প্রয়োজনগুলি পূরণ করে না, আপনি অন্য কিছু ব্যবহার করতে পারেন। এমন কি সিসলগ সার্ভার রয়েছে যা একটি এসকিউএল ডাটাবেসে ডাম্প করবে!

অবশ্যই, আপনার জন্য এটি করতে আপনি নিজের স্ক্রিপ্ট / প্রোগ্রাম / পরিষেবা লিখতে পারেন, তবে চাকাটি পুনরায় উদ্ভাবন করা যখন এটি উভয়ই আপনার জন্য হয়ে গিয়েছে এবং ইতিমধ্যে আপনাকে দেওয়া হয়েছে?


সম্পাদনা: সুতরাং আমি ফিরে গিয়ে প্রশ্নটি পুনরায় পড়লাম এবং বেশ কয়েকটি মন্তব্য লক্ষ্য করলাম। এটা মনে হলো:

  1. আপনি আপনার অ্যাপ্লিকেশন লগ একত্রিত করতে চান
  2. আপনার রুট অ্যাক্সেস নেই
  3. আপনার অ্যাপ্লিকেশন (গুলি) কেবল কোথাও পাঠ্য ডাম্প করে
  4. আপনার অ্যাপ্লিকেশন (গুলি) কীভাবে স্থানীয় সিস্টেমে লিখতে হয় তা জানে না
  5. আপনার অ্যাপ্লিকেশন উত্স কোডের উপর আপনার নিয়ন্ত্রণ নেই

সুতরাং আসুন প্রতিটি ক্রমানুসারে সম্বোধন করা যাক:

  1. সিস্লগ মানে লগগুলি একত্রিত করা। আপনি নিজের পছন্দ মতো যে কোনও কিছু ব্যবহার করতে পারেন তবে এটি দীর্ঘকাল ধরে থাকার কারণ রয়েছে। এটি ভাল-পরীক্ষিত, ভাল-ডিবাগড, ভাল-ডকুমেন্টেড, সুপরিচিত এবং বেশিরভাগ * নিক্স প্ল্যাটফর্মের জন্য এক স্বাদে বা অন্য কোনও ফ্লেভারে প্রায় সর্বজনীনভাবে সমর্থিত।
  2. rootলগিং সেট আপ করতে আমাদের অ্যাক্সেসের দরকার নেই । আমাদের কেবল সিসলগ এপিআইতে অ্যাক্সেস দরকার। rootসিসলগে লেখার প্রয়োজন নেই; যদি এটি হয়ে থাকে তবে সেই সমস্ত পরিষেবা যে সমস্ত সুবিধাগুলি হ্রাস করে তা লগ ফাইলগুলিতে ডায়াগনস্টিক লিখতে অক্ষম হবে।
  3. পুন: পাঠ্য ফোঁটা, এটি সাধারণ। তবে, আপনাকে এসএসডিআরআর এবং এসএসডিআউট এর আউটপুট পাইপ করতে সাবসেল ব্যবহার করতে সক্ষম হওয়া উচিত যা স্লসলগ এপিআই কল করে। এটি রকেট বিজ্ঞান নয়, এটি ভঙ্গুর হওয়া অনেক দূরে, এবং এটির নথিভুক্ত রয়েছে। আসলে, আউটপুট পুনর্নির্দেশ এমনকি উপস্থিত থাকার এটি অন্যতম কারণ reasons একটি সাধারণ কমান্ড যা একক শেল স্ক্রিপ্টে টস করা যেতে পারে তা হ'ল:

    (আমার-প্রয়োগ 2> & 1 | মাই-সিসলগ-শান্ট) &

  4. আপনার অ্যাপ্লিকেশনটির সোর্স কোড পরিবর্তন করতে যদি আপনার দক্ষতা থাকে তবে আপনার পাঠ্য আউটপুটটিকে একটি সরল টেক্সট ফাইলের পরিবর্তে সিসলগে ফেলে দেওয়ার জন্য এটিতে একটি ছোট্ট লেখা উচিত। এটি খুব কঠিন হওয়া উচিত নয়; আপনি যা করেন তা হ'ল আপনার আউটপুট হবে এমন লাইনগুলি নেওয়া এবং একটি কল দিয়ে এগুলি মোড়ানো। যাহোক....

  5. আপনার কাছে সোর্স কোডে অ্যাক্সেস নাও থাকতে পারে, তাই আপনি এটি করতে পারবেন না। যার অর্থ উপরে # 3 এর মতো কিছু ভাল কাজ করবে।


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

৪. সিসলগ কেবল একটি ফাইল স্ট্রিম নয় যা আমি খুলতে এবং এতে পাঠ্য লিখতে পারি। আমি যে শান্টটি লিখছি তাতে ইউডিপি পোর্টে সকেট খুলতে হবে যে সিসলগ শুনবে?
নুমেনন

1
@ নুমেনন, আমি আপনার উদ্দেশ্য সম্পর্কে সম্পূর্ণ পরিষ্কার নই, তবে আমি ধরে নিচ্ছি যে আপনি সিস্টেম লগের মধ্যে প্রোগ্রাম আউটপুট পাইপ করতে চান, যা লগার কমান্ডের সাহায্যে করা যেতে পারে। linux.die.net/man/1/logger
অ্যাভেরি পেইন

@ অ্যাভারপেইন তাই পছন্দ করেছেন Runtime.exec("logger ...") ঠিক আছে, ধন্যবাদ।
নুমেনন

0

আমি আমার নিজের প্রশ্নের উত্তর দিচ্ছি।

সোয়াচ কাজ করতে পারে তবে আমি পার্লের সিস :: সিস্টল মডিউলটি হোস্টে কাজ করতে পারিনি, এবং হোস্টে ইনস্টল করা / usr / bin / লগার রিমোট সার্ভারে লগিং সমর্থন করে না (Use-linux-ng- 2.17.2)।

সুতরাং, আমি প্রথম কাজটি হ'ল ইউজার-লিনাক্স -২.২০.১ এর সোর্স কোডটি ডাউনলোড করা হয়েছিল যার জন্য লগার প্রোগ্রাম দূরবর্তী লগিং সমর্থন করে। পরীক্ষার পরে, এটি স্পষ্ট হয়ে উঠল লগ লাইনে অনুমোদিত অক্ষরের সংখ্যার উপর একটি সীমাবদ্ধতা আরোপ করা হয়েছে। উত্স কোডটি খনন করে আমি একটি হার্ড কোডড 400-অক্ষরের সীমা পেয়েছি। (আপনি যদি আমাকে বিশ্বাস না করেন তবে যে কোনও লিনাক্স সিস্টেমে "স্ট্রিং / ইউএসআর / বিন / লগার | গ্রেপ 400" চালান)।

এই সীমাটি অ্যাপাচি-ধরণের লগিংয়ের জন্য নোডেজ সহ গ্রহণযোগ্য নয়, সুতরাং আমি কোডটি সংশোধন করে সীমাটি 4096 এ উন্নীত করেছি I আমি যখন ছিলাম তখন আমি একটি নতুন কমান্ড-লাইন বিকল্পও যুক্ত করেছিলাম যা একটি oneচ্ছিক সন্নিবেশ করার অনুমতি দেয় প্রতিটি লগ লাইনের শুরুতে পাঠ্য স্ট্রিং। আমি এটি করেছি কারণ নোডেজ লগগুলি হোস্ট-নেম অন্তর্ভুক্ত করে না কারণ এটি অ্যাপাচে দেখতে পাবে।

এই মুহুর্তে, আমি "টেল-এফ-এন 0 [লগফিল] |। / সংশোধিত_লগার ...." দিয়ে একটি শেল স্ক্রিপ্ট চালাতে পারি এবং এটি কাজ করে। তবে তদারকি (ডেমোনটোলস) বা এমনকি পটভূমিতে এটি চালানোর বিষয়ে আমার কিছু উদ্বেগ ছিল কারণ পাইপের এক বা অন্য দিকটি যদি শেষ হয়ে যায় তবে পুরো পাইপটি শেষ হওয়ার ঝুঁকি রয়েছে। পারফরম্যান্স সম্পর্কে আমারও উদ্বেগ ছিল (অনির্ধারিত হলেও)।

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

ফলাফলটি একটি নতুন বাইনারি (১১7 কে সাইজের) যা আমি "ফাইললগার" বলছি এবং যা একটানা এক বা একাধিক ফাইল পর্যবেক্ষণ করে এবং ইউডিপি বা টিসিপি এর মাধ্যমে প্রতিটি নতুন লাইন স্থানীয় বা দূরবর্তী সিসলগে লগ করে। ইহা যাদুর মত কাজ করে। আমি একটি সামান্য বেঞ্চমার্কিং করতে সক্ষম হয়েছি এবং এটি সিসলগ-এনজি চালিত একটি রিমোট সার্ভারে প্রায় 3 সেকেন্ডের মধ্যে একটি ভ্লান এবং তাদের মধ্যে কয়েকটি শারীরিক স্যুইচ সহ প্রায় 3 সেকেন্ডে প্রায় 17,000 লাইন (1.8MB) লগ করে।

প্রোগ্রামটি চালনার জন্য আপনি নীচের মতো কিছু করেন (হয় অগ্রভাগ, পটভূমিতে বা ডিমনটোলগুলির তত্ত্বাবধানে):

./filelogger -t 'অ্যাক্সেস' -d -p স্থানীয়1.info -n [দূরবর্তী লঘস্ট] -u / tmp / উপেক্ষা -a host (হোস্টনাম) / টিএমপি / মাইফাইল 1 / টিএমপি / মাইফাইল 2 ...

/ tmp / myfile1 এবং / tmp / myfile2 ফাইলগুলি পর্যবেক্ষণ করা হচ্ছে।

"-A" হ'ল নতুন বিকল্পটি আমি যুক্ত করেছি। এই ক্ষেত্রে আমি প্রতিটি লগ লাইনের শুরুতে স্থানীয় হোস্টনামটি sertোকান।

আমি যখন প্রশ্ন জিজ্ঞাসা করেছি তখন এই সমাধানগুলি হ'ল ঠিক সেই ধরণের সমাধানের সন্ধান করছিলাম এবং যেমনটি প্রমাণিত হয়েছিল, আমি নিজে তৈরি না করা পর্যন্ত এটি উপস্থিত ছিল না। :)


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


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

1
হাঁ। ডান .... ওপেন সোর্স এভাবেই এগিয়ে যায় ডুড। সবাই যদি এটি আপনার পথে করে তবে কোনও অগ্রগতি হবে না। আপনি কীভাবে মনে করেন জিএনইউ, লিনাক্স এবং এর ভিত্তিতে যা কিছু ঘটেছিল? লোকেরা এখানে আমি যে ধরণের কাজ করেছিলাম ঠিক সেভাবে কাজ করে। যদি এটি আপনাকে আরও ভাল অনুভব করে তোলে, আমি আমার কোডটি আমাদের প্যাকেজ ম্যানেজমেন্ট সিস্টেমের মধ্যে রাখতে চাইছি, যেখানে সংস্থার প্রত্যেকেরাই এটি ব্যবহার করতে, এটি স্থাপন করতে, এবং উন্নত করার জন্য স্বাধীন, যদি তারা ইচ্ছা করে।
মাইকেল মার্টিনেজ 21

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