আমার কনসোল বন্যা থেকে কার্নেল বার্তাগুলি কীভাবে বন্ধ করবেন?


45

আমি Centos 6, rsyslog লগিং ব্যবহার করছি। কনসোল কার্নেল বার্তাগুলিতে প্লাবিত হয়।

  • Klogd চলছে না (আমি rsyslog ব্যবহার করছি)
  • Rsyslog কনফিলে কনসোল-এ কিছু পরিচালনা করে না
  • এমনকি rsyslog পুরোপুরি বন্ধ করার চেষ্টা করেছিল

এখনও কিছু কিছু কার্নেল লগ বার্তাগুলি দিয়ে আমার কনসোলকে প্লাবিত করছে। এটি কী এবং আমি কীভাবে এটি বন্ধ করব?

আপডেট : এগুলি কার্নেল (হার্ডওয়্যার, iptables, ইত্যাদি), স্টাফগুলি যা এর বাইরে বেরিয়ে আসে তার দ্বারা উত্পন্ন বার্তাগুলি /proc/kmsg:

শোরওয়াল: পাবলোক: ড্রপ: ইন = বিআর 0 আউট = ম্যাক = এক্সএক্সএক্স এসআরসি = এক্সএক্সএক্স ডিএসটি = এক্সএক্সএক্স লেন = 60 টিএসএস = 0x00 পিআরইসি = 0x00 টিটিএল = 128 আইডি = 15731 ডিএফ প্রোটো = টিসিপি এসপিটি = 63767 ডিপিটি = 3493 উইন্ডো = 8192 আরএসইএস 0x00 এসওয়াইএন ইউআরজিপি = 0


বার্তাগুলি দেখতে কেমন? (ব্যক্তিগতভাবে, আমি সাধারণত একটি xtermউইন্ডোতে কাজ করি , সুতরাং যদি কনসোলটি প্লাবিত হয় তবে তা আমাকে বিরক্ত করে না))
কিথ থম্পসন

সুস্পষ্টভাবে বলার ঝুঁকিতে, শোরওয়াল থেকে বার্তা আসছে (যা আমি কখনও ব্যবহার করি নি, তাই আমি বেশি সাহায্য করতে পারি না)। একটি যোগ করার পদ্ধতি shorewall বা ফায়ারওয়াল ট্যাগ আরো উপযোগী মনোযোগ পেতে পারে।
কিথ থম্পসন

@ কিথথম্পসন: বার্তাগুলি কার্নেল লগিং প্রক্রিয়াটির মাধ্যমে আসছে। শোরওয়াল এই বার্তাগুলির কেবলমাত্র একজন নির্মাতা (iptables কার্নেল মডিউলগুলির মাধ্যমে), সবচেয়ে বিরক্তিকর, তবে কার্নেল-উত্পন্ন সমস্ত বার্তা সেখানে দেখানো হয়েছে।
হ্যামগ

উত্তর:


27

আমি আপনাকে আপনার পরিবর্তন করতে পরামর্শ দিচ্ছি /etc/sysctl.conf। বিশেষত, আপনি কার্নেল.প্রিন্টক লাইনটি টুইট করতে চান ।

# Uncomment the following to stop low-level messages on console
kernel.printk = 3 4 1 3

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

লগিংয়ের শোরওয়াল বিভাগটিও দেখুন । লগিংয়ের জন্য আপনাকে এলওজি লক্ষ্য ব্যবহার করতে হবে না, আপনি অন্যান্য সরঞ্জামগুলি ব্যবহার করতে পারেন, বা লগের তীব্রতা সামঞ্জস্য করতে পারেন এবং আপনার বার্তাগুলি কোথায় যায় তা নিয়ন্ত্রণ করার জন্য জিনিসগুলিকে টুইঙ্ক করতে পারেন।


32

রানটাইমের সময় মানগুলি সেট করতে, ব্যবহার করুন sysctl। (আমি মনে করি যে কেউ /proc/sys/kernel/printkসরাসরি লিখতে পারে এবং আপাতদৃষ্টিতে আপনি এখানেdmesg -n CUR বর্ণিত হিসাবে ব্যবহার করতে পারেন )

প্রদর্শন করুন:

# sysctl kernel.printk
kernel.printk = 2       4       1       7

আউটপুটে বিভাজকগুলি একক ট্যাব, বিটিডাব্লু।

সেট করুন। এখানে বিভাজকগুলি কেবল ফাঁকা জায়গা। পাশাপাশি কাজ করে।

# sysctl -w kernel.printk="2 4 1 7"
kernel.printk = 2 4 1 7
# sysctl kernel.printk
kernel.printk = 2       4       1       7

আরও দেখুন man sysctl- "রানটাইমের সময়ে কার্নেল প্যারামিটারগুলি কনফিগার করুন"।

তীব্রতার মাত্রা এবং উপরের ব্রায়ান প্রদত্ত কার্নেল.প্রিন্টকের চারটি মানের স্মরণ করিয়ে দিন:

  • সিউর = বর্তমান তীব্রতা স্তর; এই স্তরের চেয়ে গুরুত্বপূর্ণ বার্তাগুলি কেবল মুদ্রিত হয়
  • DEF = ডিফল্ট তীব্রতা স্তর কোনও স্তর ছাড়াই বার্তাগুলি নির্ধারিত
  • এমআইএন = ন্যূনতম অনুমোদিত C
  • বিটিডিইএফ = বুট-টাইম ডিফল্ট সিউর

আমার সেন্টোজে: 7 4 1 7

                     CUR  DEF  MIN  BTDEF
0 - emergency        x              x                        
1 - alert            x         x    x
2 - critical         x              x
3 - error            x              x
4 - warning          x    x         x
5 - notice           x              x
6 - informational    V              V
7 - debug            

এটি খুব কোলাহলপূর্ণ, আমি কেবল সমালোচনা এবং আপ (কোনও ত্রুটি নেই) চাই। লেবেলযুক্ত বার্তাগুলি সতর্কতা হিসাবে বিবেচনা করা উচিত, তাই ডিএইফ ভাল:

                     CUR  DEF  MIN  BTDEF
0 - emergency        x              x                        
1 - alert            x         x    x
2 - critical         x              x
3 - error            V              V
4 - warning               x         
5 - notice                           
6 - informational                   
7 - debug            

সেট করুন: 3 4 1 3


4
man klogctlস্তরগুলিও ব্যাখ্যা করে।
সিরো সান্তিলি 新疆 改造 中心 法轮功 六四

12

আমি এটি সহায়ক হিসাবে খুঁজে পেয়েছি। আরএইচইএল ভিত্তিক ডিস্ট্রোজে cat /proc/sys/kernel/printkআপনার বর্তমান সেটিংস কী তা দেখতে পারেন ।

চারটি মান মুদ্রণ ফাইলটিতে পাওয়া যায়। এই মানগুলির প্রতিটি ত্রুটি বার্তাগুলি নিয়ে কাজ করার জন্য একটি পৃথক নিয়ম সংজ্ঞায়িত করে। কনসোল লগলেভেল নামে পরিচিত প্রথম মান কনসোলে মুদ্রিত বার্তাগুলির সর্বনিম্ন অগ্রাধিকার সংজ্ঞা দেয়। (দ্রষ্টব্য, কম অগ্রাধিকার কম, লগলেভেল সংখ্যাটি বেশি) তৃতীয় মান কনসোল লগলেভেলের জন্য সর্বনিম্ন সম্ভাব্য লগলেভেল কনফিগারেশন সেট করে। শেষ মানটি কনসোল লগলেভেলের জন্য ডিফল্ট মান সেট করে।

কনসোল লগলেভল সেট করার জন্য / etc / sysconfig / initে LOGLEVEL পরামিতি ব্যবহার আর সমর্থিত নয়। Red Hat Enterprise Linux 6 এ কনসোল লগলেভল সেট করতে, লগলেভেল = 'কে বুট টাইম প্যারামিটার হিসাবে পাস করুন। উদাহরণস্বরূপ, লগলিভেল = 6 সমস্ত বার্তাগুলি 6 টির চেয়ে কম মুদ্রণ করবে (কেবলমাত্র এর চেয়ে কম নয়) print

ক্রেডিট:


6

রেডহ্যাট অনুসারে এটি করার জন্য এখানে "অফিসিয়াল" উপায় রয়েছে :

Red Hat Enterprise Linux 6 এ কনসোল লগলেভল সেট করতে, লগলেভেল = <সংখ্যা> বুট টাইম প্যারামিটার হিসাবে পাস করুন।


6

আপনি ব্যবহার করে কনসোলে সমস্ত কার্নেল লগিং অস্থায়ীভাবে দমন করতে পারেন:

sudo dmesg -n 1

আরও দেখুন: https://askubuntu.com/questions/97256/how-do-i-disable-messages-or-logging-from-printing-on-the-console-virtual-termin


1
এটাই আমি চেয়েছিলাম! আমি কেবলমাত্র বার্তাগুলি অস্থায়ীভাবে একটি টার্মিনালে অক্ষম করতে চেয়েছিলাম যখন আমি তাদের উত্পন্ন সমস্যাটি ডিবাগ করছি।
এনটিসি 2

0

আপনি যা দেখছেন তা হ'ল কনসোলে মুদ্রিত কার্নেল লগ বার্তা। কোন লগ বার্তা কনসোলে পৌঁছেছে তা বর্তমানে সেট করা কনসোল লগ স্তরের উপর নির্ভর করে।

যখন কার্নেল সেমিডলাইনে quietকার্নেল প্যারামিটার অন্তর্ভুক্ত থাকে ফলাফল কনসোল লগ স্তর 4(যেমন ত্রুটি এবং আরও খারাপ)। এটি ছাড়া এটিতে সেট করা হয় 7(অর্থাত্ তথ্য এবং আরও খারাপ)।

আপনি সক্রিয় কার্নেল প্যারামিটারগুলি সহ cat /proc/cmdlineএবং আপনার বর্তমান কনসোল লগ স্তরের সাথে দেখতে পারেন sysctl kernel.printk। এটি dmesg -n X(বা এমনকি সহ sysctl -w) গতিশীলভাবে পরিবর্তন করা যেতে পারে ।

পরিবর্তনটি স্থায়ী করতে আপনি কার্নেল প্যারামিটারগুলি কার্নেল সেন্টিমিডলিনে (যেমন quietএবং এবং / অথবা loglevel=X) যোগ করতে পারেন বা এর .confঅধীনে একটি সিস্টেস্টল ফাইল যুক্ত করতে পারেন /etc/sysctl.d

কার্নেল প্যারামিটারটি এভাবে যুক্ত করা যেতে পারে:

# vi /etc/default/grub # edit the GRUB_CMDLINE_LINUX value
# for i in /boot/grub2/grub.cfg /boot/efi/EFI/*/grub.cfg; do
     [ -f "$i" ] && grub2-mkconfig -o "$i" ; done

0

যেহেতু এটি একটি স্ট্যাক ওভারফ্লো সম্পর্কিত সাইট, আমি আপনাকে আউটপুটটি স্যুইচ না করা উচিত বলে এইটি শুরু করব, আপনার ত্রুটিগুলি সমাধান করা উচিত।

আপনি যদি কনসোলে থাকেন এবং বার্তাগুলি টাইপ করার চেষ্টা করে আপনি কী করছেন তা দেখতে না পান।

sudo dmesg -D

এটি অন্যান্য সমাধানগুলি দেখার জন্য এটি যথেষ্ট শান্ত করে তোলে।


-1

আপনি যদি সত্যিকারের জ্যামে থাকেন তবে আপনি কেবলমাত্র সিসলোগ পরিষেবাটি অস্থায়ীভাবে অক্ষম করতে পারতেন এমন কোনও বন্যা রয়েছে যা আপনি দেখতে বা সঠিকভাবে কোনও কিছু টাইপ করতে পারবেন না।


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