Syslogd Linux lan Unix Command

Sysklogd nyedhiyakake rong fungsi sistem sing nyedhiyakake dhukungan kanggo logging sistem lan pesen kernel. Dhukungan saka soket domain internet lan unix mbisakake paket sarana iki kanggo ndhukung logging lokal lan remot.

Sistem logging diwenehake dening versi syslogd (8) sing asal saka sumber BSD. Dhukungan kanggo log kernel diwenehake dening sarana klogd (8) sing ngidini kernel logging bisa dilakoni kanthi cara sing mandiri utawa minangka klien syslogd.

Syslogd nyedhiyakake logging sing digunakake dening akeh program modern. Saben pesen mlebu ngemot paling sethithik wektu lan kolom hostname, biasane kolom jeneng program uga, nanging gumantung kepiye carane dipercaya program logging kasebut.

Nalika sumber syslogd wis akeh dimodifikasi, sawetara cathetan ana ing urutan. Kaping pisanan ana upaya sistematis kanggo mesthekake yen syslogd minangka standar, standar BSD. Konsep sing kapindho penting kanggo dicathet yaiku versi syslogd iki interaksi kanthi transparan karo versi syslog sing ditemokake ing perpustakaan standar. Yen binar sing disambung karo pustaka biasa standar ora bisa dienggo kanthi bener, kita bakal seneng conto prilaku anomali.

Berkas konfigurasi utama /etc/syslog.conf utawa file alternatif, diwenehi nganggo opsi -f , diwaca nalika wiwitan. Sembarang garis sing diwiwiti kanthi tanda hash (`` # '') lan garis kosong ora dikepengini. Yen ana kesalahan nalika parsing, kabeh baris ora diilangi.

Sinopsis

syslogd [ -a socket ] [ -d ] [ -f config file ] [ -h ] [ -l hostlist ] [ -m interval ] [ -n ] [ -p socket ] [ -r ] [ -s domainlist ] [ - v ] [ -x ]

Pilihan

-a soket

Nggunakake argumen iki sampeyan bisa nemtokake sockets tambahan saka syslogd sing arep didharke . Iki perlu yen sampeyan arep ngidini sawetara daemon mbukak ing lingkungan chroot (). Sampeyan bisa nggunakake nganti 19 sockets tambahan. Yen lingkungan luwih akeh, sampeyan kudu nambah MAXFUNIX simbol ing file sumber syslogd.c. Contone, daemon chroot () digambarake dening wong-wong saka OpenBSD ing http://www.psionic.com/papers/dns.html.

-d

Nguripake mode debug. Nggunakake daemon iki ora bakal nerusake garpu (2) kanggo nyetel dhewe ing latar mburi, nanging ngelawan sing tetep ing foreground lan nulis informasi debug akeh babagan tty saiki. Deleng bagean DEBUGGING kanggo informasi luwih lengkap.

-f config file

Temtokake file konfigurasi alternatif tinimbang /etc/syslog.conf , yaiku standar.

-h

Kanthi syslogd standar, ora bakal nerusake pesen sing ditampa saka sarwa adoh. Nemtokake saklar iki ing baris perintah bakal nyebabake daemon log nerusake pesen sing wis diterusake kanggo nerusake pangiriman sing wis ditetepake.

-l hostlist

Nemtokake jeneng host sing kudu dicandhet mung karo jeneng host prasaja lan ora fqdn. Sawetara sarwa dumadi bisa ditemtokake kanthi nggunakake titik loro (``: '') separator.

-m interval

Syslogd nglebokake timestamp tandha kanthi reguler. Interval standar antara loro - MARK - garis 20 menit. Iki bisa diganti karo pilihan iki. Nyetel interval menyang nol kanthi otomatis.

-n

Supaya otomatis ndhuweni. Iki perlu, utamane yen syslogd diwiwiti lan dikontrol dening init (8).

-p soket

Sampeyan bisa nemtokake soket domain unix alternatif tinimbang / dev / log .

-r

Opsi iki bakal mbisakake fasilitas kanggo nampa pesen saka jaringan nggunakake soket domain internet nganggo layanan syslog (pirsani (5)). Default yaiku ora nampa pesen saka jaringan.

Opsi iki dikenalaké ing versi 1.3 saka paket sysklogd. Elinga yen prilaku standar minangka kebalikan saka versi lawas, supaya sampeyan bisa nguripake iki.

-situs daftar

Nemtokake jeneng domain sing kudu dilucuti sadurunge ngangkut barang. Sawetara domain bisa ditemtokake kanthi nggunakake titik loro (``: '') pemisah. Mangga diwenehake manawa ora ana sub-domain sing ditemtokake nanging mung kabeh domain. Contone yen -s north.de wis ditemtokake lan log pangunggahan ing host kanggo siji.infodrom.north.de ora ana domain sing bakal dipotong, sampeyan kudu nemtokake rong domain kaya: -s north.de:infodrom.north.de .

-v

Versi cetak lan metu.

-x

Mateni jeneng jeneng nalika nampa pesen remot. Iki nyegah deadlocks nalika nameserver mlaku ing mesin sing padha karo daemon syslog.

Sinyal

Syslogd nanggepi sinyal kasebut. Sampeyan bisa kanthi gampang ngirim sinyal menyang syslogd nggunakake:

mateni -SIGNAL `cat / var / run / syslogd.pid`

Sighup

Iki ngijini syslogd nindakake initialization. Kabeh file sing mbukak ditutup, file konfigurasi (default yaiku /etc/syslog.conf ) bakal dibukak lan fasilitas syslog (3) diwiwiti maneh.

SIGTERM

Syslogd bakal mati.

SIGINT , SIGQUIT

Yen debugging bisa diaktifake, ora ana syslogd sing bakal mati.

SIGUSR1

Ngalihake debugging on / off. Opsi iki mung bisa digunakake yen syslogd diwiwiti karo opsi -d debug.

SIGCHLD

Ngenteni anak yen ana wong lair, amarga pesen tembok.

Differential Syntax Gambar Konfigurasi

Syslogd migunakake sintaksis sing rada beda kanggo file konfigurasi tinimbang sumber BSD asli. Originally pesen saka prioritas tartamtu lan ndhuwur dikirim menyang file log.

Contone, baris ing ngisor iki nyebabake ALL output saka daemon nggunakake fasilitas daemon (debug minangka prioritas paling ngisor, supaya kabeh sing luwih dhuwur uga bakal cocok) kanggo pindhah menyang / usr / adm / daemon :

# Sample syslog.conf daemon.debug / usr / adm / daemon

Ing skema anyar, prilaku iki tetep padha. Bentenipun yaiku tambahan saka papat panuduh anyar, tanda bintang ( * ) wildcard, tanda persamaan ( = ), tanda seru ( ! ), Lan tandha minus ( - ).

* Nemtokake manawa kabeh pesen kanggo fasilitas kasebut bakal diarahake menyang panggonan kasebut. Elinga yen prilaku iki degenerate kanthi nemtokake level prioritas debug. Pangguna wis dituduhake yen notasi asterisk luwih intuisi.

Ing = wildcard digunakake kanggo matesi logging menyang kelas prioritas kasebut. Iki ngidini, contone, routing mung debug pesen menyang sumber log ngangkut.

Contone, baris ing ngisor iki ing syslog.conf bakal langsung pesen debug saka kabeh sumber menyang file / usr / adm / debug .

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

Ing ! digunakake kanggo ngilangi pembalakan saka prioritas sing ditemtokake. Iki mengaruhi kabeh (!) Kemungkinan nemtokake prioritas.

Contone, baris ing ngisor iki bakal ngrekam kabeh pesen mail fasilitas kajaba sing nganggo info prioritas menyang file / usr / adm / mail . Lan kabeh pesen saka news.info (kalebu) menyang news.crit (ora kalebu) bakal dikirim menyang file / usr / adm / news .

# Sample syslog.conf mail. *; Mail.! = Info / usr / adm / mail news.info; news.! Crit / usr / adm / news

Sampeyan bisa nggunakake intuitif minangka specifier kajaba. Interpretasi kasebut ing ndhuwur mung dibalik. Nindakake sampeyan bisa nggunakake

mail.none

utawa

mail.! *

utawa

mail.! debug

kanggo ngliwati saben pesen sing diwenehake nganggo fasilitas pangiriman. Ana akeh ruang kanggo muter karo. :-)

Ing - mung bisa digunakake kanggo ater-ater jeneng file yen sampeyan pengin ngilangake file kasebut sakwise nulis wae.

Iki uga nyebabake aklimatisasi kanggo wong-wong sing digunakake kanggo prilaku BSD murni nanging testers wis nudhuhake yen sintaks iki rada luwih luwes tinimbang prilaku BSD. Elinga yen owah-owahan kasebut ora kena pengaruh syslog.conf standar (5) file. Sampeyan kudu ngowahi file konfigurasi khusus kanggo njupuk prilaku sing luwih apik.

Support Kanggo Remote Logging

Modifikasi iki nyedhiyakake support jaringan menyang fasilitas syslogd. Dhukungan jaringan tegese pesen bisa diterusake saka siji simpan syslogd sing mlaku menyang simpul liyane sing mlaku ing syslogd ngendi dheweke bakal mlebu menyang file disk.

Kanggo ngaktifake sampeyan kudu nemtokake opsi -r ing baris perintah. Prilaku default yaiku syslogd ora ngrungokake jaringan kasebut.

Strategi kasebut nduwe syslogd ngrungokake soket domain unix kanggo pesen log kui sacara lokal. Prilaku iki bakal ngijini syslogd bisa ngoperasikake karo syslog sing ditemokake ing perpustakaan standar C. Ing wektu sing padha syslogd ngrungokake port syslog standar kanggo pesen sing dikirimake saka host liyane. Kanggo nduwe fungsi kanthi bener, layanan (5) file (biasane ditemokake ing / etc ) kudu nduweni entri ing ngisor iki:

syslog 514 / udp

Yen entri iki ilang syslogd ora bisa nampa pesen-pesen remot utawa ngirim, amarga port UDP ora bisa dibukak. Nanging, syslogd bakal mati langsung, ngetokake pesen kesalahan.

Kanggo nimbulake pesen diterusake menyang host sing liya ngganti baris file normal ing file syslog.conf kanthi jeneng host sing ngirim pesen dikirim nganggo @.

Contone, kanggo ngirim ALL pesen menyang host remot nggunakake entri syslog.conf ing ngisor iki :

# Sampel konfigurasi syslogd kanggo # pesen menyang host remot maju kabeh. *. * @hostname

Kanggo nerusake kabeh pesen kernel menyang host remot, file konfigurasi bakal kaya mangkene:

# Sampel berkas konfigurasi kanggo nerusake kabeh # pesen kernel menyang host remot. kern. * @hostname

Yen jeneng host remot ora bisa diatasi ing wiwitan, amarga jeneng server ora bisa diakses (bisa diwiwiti sawise syslogd) sampeyan ora perlu khawatir. Syslogd bakal dipindhah maneh kanggo ngrampungake jeneng sepuluh kali lan banjur sambat. Kemungkinan liyane kanggo nyegah iki yaiku kanggo nulis jeneng host ing / etc / hosts .

Kanthi normal syslogd sampeyan bakal njaluk syslog-loops yen ngirim pesen sing ditampa saka host remot menyang inang sing padha (utawa luwih rumit kanggo host katelu sing ngirim bali menyang sing pertama, lan sapiturute). Ing domainku (Infodrom Oldenburg) kita ora sengaja nemokake siji lan disk kita diisi karo pesen tunggal sing padha. :-(

Kanggo ngindhari iki ing wektu luwih ora ana pesen sing ditampa saka inang remot dikirim menyang liyane (utawa padha) remot remot maneh. Yen ana skenario ing ngendi iki ora bisa dipikirake, please drop me (Joey) baris.

Yen host remot dumunung ing domain sing padha karo inang, syslogd lagi mlaku, mung jeneng host sing prasaja bakal dicat tinimbang kabeh file.

Ing jaringan lokal, sampeyan bisa nyedhiyani server log pusat supaya kabeh informasi penting tetep ing siji mesin. Yen jaringan kasebut dumadi saka macem-macem domain, sampeyan ora kudu ngremehake babagan ngangkut jeneng sing lengkap, tinimbang jeneng host sing prasaja. Sampeyan bisa nggunakake fitur Strip-domain saka server iki. Sampeyan bisa mangerteni syslogd kanggo mbusak sawetara domain liyane saka siji server sing ana lan mung log jeneng host sing prasaja.

Nggunakake opsi -l ana uga kemungkinan kanggo netepake host tunggal minangka mesin lokal. Iki uga nyebabake nglebokake jeneng sing samesthine, lan ora ono.

Soket UDP sing digunakake kanggo nerusake pesen menyang host sing adoh utawa kanggo nampa pesen saka wong-wong mau mung dibukak nalika perlu. Ing rilis sadurunge 1.3-23 dibuka saben wektu nanging ora dibukak kanggo maca utawa diterusake.

Output to Named Pipes (FIFOs)

Versi syslogd iki nduweni support kanggo ngangkut output menyang jeneng pipa (fifos). Pipa fifo utawa jenenge bisa digunakake minangka tujuan kanggo pesen log kanthi nyiapake simbol pipy (`'|' ') kanggo jeneng file kasebut. Iki berguna kanggo debugging. Elinga yen fifo kudu digawe kanthi printah mkfifo sadurunge syslogd diwiwiti.

Rute file konfigurasi ing ngisor iki debug pesen saka kernel menyang:

# Konfigurasi sampel kanggo nggoleki kernel debugging # messages ONLY to / usr / adm / debug yaiku # pipe. kern. = debug | / usr / adm / debug

Instalasi Kekuwatan

Ana kemungkinan siji wawasan penting nalika nginstal versi syslogd iki. Versi syslogd iki gumantung marang format format pesen kanthi fungsi syslog. Fungsi fungsi syslog ing pustaka bebarengan diganti nang endi wae ing wilayah libc.so.4. [2-4] .n. Owah-owahan spesifik yaiku null-terminate pesen sadurunge ngirimake menyang soket / dev / log . Fungsi fungsi syslogd versi iki gumantung karo pambusakan pesen kasebut.

Masalah iki biasane nyatakake yen dhasar binary sing ana hubungane statis sing lawas digunakake ing sistem kasebut. Biner nggunakake versi lawas saka fungsi syslog bakal nimbulake garis kosong supaya diblog banjur pesen karo aksara pisanan ing pesen dibusak. Nguripake iki binari menyang versi sing luwih anyar saka perpustakaan bebarengan bakal mbenerake masalah iki.

Kapindho syslogd (8) lan klogd (8) bisa mlaku saka init (8) utawa diwiwiti minangka bagéan saka rc. * Urutan. Yen wis diwiwiti saka init, opsi -n kudu disetel, yen, sampeyan bakal diwenehi ton daemon syslog diwiwiti. Iki amarga init (8) gumantung marang proses ID.

Ancaman Keamanan

Ana potensial kanggo daemon syslogd digunakake minangka saluran kanggo nyerang serangan layanan. Thanks menyang John Morrison (jmorriso@rflab.ee.ubc.ca) kanggo menehi pitutur marang aku iki potensial. Program jahat (mer) bisa gampang nibani daemon syslogd mawa pesen-pesen syslog sing nyebabake file-file log ngonsumsi kabeh ruang sing isih ana ing filesystem . Ngaktifake ngangkut barang liwat soket domain inet mesthi bakal mbedakake sistem kanggo risiko njaba program utawa individu ing mesin lokal.

Ana sawetara cara kanggo nglindhungi mesin:

  1. Nglakoni kernel firewalling kanggo matesi sing sarwa dumadi utawa jaringan duwe akses menyang soket 514 / UDP.
  2. Logging bisa diarahake menyang filesystem sing terisolasi utawa ora-ROOT sing, yen diisi, ora bakal ngrusak mesin kasebut.
  3. Sistem berkas ext2 bisa dipigunakaké sing bisa diatur kanggo matesi persentase tartamtu saka filesystem sing dienggo dening root. CATETAN yen iki bakal mbutuhake syslogd kanggo mbukak minangka proses non-root. Delengen uga , iki bakal nyegah panggunaan ngangkut remot jarak sakdurunge syslogd ora bisa ngiket menyang soket 514 / UDP.
  4. Nonaktifkan soket domain inet bakal matesi resiko kanggo mesin lokal.
  5. Gunakake langkah 4 lan yen masalah tetep lan ora sekunder kanggo program jahat / daemon njaluk dawane 3,5 kaki (kira-kira 1 meter) * lan ngobrol karo pengguna sing dimaksud. Sucker rod def. --- 3/4, 7/8 utawa 1in. roden baja hardened, lanang dienggo ing saben pungkasan. Utami panggunaan ing industri minyak ing North Dakota Kulon lan lokasi liyane kanggo ngompo 'nyedot' minyak saka sumur minyak. Kegunaan sekunder kanggo pambangunan ternak feed sapi lan kanggo dealing karo individu recalcitrant utawa belligerent occasional.

Debugging

Nalika debugging diuripake nggunakake pilihan -d banjur syslogd bakal banget tegese dening nulis akeh apa kang ora ing stdout. Saben file konfigurasi dibukak lan diwiwiti maneh, sampeyan bakal ndeleng tabular, sing cocog karo struktur data internal. Tabel iki kasusun saka papat lapangan:

nomer

Lapangan iki ngandhut nomer seri sing diwiwiti nol. Nomer iki nggantosi posisi ing struktur data internal (yaiku susunan). Yen ana nomer siji sing ditinggal metu, banjur ana kesalahan ing baris sing cocog ing /etc/syslog.conf .

pola

Kothak iki angel lan nggambarake struktur internal persis. Saben kolom tegese fasilitas (deleng syslog (3)). Minangka sampeyan bisa ndeleng, isih ana sawetara fasilitas sing gratis kanggo pamindhahan, mung paling kiwa sing digunakake. Saben lapangan ing kolom nggambarake prioritas (deleng syslog (3)).

tumindak

Bidang iki nggambarake tumindak tartamtu sing saben dina nampa pesen sing cocog karo pola kasebut. Hubungi manut syslog.conf (5) manpage kanggo kabeh tindakan sing bisa.

argumentasi

Bidang iki nuduhake argumen tambahan tumrap ing lapangan pungkasan. Kanggo file-logging iki jeneng filenya kanggo logfile; kanggo log panganggo iki dhaptar pangguna; kanggo remote logging iki jeneng host saka mesin kanggo log; kanggo console-logging iki console digunakake; kanggo tty-logging iki tty kasebut; tembok ora ana argumen tambahan.

Deloken sisan

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

Kolaborasi

Syslogd dijupuk saka sumber-sumber BSD, Greg Wettstein (greg@wind.enjellic.com) nindakake port ing Linux , Martin Schulze (joey@linux.de) ngatasi sawetara bug lan nambah sawetara fitur anyar. Klogd wiwitane ditulis dening Steve Lord (lord@cray.com), Greg Wettstein nggawe perbaikan gedhe.

Dr. Greg Wettstein
Pengembangan Sistem Enjelik

Fasilitas Komputasi Divisi Riset Onkologi
Roger Maris Cancer Center
Fargo, ND
greg@wind.enjellic.com

Stephen Tweedie
Departemen Ilmu Komputer
Universitas Edinburgh, Skotlandia
sct@dcs.ed.ac.uk

Juha Virtanen
jiivee@hut.fi

Shane Alderton
shane@ion.apana.org.au

Martin Schulze
Infodrom Oldenburg
joey@linux.de

Penting: Gunakake perintah wong ( % man ) kanggo ndeleng carane printah sing digunakake ing komputer sampeyan.

Artikel babagan