Sysklogd menyediakan dua utiliti sistem yang memberikan sokongan untuk pembalakan sistem dan perangkap mesej kernel. Sokongan kedua-dua soket domain internet dan unix membolehkan pakej utiliti ini untuk menyokong pembalakan tempatan dan jauh.
Pembalakan sistem disediakan oleh versisyslogd(8) diperolehi daripada sumber BSD saham. Sokongan untuk pembalakan kernel disediakan olehklogd(8) utiliti yang membolehkan pembalakan kernel dijalankan sama ada secara mandiri atau sebagai pelanggan syslogd.
Syslogd menyediakan jenis pembalakan yang digunakan oleh banyak program moden. Setiap mesej yang dilog mengandungi sekurang-kurangnya satu masa dan satu field nama hos, biasanya satu medan nama program juga, tetapi bergantung pada betapa amanah program pembalakan itu.
Sementarasyslogd sumber telah banyak diubah suai beberapa nota yang teratur. Pertama sekali terdapat percubaan sistematik untuk memastikan bahawa syslogd mengikuti kelakuan BSD lalai, piawai. Konsep penting kedua yang perlu diperhatikan ialah versi syslogd ini berinteraksi dengan telus dengan versi syslog yang terdapat dalam perpustakaan standard. Jika satu perduaan yang dikaitkan dengan perpustakaan yang dikongsi bersama tidak dapat berfungsi dengan betul, kami ingin contoh tingkah laku anomali.
Fail konfigurasi utama /etc/syslog.conf atau fail alternatif, diberikan dengan-f pilihan, dibaca pada permulaan. Mana-mana baris yang bermula dengan tanda hash (`` # '') dan baris kosong diabaikan. Sekiranya ralat berlaku semasa mengurai seluruh baris diabaikan.
Sinopsis
syslogd -a soket -d -f fail konfigurasi -h -l senarai tuan rumah -m selang -n -p soket -r -s senarai domain -v -x
Pilihan
-a soket
Menggunakan hujah ini, anda boleh menetapkan soket tambahan dari itusyslogd mesti dengar. Ini diperlukan jika anda akan membiarkan beberapa daemon berjalan dalam lingkungan chroot (). Anda boleh menggunakan sehingga 19 soket tambahan. Jika persekitaran anda memerlukan lebih banyak lagi, anda perlu menambah simbolMAXFUNIX dalam fail sumber syslogd.c. Contoh untuk daemon chroot () digambarkan oleh orang-orang dari OpenBSD di http://www.psionic.com/papers/dns.html.
-d
Menghidupkan mod debug. Menggunakan ini daemon tidak akan meneruskangarpu(2) untuk menetapkan sendiri di latar belakang, tetapi bertentangan dengan yang tinggal di latar depan dan menulis banyak maklumat debug pada tty semasa. Lihat bahagian DEBUGGING untuk maklumat lanjut.
-f fail konfigurasi
Tentukan fail konfigurasi alternatif dan bukannya /etc/syslog.conf , yang merupakan lalai.
-h
Secara lalai syslogd tidak akan menghantar mesej yang diterima dari hos jauh. Menetapkan suis ini pada baris arahan akan menyebabkan daemon log untuk menghantar sebarang mesej jauh yang diterima ke pemajuan tuan rumah yang telah ditentukan.
-l senarai tuan rumah
Tentukan nama hos yang hanya perlu log masuk dengan nama hina yang sederhana dan bukan fqdn. Pelbagai tuan rumah boleh ditentukan menggunakan pemisah kolon (``: '').
-m selang
Thesyslogd log tanda tunjuk cap secara berkala. Lalai selang antara dua - MARK - garisan adalah 20 minit. Ini boleh diubah dengan pilihan ini. Menetapkan selang ke sifar mematikannya sepenuhnya.
-n
Elakkan latar belakang auto. Ini diperlukan terutamanya jikasyslogd dimulakan dan dikawal olehdi dalamnya(8).
-p soket
Anda boleh menentukan alternatif soket domain unix dan bukan / dev / log .
-r
Pilihan ini akan membolehkan kemudahan untuk menerima mesej dari rangkaian menggunakan soket domain internet dengan perkhidmatan syslog (lihat (5)). Lalai adalah untuk tidak menerima sebarang mesej dari rangkaian.
Pilihan ini diperkenalkan dalam versi 1.3 pakej sysklogd. Sila ambil perhatian bahawa tingkah laku lalai adalah bertentangan dengan bagaimana versi lama bertingkah laku, jadi anda mungkin perlu menghidupkan ini.
-s senarai domain
Tentukan nama domain yang harus dilucutkan sebelum log masuk. Beberapa domain boleh ditentukan menggunakan pemisah kolon (``: ''). Harap maklum bahawa tiada sub-domain boleh ditentukan tetapi hanya seluruh domain. Sebagai contoh jika-s utara.de ditentukan dan tuan rumah pembalakan menyelesaikan kepada satu.infodrom.north.de tiada domain akan dipotong, anda perlu menentukan dua domain seperti:-s north.de:infodrom.north.de.
-v
Cetak versi dan keluar.
-x
Lumpuhkan carian nama apabila menerima mesej jauh. Ini mengelakkan kebuntuan apabila pelayan nama berjalan pada mesin yang sama yang menjalankan daemon syslog.
Isyarat
Syslogd bertindak balas kepada satu set isyarat. Anda boleh dengan mudah menghantar isyarat kepadasyslogd menggunakan yang berikut:
membunuh -SIGNAL `cat / var / run / syslogd.pid`
Sengsara
Ini membolehkansyslogd melakukan penyusunan semula. Semua fail terbuka ditutup, fail konfigurasi (lalai adalah /etc/syslog.conf ) akan dibaca semula dansyslog(3) kemudahan dimulakan semula.
SIGTERM
Thesyslogd akan mati.
SIGINT, SIGQUIT
Sekiranya debugging diaktifkan, ini tidak diendahkansyslogd akan mati.
SIGUSR1
Matikan debugging hidup / mati. Pilihan ini hanya boleh digunakan jikasyslogd dimulakan dengan-d pilihan debug.
SIGCHLD
Tunggu untuk kanak-kanak jika ada yang dilahirkan, kerana mesej wall'ing.
Perbezaan Syntax Fail Konfigurasi
Syslogd menggunakan sintaks yang sedikit berbeza untuk fail konfigurasinya daripada sumber BSD yang asal. Pada asalnya semua mesej keutamaan khusus dan di atas dikemukakan kepada fail log.
Sebagai contoh, garisan berikut menyebabkan SEMUA output dari daemon menggunakan kemudahan daemon (debug adalah keutamaan terendah, jadi setiap yang lebih tinggi juga akan cocok) untuk masuk ke dalam / usr / adm / daemon :
# Contoh syslog.conf daemon.debug / usr / adm / daemon
Di bawah skim baru, kelakuan ini tetap sama. Perbezaannya ialah penambahan empat penentu baru, asterisk (*) wildcard, tanda persamaan (=), tanda seru (!), dan tanda tolak (-).
The* menyatakan bahawa semua mesej untuk kemudahan yang dinyatakan akan diarahkan ke destinasi. Perhatikan bahawa tingkah laku ini merosot dengan menyatakan tahap keutamaan debug. Pengguna telah menunjukkan bahawa notasi asterisk lebih intuitif.
The= wildcard digunakan untuk menyekat pembalakan ke kelas keutamaan yang ditetapkan. Ini membenarkan, sebagai contoh, penghalaan hanya mesej debug ke sumber pembalakan tertentu.
Sebagai contoh, baris berikut dalam syslog.conf akan mengarahkan mesej debug dari semua sumber ke / usr / adm / debug fail.
# Sampel syslog.conf *. = Debug / usr / adm / debug
The! digunakan untuk mengecualikan pembalakan keutamaan yang ditetapkan. Ini memberi kesan kepada semua (!) Kemungkinan menentukan keutamaan.
Contohnya, garisan berikut akan mencatatkan semua mesej mel kemudahan kecuali yang mempunyai maklumat keutamaan kepada / usr / adm / mail fail. Dan semua mesej dari news.info (termasuk) ke news.crit (tidak termasuk) akan dilog masuk ke / usr / adm / berita fail.
# Sampel syslog.conf mail. *; Mail.! = Info / usr / adm / mail news.info; berita.! Crit / usr / adm / news
Anda boleh menggunakannya secara intuitif sebagai pengecualian pengecualian. Interpretasi yang disebutkan di atas hanya terbalik. Melakukannya yang anda boleh gunakan
mail.none
atau
mel.! *
atau
mel. debug
untuk melangkau setiap mesej yang datang dengan kemudahan mel. Terdapat banyak ruang untuk bermain dengannya. :-)
The- hanya boleh digunakan untuk awalan nama fail jika anda ingin menghilangkan penyegerakan fail selepas setiap menulis kepadanya.
Ini mungkin mengambil beberapa penyesuaian untuk individu yang digunakan untuk tingkah laku BSD tulen tetapi penguji telah menunjukkan bahawa sintaks ini agak lebih fleksibel daripada tingkah laku BSD. Perhatikan bahawa perubahan ini tidak akan menjejaskan piawaisyslog.conf(5) fail. Anda mesti mengubah suai fail konfigurasi secara khusus untuk mendapatkan tingkah laku yang dipertingkatkan.
Sokongan untuk Pembalakan Jauh
Pengubahsuaian ini memberikan sokongan rangkaian kepada kemudahan syslogd. Sokongan rangkaian bermaksud bahawa mesej dapat diteruskan dari satu nod yang menjalankan syslogd ke nod lain yang menjalankan syslogd di mana mereka akan benar-benar log ke file disk.
Untuk membolehkan ini anda perlu menentukan-r pilihan pada baris arahan. Tingkah laku lalai adalah itusyslogd tidak akan mendengar rangkaian.
Strateginya ialah untuk mendengarkan syslogd pada soket domain unix untuk mesej log yang dijana secara tempatan. Tingkah laku ini akan membolehkan syslogd berinteraksi dengan syslog yang terdapat di perpustakaan standard C. Pada masa yang sama syslogd mendengar pada standard syslog port untuk mesej yang dihantar dari host lain. Untuk mempunyai kerja ini dengan betulperkhidmatan(5) fail (biasanya dijumpai dalam /dan lain-lain ) mesti mempunyai entri berikut:
syslog 514 / udp
Jika entri ini tiadasyslogd tidak boleh menerima mesej jauh atau menghantarnya, kerana port UDP tidak dapat dibuka. Sebaliknya, syslogd akan mati serta-merta, meniup mesej ralat.
Untuk menyebabkan mesej dihantar ke hos yang lain, gantikan fail fail biasa di dalam syslog.conf fail dengan nama tuan rumah yang mana pesanan akan dihantar bersebelahan dengan @.
Sebagai contoh, untuk meneruskanSEMUA mesej ke hos jauh menggunakan yang berikut syslog.conf masuk:
# Sampel fail konfigurasi syslogd ke # mesej ke hos jauh ke hadapan. *. * @hostname
Untuk memajukan semuakernel mesej ke hos jauh fail konfigurasi adalah seperti berikut:
# Contoh fail konfigurasi untuk menghantar semua mesej # kernel ke hos jauh. kern. * @hostname
Jika nama hos jauh tidak dapat diselesaikan pada permulaan, kerana nama-pelayan mungkin tidak dapat diakses (ia boleh dimulakan selepas syslogd) anda tidak perlu bimbang.Syslogd akan cuba untuk menyelesaikan nama sepuluh kali dan kemudian mengadu. Satu lagi kemungkinan untuk mengelakkan ini adalah untuk meletakkan nama hos di / etc / hosts .
Dengan normalsyslogdanda akan mendapat syslog-loops jika anda menghantar mesej yang diterima dari host jauh ke tuan rumah yang sama (atau lebih rumit kepada tuan rumah ketiga yang menghantarnya kembali ke yang pertama, dan sebagainya). Di domain saya (Infodrom Oldenburg) kami secara tidak sengaja mendapat satu dan cakera kami diisi dengan mesej tunggal yang sama. :-(
Untuk mengelakkan ini dalam masa selanjutnya tiada mesej yang diterima daripada hos jauh dihantar ke hos jauh lagi (atau yang sama). Sekiranya ada senario di mana ini tidak masuk akal, sila drop saya (Joey) satu baris.
Jika hos jauh berada dalam domain yang sama dengan hos,syslogd sedang berjalan, hanya nama hos yang mudah akan dilogkan bukannya keseluruhan fqdn.
Dalam rangkaian tempatan, anda boleh menyediakan pelayan log pusat untuk memastikan semua maklumat penting disimpan pada satu mesin. Sekiranya rangkaian terdiri daripada domain yang berlainan, anda tidak perlu mengeluh mengenai pembalakan nama yang memenuhi syarat sepenuhnya daripada nama host yang sederhana. Anda mungkin mahu menggunakan ciri domain jalur-s pelayan ini. Anda boleh memberitahusyslogd untuk menghapuskan beberapa domain selain pelayan yang terletak di dalam dan hanya log nama host yang ringkas.
Menggunakan-l pilihan ada kemungkinan untuk menentukan tuan rumah tunggal sebagai mesin tempatan. Ini juga mengakibatkan pembalakan hanya nada nama ringkas mereka dan bukan fqdns.
Soket UDP yang digunakan untuk menghantar mesej kepada tuan rumah jauh atau untuk menerima mesej dari mereka hanya dibuka apabila diperlukan. Dalam siaran sebelum 1.3-23 ia dibuka setiap kali tetapi tidak dibuka untuk membaca atau penghantaran masing-masing.
Keluaran kepada Paip Dinamakan (FIFO)
Versi syslogd ini mempunyai sokongan untuk pembalakan output ke paip bernama (fifos). Paip fifo atau bernama boleh digunakan sebagai destinasi untuk mesej log dengan menyediakan simbol pipy (`` | '') kepada nama fail. Ini berguna untuk penyahpepijatan. Ambil perhatian bahawa fifo mesti dibuat dengan perintah mkfifo sebelum syslogd dimulakan.
Laluan fail konfigurasi berikut menyahpepijat mesej dari kernel ke fifo:
# Contoh konfigurasi untuk laluan debugging kernel # mesej HANYA ke / usr / adm / debug yang merupakan # bernama paip. kern. = debug | / usr / adm / debug
Kerosakan Pemasangan
Mungkin ada satu pertimbangan penting ketika memasang versi syslogd ini. Versi syslogd ini bergantung kepada pemformatan mesej yang betul oleh fungsi syslog. Fungsi fungsi syslog di perpustakaan yang dikongsi berubah di suatu tempat di rantau libc.so.4 2-4 .n. Perubahan khusus adalah untuk membatalkan mesej sebelum menghantarnya kepada / dev / log soket. Fungsi berfungsi versi syslogd ini bergantung kepada penolakan nol mesej.
Masalah ini biasanya akan ditunjukkan sendiri jika binari yang berkaitan dengan statik lama digunakan pada sistem. Binari yang menggunakan versi lama fungsi syslog akan menyebabkan baris kosong dilog masuk diikuti oleh mesej dengan aksara pertama dalam mesej yang dialih keluar. Menghidupkan semula binari ini ke versi baru perpustakaan yang dikongsi akan membetulkan masalah ini.
Kedua-duasyslogd(8) danklogd(8) sama ada boleh dijalankan dari init (8) atau bermula sebagai sebahagian daripada rc. * Urutan. Jika ia bermula dari init pilihan -n mesti ditetapkan, jika tidak, anda akan mendapat ton daemon mula syslog. Ini adalah keranadi dalamnya(8) bergantung kepada ID proses.
Ancaman Keselamatan
Terdapat potensi untuk daemon syslogd digunakan sebagai saluran untuk penafian serangan perkhidmatan. Terima kasih pergi ke John Morrison ([email protected]) untuk menyedarkan saya kepada potensi ini. Program penyangak (mer) dapat dengan mudah membanjiri daemon syslogd dengan mesej syslog yang menghasilkan file log yang memakan semua ruang yang tersisa pada sistem fail. Mengaktifkan pembalakan di atas soket domain inet tentu akan mendedahkan sistem kepada risiko di luar program atau individu di mesin tempatan.
Terdapat beberapa cara untuk melindungi mesin:
- Melaksanakan firewall kernel untuk menghadkan tuan rumah atau rangkaian yang mempunyai akses ke soket 514 / UDP.
- Pembalakan boleh diarahkan kepada sistem fail terpencil atau bukan akar yang, jika diisi, tidak akan menjejaskan mesin.
- Sistem fail ext2 boleh digunakan yang boleh dikonfigurasi untuk mengehadkan peratusan tertentu sistem fail kepada penggunaan dengan root sahaja.CATATAN bahawa ini akan memerlukan syslogd dijalankan sebagai proses bukan akar. JUGA PERHATIAN bahawa ini akan menghalang penggunaan pembalakan jauh kerana syslogd tidak dapat mengikat kepada soket 514 / UDP.
- Melumpuhkan soket domain inet akan menghadkan risiko kepada mesin tempatan.
- Gunakan langkah 4 dan jika masalah ini berterusan dan tidak menengah ke program jahat / daemon dapatkan panjang batang penyedut sebanyak 3.5 kaki (kira-kira 1 meter) * dan sembang dengan pengguna yang dipersoalkan. Tongkat penyedut def. --- 3/4, 7/8 atau 1in. batang keluli keras, lelaki yang diikat pada setiap hujungnya. Penggunaan utama dalam industri minyak di North Dakota Barat dan lokasi lain untuk mengepam 'menghisap' minyak dari telaga minyak. Penggunaan sekunder adalah untuk pembinaan banyak makanan ternakan lembu dan untuk berurusan dengan individu yang berulang-ulang atau berprofesi.
Debugging
Apabila debugging dihidupkan menggunakan-d pilihan kemudiansyslogd akan menjadi sangat teruk dengan menulis banyak apa yang dilakukan pada stdout. Apabila fail konfigurasi dibaca semula dan dihuraikan semula, anda akan melihat jadual, sepadan dengan struktur data dalaman. Jadual ini terdiri daripada empat bidang:
nombor
Bidang ini mengandungi nombor bersiri yang bermula dengan sifar. Nombor ini mewakili kedudukan dalam struktur data dalaman (iaitu array). Jika satu nombor dibiarkan maka mungkin terdapat ralat dalam baris yang sama dalam /etc/syslog.conf .
corak
Bidang ini rumit dan mewakili struktur dalaman dengan tepat. Setiap lajur bermaksud kemudahan (merujuk kepadasyslog(3)). Seperti yang dapat anda lihat, masih ada beberapa kemudahan yang dibiarkan bebas untuk digunakan dahulu, hanya yang paling kiri yang digunakan. Setiap medan dalam lajur mewakili keutamaan (merujuk kepadasyslog(3)).
tindakan
Bidang ini menerangkan tindakan tertentu yang berlaku apabila mesej diterima yang sepadan dengan corak. Merujuk kepadasyslog.conf(5) manpage untuk semua tindakan yang mungkin.
hujah-hujah
Bidang ini menunjukkan hujah-hujah tambahan kepada tindakan di medan terakhir. Untuk pembalakan fail ini adalah nama fail untuk fail log; untuk pembalakan pengguna ini adalah senarai pengguna; untuk pembetulan jarak jauh ini adalah nama hos mesin untuk log masuk; untuk pembalakan konsol ini konsol yang digunakan; untuk tty-logging ini adalah tty yang ditentukan; dinding tidak mempunyai argumen tambahan.
Lihat juga
logger(1), syslog(2), (5)
Kolaborator
Syslogd diambil dari sumber BSD, Greg Wettstein ([email protected]) melakukan pelabuhan ke Linux, Martin Schulze ([email protected]) menetapkan beberapa bug dan menambahkan beberapa ciri baru.Klogdpada asalnya ditulis oleh Steve Lord ([email protected]), Greg Wettstein membuat penambahbaikan utama.
Dr. Greg WettsteinPembangunan Sistem Enjel Kemudahan Pengkomputeran Bahagian Penyelidikan OnkologiPusat Kanser Roger MarisFargo, ND[email protected] Stephen TweedieJabatan Sains KomputerUniversiti Edinburgh, Scotland[email protected] Juha Virtanen[email protected] Shane Alderton[email protected] Martin SchulzeInfodrom Oldenburg[email protected] Penting: Menggunakan lelaki perintah ( % lelaki ) untuk melihat bagaimana arahan digunakan pada komputer tertentu anda. artikel berkaitan