Syslogd Linux va Unix Buyruq

Sysklogd, tizimga kirishni va yadro xabarlarini yozishni qo'llab-quvvatlovchi ikkita tizim yordamini beradi. Ham internet, ham unix domenlarini qo'llab-quvvatlash, ushbu yordam dasturini mahalliy va uzoqdan kirishni qo'llab-quvvatlashga imkon beradi.

Tizimlarni jurnalga yozish sxemasi uSD resurslaridan olingan syslogd (8) versiyasi bilan ta'minlanadi. Kernelni jurnalga yozib olishni qo'llab-quvvatlaydigan klogd (8) yordamchi dasturi tomonidan taqdim etiladi, bu esa o'z navbatida yadrolarni ro'yxatga olishni mustaqil ravishda yoki syslogd mijozi sifatida amalga oshirish imkonini beradi.

Syslogd ko'plab zamonaviy dasturlardan foydalanishni ta'minlaydi. Har kirilgan xabarlar kamida bir vaqt va hostname maydonini o'z ichiga oladi, odatda dastur nomi sohasi ham, ammo bu logging dasturining qanchalik ishonchli ekanligiga bog'liq.

Syslogd manbalari qattiq o'zgartirilgan bo'lsa-da, bir nechta qaydlar tartibda. Birinchidan, syslogdning standart, standart UX xatti-harakatlariga rioya qilishini ta'minlash uchun muntazam ravishda harakat qilishdi. Eslatib o'tish kerak bo'lgan ikkinchi muhim tushunchaning shuki, bu syslogd versiyasi standart kutubxonalarda topilgan syslog versiyasi bilan shaffof tarzda hamkorlik qiladi. Agar standart umumiy kutubxonalarga bog'langan ikkilik to'g'ri ishlamasa, biz anomal xarakatlarga misol bo'lamiz.

Asosiy konfiguratsiya fayli /etc/syslog.conf yoki -f parametr bilan berilgan muqobil fayl boshlanishda o'qiladi. Xash belgilari bilan boshlangan ('` # '') va bo'sh satrlar bilan ajratilgan barcha satrlar e'tiborsiz qilinadi. Barcha satrlarni ajratish vaqtida xato ro'y bermaydi.

Sinopsis

syslogd [ -a socket ] [ -d ] [ -f konfiguratsiya fayli ] [ -h ] [ -l hostlist ] [ -m interval ] [ -n ] [ -p rozetini ] [ -r ] [ -s domenlar ro'yxati ] [ - v ] [ -x ]

Tanlovlar

- soket

Ushbu argumentni ishlatib, ushbu syslogddan qo'shimcha rozetkalarni aniqlab olishingiz mumkin. Chroot () muhitida ishlashga ruxsat berish uchun bu zarur. Siz 19 tagacha qo'shimcha svet qo'yishingiz mumkin. Agar sizning muhitingiz yanada ko'p bo'lsa, MAXFUNIX ramzini syslogd.c manba faylida oshirish kerak. Chroot () xizmatiga misol OpenBSD-dan kelganlar tomonidan http://www.psionic.com/papers/dns.html da ko'rsatilgan.

-d

Debug rejimida ishlaydi. Buni ishlatish, vilkalar (2) orqasida fon rejimida turishi kerak, lekin oldingi o'rinda turishga qarama-qarshilik va hozirgi vaqtda juda ko'p disk raskadroviy axborotlarni yozish. Qo'shimcha ma'lumot olish uchun DEBUGGING bo'limiga qarang.

-f konfiguratsiya fayli

Standart sifatida /etc/syslog.conf o'rniga muqobil konfiguratsiya faylini ko'rsating.

-h

Syslogd sukut bo'yicha uzoq serverlardan olgan xabarlarni yubormaydi. Buyruqlar satriga bu kalitni belgilash log-daemonni olgan barcha uzatilgan xabarlarni oldindan yuborilgan xost-serverlarga jo'natishiga olib keladi.

-l hostlist

Faqat fqdn emas, oddiy oddiy kompyuter nomi bilan saqlanadigan hostnameni belgilang. Ikki nuqta belgisi (`` `: '') yordamida ajratilishi mumkin.

-m oralig'ida

Syslogd muntazam ravishda nishon vaqt belgilaydi. Ikkita MARK chizig'i orasidagi sukut oralig'i 20 minut. Ushbu parametr bilan o'zgartirish mumkin. Intervalni nolga o'rnatish butunlay o'chiradi.

-n

Avtomatik qayta ishlashdan saqlaning. Bu ayniqsa, syslogd ishga tushirilsa va init (8) tomonidan boshqarilsa, kerak.

- R soket

/ Dev / log-ning o'rniga muqobil unix domen soketini tanlashingiz mumkin.

-r

Ushbu parametr tarmoqqa syslog xizmati bilan Internet domen soketidan foydalanib, tarmoqdan xabar qabul qilish imkonini beradi (Qarang: (5)). Standart sifatida tarmoqdan hech qanday xabar olinmaydi.

Ushbu parametr, sysklogd paketining 1.3 versiyasiga kiritilgan. Shuni esda tutingki, odatiy xatti-harakatlar eski versiyalar qanday ishlashiga qarama-qarshidir, shuning uchun siz uni yoqishingiz mumkin.

-s domen ro'yxati

Kiritishdan oldin o'chirib tashlash kerak bo'lgan domen nomini tanlang. Ko'p domenlar nuqta belgisi (`` `: '') yordamida belgilanishi mumkin. Iltimos, hech qanday kichik domenlar ko'rsatilishi mumkin emas, faqatgina barcha domenlar bo'lishi mumkin. Misol uchun, -s shimoliy.de ko'rsatilsa va host logging satu.infodrom.north.de domenini o'chirmasa, hech qanday domen kesilmaydi, masalan: -s north.de:infodrom.north.de .

-v

Chop etish va chiqish.

-x

Masofadagi xabarlarni qabul qilganda nomlarni qidirishni o'chirib qo'yish. Syslog xizmatini ishga tushirgan o'sha mashina ustida nomer server ishlayotganida, bu qulflashga yo'l qo'ymaydi.

Signallar

Syslogd bir qator signallarga javob beradi. Quyidagi usul yordamida syslogdga osongina signal yuborishingiz mumkin:

o'ldirish -SIGNAL` cat / var / run / syslogd.pid`

Uxlash

Bu syslogd qayta ishga tushirishni amalga oshirish imkonini beradi. Barcha ochiq fayllar yopiq, konfiguratsiya fayli (standart /etc/syslog.conf ) qayta o'qiladi va syslog (3) uskunasi yana ishga tushiriladi.

SIGTERM

Syslogd o'lishi kerak.

SIGINT , SIGQUIT

Agar disk raskadrovka yoqilgan bo'lsa, ular e'tiborsiz qilinadi, aks holda syslogd o'lishi mumkin.

SIGUSR1

Disk rasagini ochish / o'chirish. Ushbu parametr faqat syslogd -d debug parametr bilan ishga tushirilsa ishlatilishi mumkin.

SIGCHLD

Ba'zilar tug'ilib o'sgan bo'lsa, bolalarni xabarlash uchun kuting.

Konfiguratsiya fayli sintaksisi farqlari

Syslogd , konfiguratsiya faylida asl UX manbalariga nisbatan bir oz boshqacha sintaktikadan foydalanadi. Aslida ma'lum bir ustuvorlik va yuqoridagi barcha xabarlar jurnal fayliga jo'natildi.

Misol uchun, quyidagi satrda daemon-lardan olingan barcha chiqishlar (usbu / eng / past), / usr / adm / daemons-ga o'tish uchun,

# Misol syslog.conf daemon.debug / usr / adm / daemons

Yangi sxema bo'yicha bu xatti-harakatlar bir xil bo'lib qolaveradi. Taqqoslash to'rtta yangi identifikatorni - yulduzcha ( * ) joker belgini, tenglama belgisini ( = ), dovyurak belgisini ( ! ) Va minus belgisini ( - ) qo'shadi.

* Belgilangan ob'ekt bo'yicha barcha xabarlar maqsadga yo'naltirilganligini bildiradi. Ushbu xatti-harakatni disk raskadrovka ustuvorligini belgilash bilan vayron bo'lishini unutmang. Foydalanuvchilar yulduz belgilarining yanada intuitiv ekanligini ta'kidladilar.

= Joker belgilar belgilangan ustuvorli klassga kirishni cheklash uchun ishlatiladi. Bu, masalan, ma'lum bir jurnalga yozish manbasiga faqat disk raskadrovka xabarlarini yuborish imkonini beradi.

Misol uchun, syslog.conf ichidagi quyidagi satr barcha manbalardan / usr / adm / debug faylga disk raskadrovka xabarlarini jo'natadi .

# Misol syslog.conf *. = Debug / usr / adm / debug

Bu ! belgilangan ustuvorliklarni yozishni istisno qilish uchun ishlatiladi. Bu ustuvorliklarni belgilashning barcha (!) Imkoniyatlariga ta'sir qiladi.

Misol uchun, quyidagi satrlarni / usr / adm / mail fayliga ustuvor ma'lumotlarga ega bo'lganlar bundan mustasno. News.info (shu jumladan) axborotidan news.crit (tashqari) dan olingan barcha xabarlar / usr / adm / news fayliga yozib qo'yiladi.

# Misol syslog.conf pochta. *; Pochta =! Info / usr / adm / mail news.info; yangilik.! Crit / usr / adm / news

Intuitiv ravishda istisno tariqasida foydalanishingiz mumkin. Yuqorida keltirilgan izoh oddiygina teskari. Buni amalga oshirishingiz mumkin

mail.none

yoki

pochta orqali yuboring.!

yoki

pochta.!

mailga ega bo'lgan har bir xabarni yuborish uchun. U bilan o'ynash uchun juda ko'p joy bor. :-)

Faylni har bir yozishdan keyin uni sinxronlashtirishni istamasangiz, faqat fayl nomini oldindan belgilash uchun foydalanilishi mumkin.

Bu oddiy BSD xulq-atvorida foydalanilgan shaxslar uchun biroz iklimlilikni talab qilishi mumkin, ammo testchilar bu sintaksikning UX xatti-harakatlaridan ko'ra bir oz moslashuvchan ekanligini bildirganlar. Ushbu o'zgartirishlar standart syslog.conf (5) fayllariga ta'sir qilmasligi kerak. Murakkab xatti-harakatni olish uchun konfiguratsiya fayllarini o'zgartirishingiz kerak.

Uzoq loglarni qo'llab-quvvatlash

Ushbu o'zgartirishlar syslogd qurilmasiga tarmoq yordamini taqdim etadi. Tarmoqni qo'llab-quvvatlovchi xabarlar syslogd-dan ishlaydigan bitta tugundan syslogd ishlaydigan boshqa tugunga ko'chirilishi mumkinligini anglatadi. Bu erda ular aslida diskda saqlanadi.

Buning uchun buyruq satrida -r- ni tanlashingiz kerak. Standart xatti- syslogd tarmoqni tinglamaydi.

Strategiya, syslogd mahalliy sifatida yaratilgan kundalik xabarlar uchun unix domen soketini tinglashi kerak. Bunday xatti- syslogdning standart kutubxonada joylashgan syslog bilan ishlashiga imkon beradi. Shu bilan birga, syslogd boshqa hostlardan yuborilgan xabarlar uchun standart syslog portini tinglaydi. Ushbu ishni to'g'ri bajarish uchun (5) fayllar (odatda / va hokazo ) quyidagi yozuvlarga ega bo'lishi kerak:

syslog 514 / udp

Agar bu yozuv syslogd bo'lmasa, UDP porti ochilmasa ham, uzoqdan xabarlarni qabul qilmaydi yoki jo'natmaydi. Buning o'rniga, syslogd zudlik bilan o'lib, xato xabari pufladi.

Xabarlarni boshqa uy egasiga jo'natish uchun syslog.conf faylidagi an'anaviy faylni o'zgartiring. Bu xabarlarning yuborilishi kerak bo'lgan hostning nomi @ bilan belgilanadi.

Misol uchun, barcha xabarlarni quyidagi syslog.conf usuli bilan uzoqdan xostga o'tkazib yuborish uchun:

# Misol syslogd konfiguratsiya fayli barcha xabarlarni masofaviy serverga jo'natadi. *. * @hostname

Barcha yadro xabarlarini masofaviy xostlarga jo'natish uchun konfiguratsiya fayllari quyidagicha bo'ladi:

# Barcha yadro # xabarlarini masofaviy xostga jo'natish uchun konfiguratsion fayl. * @hostname

Masofadagi hostname ishga tushirish vaqtida echilishi mumkin emas, chunki nom-serverga kirish imkoni bo'lmasligi mumkin (u syslogddan so'ng ishga tushishi mumkin), xavotirlanmasangiz bo'lmaydi. Syslogd ismini o'n marta echishga urinib, shikoyat qiladi. Buning oldini olishning yana bir imkoni - hostname / etc / hosts-ga joylashtirish .

Oddiy syslogd- lar yordamida syslog-looplarni qabul qilsangiz, masofaviy xostdan bir xil uy egasiga yuborilgan xabarlarni (yoki undan murakkabligi uni birinchi sahifaga yuboradigan uchinchi uy egasiga va boshqalarga) yuborsangiz. Mening domenimda (Infodrom Oldenburg) biz tasodifan bitta va disklarimiz bir xil xabar bilan to'ldirilgan. :-(

Buning oldini olish uchun uzoqdan boshqa xostdan kelgan xabarlar boshqa (yoki bir xil) uzoqdan xostga yuboriladi. Agar bu mantiqiy bo'lmasa senariylar bo'lsa, iltimos, menga (Joey) chiziqni qo'ying.

Masofaviy kompyuter host bilan bir xil domenda joylashgan bo'lsa, syslogd ishlayapti, faqatgina oddiy hostname barcha fqdn o'rniga yoziladi.

Mahalliy tarmoqda siz markaziy log serverni bitta mashinada saqlangan barcha muhim ma'lumotlarga ega bo'lishingiz mumkin. Tarmoq turli xil domenlardan iborat bo'lsa, oddiy hostname o'rniga to'liq malumotlarni yozishga shikoyat qilishingiz shart emas. Siz ushbu serverning tarmoqli-domenidan foydalanishingiz mumkin. Syslogd- serverga joylashtirilgan serverlardan tashqari bir nechta domenni o'chirib tashlashini va faqat oddiy kompyuter nomlarini qayd etishini aytishingiz mumkin.

-l parametridan foydalanib, mahalliy kompyuter sifatida yagona hostlarni aniqlash imkoniyati ham mavjud. Bu ham fqdns emas, balki oddiy oddiy kompyuter nomlarini yozishga olib keladi.

Uzoq kompyuterlarga xabarlarni yuborish yoki ulardan xabar olish uchun ishlatiladigan UDP uyasi faqat kerak bo'lganda ochiladi. 1.3 dan oldingi releflardagi efirda har safar ochilgan bo'lsa-da, o'qish yoki uzatish uchun ochilmadi.

Namoyish quvurlari (FIFO) ga chiqish

Syslogd ning ushbu versiyasi chiqishlarni qayd etilgan quvurlar (fifos) ga yozishni qo'llab-quvvatlaydi. Fayl nomi uchun pipo belgisini (`` `| '') oldindan belgilash orqali logo xabarlari uchun maqsad sifatida foydalanish mumkin. Bu disk raskadrovka uchun foydalidir. Syslogd ishga tushirilgunicha fifo mkfifo buyrug'i bilan yaratilgan bo'lishi kerak.

Quyidagi konfiguratsiya fayllari marshrutlari yadrodan fifo'ya xabarlarni disk raskadrovka:

# Yadro disk raskadroviyasini yo'naltirish uchun namuna konfiguratsiyasi faqat # usuli / usr / adm / debug deb ataladigan # xabarlar. Kern. = disk raskadrovka | / usr / adm / disk raskadrovka

O'rnatish xavotirlari

Syslogdning ushbu versiyasini o'rnatishda ehtimol muhim ahamiyatga ega. Ushbu syslogd versiyasi syslog funktsiyasi tomonidan xabarlarni to'g'ri formatlashiga bog'liq. Birgalikda kutubxonalarda syslog funktsiyasi ishlashi libc.so.4 mintaqasida o'zgargan. [2-4] .n. Muayyan o'zgarish, uni / dev / log rozetkasiga uzatishdan oldin xabarni null-terminatsiya qilish edi. Syslogdning ushbu versiyasining to'g'ri ishlashi xabarning noldan tugashiga bog'liq.

Tizimda eski statik ravishda bog'langan ikkiliklar qo'llanilayotgan bo'lsa, bu muammo odatda o'zini namoyon qiladi. Syslog funktsiyasining eski versiyalaridan foydalanadigan ikkilamchi bo'sh satrlarni jurnalga yozilishga olib keladi va keyinchalik xabarning birinchi belgisi bilan o'chiriladi. Ushbu ikkiliklarni birgalikdagi kutubxonalarning yangi versiyalariga qaytarish bu muammoni bartaraf etadi.

Ham syslogd (8), ham klogd (8) init (8) dan ishga tushirilishi yoki rc * sekansining bir qismi sifatida boshlangan bo'lishi mumkin. Agar u initdan boshlangan bo'lsa, parametr -n sozlanishi kerak, aks holda siz syslog daemonlarning tonnasini ishga tushirasiz. Buning sababi, init (8) jarayon identifikatoriga bog'liq.

Xavfsizlik tahdidlari

Syslogd xizmatini xizmat ko'rsatishni inkor etish uchun kanal sifatida foydalanish mumkin. Menga ushbu salohiyat haqida ogohlantirish uchun Jon Morrison (jmorriso@rflab.ee.ubc.ca) ga rahmat. Yomon dastur (mer) syslogd xizmatini syslog xabarlari bilan osongina to'ldirishi mumkin, natijada fayl tizimidagi qolgan bo'sh joyni ishlatadigan log fayllari. Inet domen soketlari orqali kirishni faollashtirish, albatta, tizimni mahalliy kompyuterda dasturlardan yoki shaxslardan tashqarida xatarlarga sabab bo'ladi.

Mashinani himoya qilishning bir qator usullari mavjud:

  1. Xost yoki tarmoqlar 514 / UDP soketiga kirishni cheklash uchun yadro xavfsizlik devorini joriy qilish.
  2. Ro'yxatga olishni xavfsiz yoki xavfsiz bo'lmagan fayl tizimiga yo'naltirish mumkin.
  3. Ext2 fayl tizimi, fayl tizimining muayyan foizini faqat root yordamida cheklash uchun tuzilishi mumkin. Bu syslogdning root bo'lmagan jarayon sifatida ishlashini talab qiladi. Shuningdek , syslogd 514 / UDP soketiga ulanib bo'lmagani uchun, bu masofadan ro'yxatga olishni ishlatishning oldini oladi.
  4. Inet domenidagi rozetkalarni o'chirib qo'yish mahalliy mashinaga xavf soladi.
  5. 4-bosqichdan foydalaning va agar muammo davom ettirilsa va haydovchilik dasturiga / dasturiga ikkinchi darajali bo'lmasa, sucker rod * ning 3,5 fut (taxminan 1 metr) uzunligi va ushbu foydalanuvchi bilan chat qiling. Sucker rod def. --- 3/4, 7/8 yoki 1in. qatordagi po'lat po'lat, erkakning har bir uchida tishli. G'arbiy Shimoliy Dakota shtatidagi va boshqa joylarda neftni quyish uchun neftni quyish uchun birlamchi foydalanish. Ikkilamchi usullar chorvachilik uchun yemlarni qurish va vaqti-vaqti bilan yo'qotish yoki urushayotgan odam bilan shug'ullanish uchun mo'ljallangan.

Xatolarni tuzatish

Nosozlik paytida -d opsiyasi yordamida yoqilsa, syslogd stdout-da bajaradigan ishlarning ko'pini yozib qo'yadi. Konfiguratsiya fayli qayta o'qilsa va qayta ajratilgan bo'lsa, ichki ma'lumotlar tuzilishiga mos keladigan jadvalni ko'rasiz. Ushbu jadval to'rtta maydondan iborat:

raqami

Bu maydonda noldan boshlangan seriya raqami mavjud. Bu raqam ichki ma'lumotlar strukturasida (ya'ni, qator) joylashgan. Agar bitta raqam tashlansa , /etc/syslog.conf ning mos keladigan satrida xato bo'lishi mumkin.

namuna

Bu maydon juda qiyin va ichki tuzilishni aniq ko'rsatadi. Har bir ustun bir ob'ektni tashkil qiladi ( syslog (3) ga qarang). Ko'rib turganingizdek, sobiq foydalanish uchun bepul qolgan ayrim ob'ektlar mavjud, faqat chapdan ko'p foydalaniladi. Ustundagi har bir maydon ustuvorliklarni bildiradi ( syslog (3) ga qarang).

harakatlar

Ushbu maydon, naqshga mos keladigan xabarni qabul qilganda amalga oshiriladigan aniq harakatni tasvirlaydi. Barcha mumkin bo'lgan harakatlar uchun syslog.conf (5) manga qarang.

dalillar

Bu maydon so'nggi sohadagi harakatlarga qo'shimcha dalillarni ko'rsatadi. Fayllarni jurnalga yozib olish uchun bu logfile uchun fayl nomi; foydalanuvchini ro'yxatga olish uchun bu foydalanuvchilar ro'yxati; uzoqdan kirish uchun bu mashinaga kirish uchun kompyuterning nomi; konsolni yozish uchun bu ishlatilgan konsol; tty-logging uchun bu belgilangan tty; devorda qo'shimcha dalil yo'q.

Shuningdek qarang

logger (1), syslog (2), (5)

Hamkorlar

Syslogd UX manbalaridan olingan, Greg Wettstein (greg@wind.enjellic.com) Linux portini ishga tushirgan bo'lsa, Martin Schulze (joey@linux.de) ba'zi xatolarni aniqladi va bir nechta yangi xususiyatlarni qo'shdi. Klogd dastlab Stiv Lord (lord@cray.com) tomonidan yozilgan, Greg Wettstein katta o'zgarishlar qildi.

Doktor Greg Vettshteyn
Enjellik tizimlari ishlab chiqish

Onkologiya ilmiy-tadqiqot bo'limi hisoblash kompleksi
R. Maris saraton kasalligi markazi
Fargo, SH
greg@wind.enjellic.com

Stiven Tweedie
Kompyuter fanlari bo'limi
Edinburgh universiteti, Shotlandiya
sct@dcs.ed.ac.uk

Juha Virtanen
jiivee@hut.fi

Shane Alderton
shane@ion.apana.org.au

Martin Schulze
Infodrom Oldenburg
joey@linux.de

Muhim: shaxsiy kompyuteringizda buyruq qanday ishlatilishini ko'rish uchun man buyrug'ini ( % man ) ishlating.

Tegishli maqolalar