នៅពេលអ្នកជួបប្រទះបញ្ហាណាមួយជាមួយនឹងដំណើរការម៉ាស៊ីនមេរបស់អ្នក រឿងដំបូងដែលអ្នកចង់ធ្វើគឺ ពិនិត្យមើលកំណត់ហេតុ Linux របស់អ្នក ។ នៅក្នុងកំណត់ហេតុប្រព័ន្ធ អ្នកអាចរកឃើញសារវិនិច្ឆ័យមានប្រយោជន៍មួយចំនួនពីសមាសធាតុផ្សេងៗគ្នានៃប្រព័ន្ធប្រតិបត្តិការដូចជាខឺណែល ឬសេវាកម្មផ្សេងៗ ដូច្នេះអ្នកទំនងជានឹងរកឃើញមូលហេតុនៃការបរាជ័យនៅទីនោះ។
រាល់សារនៅក្នុងកំណត់ហេតុត្រូវបានបង្កើតជាលទ្ធផលនៃព្រឹត្តិការណ៍មួយចំនួននៅក្នុងប្រព័ន្ធប្រតិបត្តិការ៖ ពីអ្នកប្រើប្រាស់ ការអនុញ្ញាតិដល់ការបិទសេវាកម្ម ឬកម្មវិធីបរាជ័យ។ ព្រឹត្តិការណ៍ទាំងនេះមានអាទិភាពខុសៗគ្នា អាស្រ័យលើកម្រិតដែលវារិះគន់។ មានប្រភេទព្រឹត្តិការណ៍ខាងក្រោមនៅក្នុងលីនុច៖
emerg- បរាជ័យ, អាទិភាពខ្ពស់បំផុត;alert- ការព្រមានជាបន្ទាន់;crit- ព្រឹត្តិការណ៍សំខាន់;err- កំហុសធម្មតា;warn- ការព្រមានធម្មតា;notice- ការជូនដំណឹង;info- សារពត៌មាន;debug- ព័ត៌មានបំបាត់កំហុស;
បច្ចុប្បន្ននេះ សេវាកម្មប្រមូលផលកំណត់ហេតុសំខាន់ៗនៅក្នុង Linux គឺ rsyslog និង systemd-journald ។ ពួកវាដំណើរការជាមួយកញ្ចប់ចែកចាយទំនើបភាគច្រើន ហើយដំណើរការដោយឯករាជ្យ។
rsyslog
កំណត់ហេតុនៃសេវាកម្មនេះមានទីតាំងនៅក្នុងថតឯកសារ “ /var/log/ ” ក្នុងទម្រង់ជាឯកសារអត្ថបទធម្មតា។ សារកំណត់ហេតុត្រូវបានដាក់ក្នុងឯកសារផ្សេងៗគ្នាអាស្រ័យលើប្រភេទនៃព្រឹត្តិការណ៍។ ឧទាហរណ៍ “ /var/log/auth.log ” មានព័ត៌មានអំពីការអនុញ្ញាតរបស់អ្នកប្រើប្រាស់នៅក្នុងប្រព័ន្ធ ហើយ “ /var/log/kern.log ” មានសារខឺណែល។ ឈ្មោះឯកសារអាចខុសគ្នានៅទូទាំងកញ្ចប់ចែកចាយ ដូច្នេះសូមក្រឡេកមើលឯកសារកំណត់រចនាសម្ព័ន្ធដើម្បីទទួលបានគំនិតនៃកន្លែងដែល “ /etc/rsyslog.d/50-default.conf ” ស្ថិតនៅ។
ច្បាប់ទាំងនេះបង្ហាញឯកសារណាដែលមានសារកំណត់ហេតុប្រភេទនីមួយៗ។ ផ្នែកខាងឆ្វេងបង្ហាញប្រភេទសារក្នុងទម្រង់ដូចខាងក្រោម “ [ប្រភព].[អាទិភាព] ” ហើយផ្នែកខាងស្តាំបង្ហាញឈ្មោះឯកសារកំណត់ហេតុ។ ពេលកំពុងសរសេរប្រភេទសារ តួអក្សរ “ * ” អាចត្រូវបានបន្ថែម។ វាមានន័យថាតម្លៃទទេ ឬ “ គ្មាន ” ដែលលុបវាចេញពីបញ្ជី។ ចូរយើងពិនិត្យមើលឱ្យកាន់តែច្បាស់អំពីច្បាប់ពីរដំបូង។
“auth,authpriv.* /var/log/auth.log”
“*.*;auth,authpriv.none -/var/log/syslog”
ច្បាប់ទីមួយមានន័យថា សារទាំងអស់ដែលទទួលបានពីយន្តការអនុញ្ញាតនឹងត្រូវបានកត់ត្រាទៅក្នុងឯកសារ " /var/log/auth.log "។ ការប៉ុនប៉ងអនុញ្ញាតទាំងអស់ (ទាំងជោគជ័យ និងមិនជោគជ័យ) នឹងត្រូវបានចុះឈ្មោះនៅក្នុងឯកសារនេះ។ ច្បាប់ទីពីរបង្ហាញថា សារទាំងអស់លើកលែងតែសារដែលភ្ជាប់ជាមួយការអនុញ្ញាតនឹងត្រូវបានកត់ត្រាទៅក្នុងឯកសារ " /var/log/syslog "។ ឯកសារទាំងពីរនេះជាធម្មតាមានប្រជាប្រិយភាពបំផុត។ ច្បាប់ខាងក្រោមកំណត់ផ្លូវដើម្បីរក្សាទុកកំណត់ហេតុខឺណែល " kern.* " និងកំណត់ហេតុសេវាកម្មប្រៃសណីយ៍ " mail.* "។
ឯកសារកំណត់ហេតុអាចត្រូវបានបើកដោយមានជំនួយពីកម្មវិធីនិពន្ធអត្ថបទណាមួយ ដូចជា less , cat , tail ។ ចូរយើងបើកឯកសារ “ /var/log/auth.log ”
less /var/log/auth.log
រាល់បន្ទាត់នៃឯកសារគឺជាសារដាច់ដោយឡែកដែលបានទទួលពីកម្មវិធី ឬសេវាកម្ម។ សារទាំងអស់ដោយមិនគិតពីប្រភពរបស់វាមានទម្រង់តែមួយ និងមាន 5 ផ្នែក។ សូមយកសារដែលបានបន្លិចនៅក្នុងរូបថតអេក្រង់ជាឧទាហរណ៍។
- ត្រាពេលវេលាសារ - “ថ្ងៃទី 12 ខែកុម្ភៈ 06:18:33”
- ឈ្មោះកុំព្យូទ័រដែលបានផ្ញើសារ - "vds"
- ឈ្មោះកម្មវិធី ឬសេវាកម្មដែលផ្ញើសារ - "sshd"
- លេខសម្គាល់ដំណើរការ - [653]
- អត្ថបទសារ - "បានទទួលយកពាក្យសម្ងាត់សម្រាប់ mihail ពី 188.19.42.165 ច្រក 2849 ssh2"
នេះគឺជាឧទាហរណ៍នៃការតភ្ជាប់ជោគជ័យទៅ SSH ។
ហើយនេះជារបៀបដែលការព្យាយាមចូលដែលមិនជោគជ័យមើលទៅ៖
ឯកសារនេះក៏កត់ត្រាពាក្យបញ្ជាដែលមានការអនុញ្ញាតកម្រិតខ្ពស់ផងដែរ។
ចូរយើងបើក ឯកសារ /var/log/syslog
សារដែលបន្លិចនៅលើរូបថតអេក្រង់គឺជាសារអំពីការបិទចំណុចប្រទាក់បណ្តាញ។
ដើម្បីស្វែងរកព័ត៌មានតាមរយៈឯកសារអត្ថបទវែងៗ សូមប្រើ ឧបករណ៍ប្រើប្រាស់ grep ។ អ្នកអាចស្វែងរកសារទាំងអស់ដែលទទួលបានពី សេវាកម្ម pptpd នៅក្នុងឯកសារ “ /var/log/syslog ”។
grep 'pptpd' /var/log/syslog
អំឡុងពេលធ្វើរោគវិនិច្ឆ័យ អ្នកអាចប្រើ ឧបករណ៍ប្រើប្រាស់ tail ដែលអាចបង្ហាញបន្ទាត់ចុងក្រោយនៃឯកសារជាច្រើន។ ពាក្យបញ្ជា " tail -f /var/log/syslog " នឹងអនុញ្ញាតឱ្យអ្នកមើលការថតកំណត់ហេតុក្នុងពេលវេលាជាក់ស្តែង។
សេវាកម្ម rsyslog មានភាពបត់បែន និងមានអានុភាពខ្លាំង។ វាអាចត្រូវបានប្រើសម្រាប់ការប្រមូលផលកំណត់ហេតុនៅក្នុងប្រព័ន្ធក្នុងស្រុក ក៏ដូចជានៅកម្រិតសហគ្រាសផងដែរ។ អ្នកអាចស្វែងរកឯកសារពេញលេញនៅលើគេហទំព័រផ្លូវការ https://www.rsyslog.com/
ការបង្វិលកំណត់ហេតុនៅក្នុងលីនុច
ការកត់ត្រាកំណត់ហេតុកំពុងកើតឡើងជាបន្តបន្ទាប់ ដូច្នេះទំហំនៃឯកសារកើនឡើងឥតឈប់ឈរ។ យន្តការបង្វិលធានានូវការរក្សាទុកកំណត់ហេតុចាស់ៗដោយស្វ័យប្រវត្តិ និងការបង្កើតឯកសារថ្មី។ អាស្រ័យលើច្បាប់ វាអាចកើតឡើងជារៀងរាល់ថ្ងៃ ប្រចាំសប្តាហ៍ ប្រចាំខែ ឬតាមដែនកំណត់ទំហំ។ នៅពេលដែលកំណត់ហេតុថ្មីត្រូវបានបង្កើត កំណត់ហេតុចាស់ៗអាចត្រូវបានលុប ឬផ្ញើតាមអ៊ីមែល។ ការបង្វិលកំណត់ហេតុត្រូវបានអនុវត្តដោយ ឧបករណ៍ប្រើប្រាស់ logrotate ។ អ្នកអាចស្វែងរកការកំណត់រចនាសម្ព័ន្ធសំខាន់នៅក្នុងឯកសារ " /etc/logrotate.conf "។ ខ្លឹមសារឯកសារក៏ត្រូវបានដំណើរការនៅក្នុងថតឯកសារ " /etc/logrotate.d/ " ផងដែរ។
ច្បាប់ថ្មីអាចត្រូវបានកត់ត្រាទុកទៅក្នុងឯកសារកំណត់រចនាសម្ព័ន្ធសំខាន់។ ទោះយ៉ាងណាក៏ដោយ វាជាការល្អបំផុតក្នុងការបង្កើតឯកសារដាច់ដោយឡែកមួយនៅក្នុង " /etc/logrotate.d/ "។ តាមលំនាំដើម មានឯកសារមួយចំនួននៅក្នុងថតឯកសារនេះ។
ចូរយើងពិនិត្យមើលឯកសារ " /etc/logrotate.d/rsyslog " ដែលមានច្បាប់បង្វិលសម្រាប់កំណត់ហេតុនៃ សេវាកម្ម rsyslog ។
ជាដំបូង ច្បាប់គួរតែមានផ្លូវទៅកាន់ឯកសារកំណត់ហេតុ ហើយបន្ទាប់មកទៅការណែនាំទាំងអស់នៅក្នុងតង្កៀបកោង។
- បង្វិល ៧ - ចំនួនឯកសារដែលត្រូវរក្សាទុក - ៧
- ជារៀងរាល់ថ្ងៃ - បង្កើតឯកសារថ្មីជារៀងរាល់ថ្ងៃ
- បង្ហាប់ - បង្រួមនិងរក្សាទុកឯកសារចាស់
អ្នកអាចមើលឃើញនៅលើរូបថតអេក្រង់ថានៅក្នុងថតឯកសារ " /var/log/ " មានកំណត់ហេតុសំខាន់ " syslog " និងបណ្ណសារចំនួន 7 ដែលត្រូវនឹងច្បាប់នៅក្នុងឯកសារកំណត់រចនាសម្ព័ន្ធ។
អ្នកអាចស្វែងរកការពិពណ៌នាលម្អិតបន្ថែមអំពី logrotate នៅក្នុងសៀវភៅណែនាំ ដោយប្រតិបត្តិពាក្យបញ្ជា " man logrotate "។
ការប្រមូលកំណត់ហេតុលីនុច - ទិនានុប្បវត្តិ
សេវាកម្មប្រមូលផលកំណត់ហេតុ systemd-journald គឺជាផ្នែកមួយនៃប្រព័ន្ធចាប់ផ្តើម systemd ។ ឯកសារកំណត់ហេតុ Linux ត្រូវបានរក្សាទុកក្នុង " /var/log/journal/ " ក្នុងទម្រង់ពិសេសមួយ ហើយអាចបើកបានដោយមានជំនួយពី ឧបករណ៍ប្រើប្រាស់ journalctl ។ ទម្រង់កំណត់ត្រាគឺដូចគ្នាបេះបិទទៅនឹង rsyslog ។
ពាក្យបញ្ជា journalctl ដែលគ្មានគុណលក្ខណៈបង្ហាញកំណត់ត្រាទាំងអស់ ប៉ុន្តែវាមិនស័ក្តិសមសម្រាប់កំណត់ហេតុធំៗទេ។ ចូរយើងពិនិត្យមើលជម្រើសមួយចំនួននៃឧបករណ៍ប្រើប្រាស់នេះ។
journalctl -b- បង្ហាញកំណត់ត្រាទាំងអស់ចាប់តាំងពីការចាប់ផ្តើមចុងក្រោយjournalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10"- បង្ហាញកំណត់ត្រាក្នុងរយៈពេលជាក់លាក់មួយ។journalctl -u pptpd- បង្ហាញកំណត់ត្រានៃសេវាកម្មជាក់លាក់journalctl -k- បង្ហាញសារខឺណែល។journalctl -p err- បង្ហាញសារនៃអាទិភាពជាក់លាក់ សារដែលមានអាទិភាពខ្ពស់ក្នុងករណីនេះ (crit, alert, emerg)journalctl -f- បង្ហាញសារក្នុងពេលវេលាជាក់ស្តែង
ដើម្បីភាពបត់បែនកាន់តែប្រសើរ អ្នកអាចផ្សំជម្រើសទាំងនេះ។ ចូរយើងបង្ហាញកំហុសទាំងអស់នៃ សេវាកម្ម pptpd
journalctl -u pptpd -p err
ប្រសិនបើអ្នកបញ្ជាក់ផ្លូវទៅកាន់ឯកសារដែលអាចប្រតិបត្តិបានជាគុណលក្ខណៈ ឧបករណ៍ប្រើប្រាស់នឹងបង្ហាញសារទាំងអស់ដែលបានផ្ញើដោយឯកសារនេះ។ ចូរយើងបង្ហាញសារទាំងអស់ដែលបានផ្ញើដោយឯកសារ " /usr/bin/sudo " ចាប់តាំងពីម៉ោង ០៤:១៥ ថ្ងៃទី ១៨ ខែកុម្ភៈ ឆ្នាំ ២០២០។ តាមពិតទៅ វានឹងបង្ហាញពាក្យបញ្ជាទាំងអស់ដែលបានប្រតិបត្តិដោយសិទ្ធិខ្ពស់ជាង។
journalctl -S "2020-02-18 04:15" /usr/bin/sudo
ដើម្បីដឹងថាតើឯកសារកំណត់ហេតុទំហំថាសត្រូវចំណាយប៉ុន្មានដើម្បីប្រតិបត្តិពាក្យបញ្ជាខាងក្រោម
journalctl --disk-usage
ក្នុងគោលបំណងដើម្បីកំណត់ឯកសារកំណត់ហេតុទៅ 1Gb ប្រតិបត្តិពាក្យបញ្ជាខាងក្រោម
journalctl --vacuum-size=1G
ការបើកឯកសារគោលពីរ
ឥឡូវនេះ ចូរយើងពិនិត្យមើលឯកសារពិសេសមួយចំនួននៅក្នុងថតឯកសារ “ /var/log/ ” ដែលការប៉ុនប៉ងចូលទាំងអស់ត្រូវបានរក្សាទុក។ ឯកសារទាំងនេះជាឯកសារគោលពីរ ហើយអាចបើកបានតែជាមួយកម្មវិធីពិសេសប៉ុណ្ណោះ។
/var/log/wtmp មានព័ត៌មានអំពីការប៉ុនប៉ងចូលដោយជោគជ័យ។ សូមប្រើឧបករណ៍ប្រើប្រាស់ចុងក្រោយដើម្បីបើកវា។
/var/log/btmp - មានការប៉ុនប៉ងចូលដែលបរាជ័យទាំងអស់។ វាអាចត្រូវបានបើកជាមួយ lastb ដោយមានការអនុញ្ញាតកម្រិតខ្ពស់។ គុណលក្ខណៈ -n កំណត់ចំនួនបន្ទាត់ដែលបង្ហាញពីចុងបញ្ចប់នៃឯកសារ។
/var/log/lastlog - មានពេលវេលានៃសកម្មភាពចូលចុងក្រោយសម្រាប់កំណត់ត្រាគណនីនីមួយៗ។ វាអាចត្រូវបានបើកជាមួយ lastlog