Syslog - log sistem jaringan. File log Linux secara berurutan ID syslog mana yang memiliki prioritas tertinggi

setan masuk Unix beri nama program yang berfungsi "pada Latar Belakang" , tanpa memerlukan kontrol dari terminal, dan memberi Anda kemampuan untuk melakukan pekerjaan Anda yang lain "di latar depan". Daemon dapat dimulai baik oleh proses lain, misalnya, oleh salah satu skrip startup sistem tanpa mengakses terminal kontrol sama sekali, atau oleh pengguna dari beberapa terminal, tetapi dalam kasus ini juga setan "tidak menangkap" terminal selama pengoperasiannya. Secara alami, muncul pertanyaan program daemon mana yang diperlukan pada sistem Anda, dan program mana yang dapat dinonaktifkan.

Asal istilah
Di dunia nyata (yaitu, non-komputer), istilah (atau kata) "setan" menunjukkan roh (paling sering yang jahat) atau "suara batin". Perlu dicatat bahwa kedua nilai ini juga berlaku untuk daemon Unix. Seperti setan mitologis, setan di Unix bersembunyi di suatu tempat "di belakang layar", berusaha untuk tetap tidak terlihat. Dan, seperti suara hati atau alam bawah sadar kita, mereka selalu "waspada", selalu tersedia, selalu bisa "mewujud". Kata "setan" mewakili salah satu akronim komputer itu, yang asal usulnya sama sulitnya dengan menentukan apakah ada ayam atau telur pada awalnya. Agaknya istilah ini ("DAEMON") berasal dari kata "Disk Dan Monitor Eksekusi" program.

Setelah berangkat untuk mempelajari masalah ini, saya pergi ke salah satu pendeta yang menggunakan komputer dengan sistem operasi Ubuntu. Untuk jaga-jaga, saya mengambil disk dengan Windows. Anda tidak pernah tahu ... Saya orang yang lugas, saya tidak bertele-tele, saya langsung memberikan semua informasi. Dijelaskan panjang dan detail. Alangkah bahagianya saya, dia menerima semuanya dengan tenang, di beberapa tempat, ketika saya sedang berbicara, dia bahkan tersenyum, terutama ketika dia berbicara tentang alasan penolakan suami saudara perempuan saya dari ubuntu. Ayah, pria normal, dia sudah berusia 50 tahun. Kami berbicara sedikit lebih banyak, atau lebih tepatnya saya berbicara, untuk memahami bahwa dia mempelajari dengan benar apa yang saya katakan. Setelah itu, dia memberi tahu saya, saya tidak ingat kata demi kata, tetapi saya tidak dapat mengetahuinya di perekam, jadi saya akan menggambarkannya dengan kata-kata saya sendiri. Secara umum, tidak ada salahnya menggunakan istilah ini di Linux, yang utama adalah iman kepada Tuhan.

Pengantar Layanan

Daemon yang dirujuk di /etc/init.d dirancang untuk dijalankan sebagai layanan atau layanan di Linux. Layanan adalah program yang dimulai dan dihentikan melalui skrip init yang terletak di direktori /etc/init.d. Banyak dari layanan ini dimulai selama fase boot sistem. Utilitas /sbin/service menyediakan antarmuka pengguna (interaksi) dengan skrip inisialisasi. Dan skrip ini sendiri menyediakan antarmuka untuk mengelola layanan, memberikan opsi kepada pengguna untuk memulai, menghentikan, memulai ulang, menanyakan status layanan, dan melakukan tindakan lain pada layanan. Misalnya, skrip inisialisasi layanan httpd memiliki opsi berikut:

/sbin/service httpd Penggunaan: httpd (start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest)

Anda dapat melihat status semua layanan sistem saat ini dengan opsi berikut ke utilitas layanan:

/sbin/service --status-all acpid (pid 2481) sedang berjalan... anacron (pid 2647) sedang berjalan... atd (pid 2657) sedang berjalan... auditd (pid 2189) sedang berjalan...

Informasi tentang run level layanan ini, yaitu, pengaturan level run sistem mana yang dimulai layanan tertentu pada waktu boot sistem, dapat diperoleh atau diubah menggunakan utilitas chkconfig. Mari kita lihat, misalnya, pengaturan saat ini untuk layanan syslog:

/sbin/chkconfig --list syslog syslog 0:mati 1:mati 2:aktif 3:aktif 4:aktif 5:aktif 6:mati

Kita dapat melihat bahwa layanan syslog dimulai secara otomatis ketika Anda naik ke level 2, 3, 4 dan 5. Untuk menonaktifkannya mulai dari level 3 dan 4 (omong-omong, bukan ide yang baik), Anda dapat menggunakan opsi perintah chkconfig berikut:

/sbin/chkconfig --levels 34 syslog off

Utilitas /usr/bin/system-config-services menyediakan antarmuka grafis ke layanan sistem yang memungkinkan Anda untuk melihat dan mengubah status mereka saat ini, serta mengatur startup mereka di berbagai runlevel

Mari kita lihat bagaimana layanan dan daemon ini muncul di output dari perintah ps. Berikut kutipan singkatnya:

UID PID PPID C STIME TTY TIME CMD root 1 0 0 23:36 ? 00:00:00 init root 2161 1 0 23:37 ? 00:00:00 auditd root 2177 1 0 23:37 ? 00:00:00 syslogd -m 0 root 2180 1 0 23:37 ? 00:00:00 klogd -x root 2207 1 0 23:37 ? 00:00:00 mcstransd root 2254 1 0 23:37 ? 00:00:00 rpc.statd root 2287 1 0 23:37 ? 00:00:00 rpc.idmapd root 2577 1 0 23:37 ? 00:00:00 akar crond 2631 1 0 23:37 ? 00:00:00 /usr/sbin/atd root 2654 1 0 23:37 ? 00:00:00 rhnsd --interval 240

Apa yang menarik untuk dicatat di sini (selain, tentu saja, saya begadang di depan komputer hari ini)? Untuk setiap daemon, ID proses induk (PPID) adalah 1. Ini menunjukkan bahwa daemon dimulai oleh proses init selama boot sistem.

Hasil ini dapat dilihat lebih jelas dalam output dari perintah yang berguna seperti "pstree", yang menampilkan "pohon" proses dengan indikasi "orang tua". Berikut ini cuplikan kecil dari output pstree:

Init-+ |-NetworkManager----2*[(NetworkManager)] |-NetworkManagerD |-acpid |-atd |-auditd-+-python | `-(auditd) |-avahi-daemon---avahi-daemon |-bonobo-activati---(bonobo-activati) |-crond |-cupsd---cups-polld |-2* |-dbus-launch |-dhcdbd---dhclient

Lebih lanjut tentang daemon di sistem Anda

Selesai dengan informasi pengantar. Sekarang mari kita bicara tentang daemon sistem satu per satu dan melihat mana yang aman untuk bereksperimen. Saya perhatikan lagi bahwa catatan ini adalah tentang sistem yang menggunakan Red Hat Enterprise Linux Beta 2, dalam konfigurasi tempat kerja. Bergantung pada spesifikasi sistem Anda, Anda mungkin melihat lebih banyak atau lebih sedikit daemon, termasuk beberapa yang tidak tercakup di sini.

Setiap deskripsi daemon berisi tautan ke situs tempat Anda bisa mendapatkan informasi lebih lanjut, tetapi tempat terbaik untuk mulai belajar tentang daemon adalah dengan melihat halaman manual mereka. O'Reilly memiliki daftar perintah Linux yang sangat baik, terdaftar dalam urutan abjad, dan Wikipedia (wikipedia.org) juga memiliki bagian pada sebagian besar daemon ini.Juga, jangan lupa untuk memeriksa file README.

Ini adalah layanan Konfigurasi Lanjut dan Antarmuka Daya (ACPI). ACPI adalah standar industri terbuka yang mendefinisikan tindakan manajemen sistem, terutama deteksi perangkat plug-and-play dan manajemen daya, termasuk startup sistem, shutdown, dan hibernasi.

Anda mungkin tidak boleh menonaktifkan layanan ini kecuali Anda melakukannya untuk tujuan debugging atau menyelesaikan masalah perangkat keras.

Informasi lebih lanjut: http://www.acpi.info

Jika Anda menggunakan laptop, seperti yang dilakukan banyak orang saat ini, satu masalah adalah ketika Anda menugaskan beberapa pekerjaan ke daemon cron, Anda tidak selalu yakin bahwa komputer Anda akan menyala pada saat dijadwalkan untuk menjalankan tugas. Anacron (namanya berasal dari "cron anakronistik" atau sesuatu seperti "cron usang") memecahkan masalah ini dengan memeriksa apakah pekerjaan telah berjalan dalam jangka waktu tertentu. Misalnya, anakron akan menjalankan tugas jika belum berjalan dalam beberapa hari.

Kapan Anda dapat memilih untuk tidak menggunakan anacron? Jika sistem Anda berjalan sepanjang waktu.
Bisakah Anda menolak menjalankan cron jika Anda menjalankan anacron? Bukan; untuk anacron, periode restart pekerjaan hanya dapat diatur dalam hari, bukan menit dan detik.

Informasi tambahan:

Ini adalah daemon Advanced Power Management (APM) melalui driver BIOS. Standar APM dan daemon apmd sekarang telah digantikan oleh ACPI dan acpid. Jika perangkat keras Anda mendukung ACPI, Anda tidak perlu menjalankan apmd.

Ini adalah daemon untuk menjalankan pekerjaan pada waktu tertentu. Jika Anda tidak menggunakannya, Anda dapat mematikannya.

Daemon ini secara otomatis memasang drive dan sistem file yang ditentukan dalam file konfigurasi. Menggunakan daemon ini membuat bekerja dengan drive yang dapat dilepas menjadi lebih nyaman.

Info lebih lanjut: http://freshmeat.net/projects/autofs

Sistem audit Linux terdiri dari pencatatan panggilan sistem tingkat kernel dan alat pencatatan ruang pengguna. Daemon auditd menulis pesan yang dicatat ke disk. Auditd dapat dikonfigurasi, memungkinkan Anda untuk mengontrol dan mengelola informasi apa yang disimpan ke disk.

Apakah saya harus tetap menjalankan auditd? Informasi dari log dapat sangat membantu dalam mengonfigurasi segala sesuatu yang berhubungan dengan keamanan sistem. Misalnya, auditd digunakan dalam pencatatan peristiwa SELinux. Ada juga utilitas seperti aureport yang memungkinkan Anda melihat log audit. Berikut adalah contoh laporan yang dihasilkan oleh utilitas aureport:

rangkuman laporan
======================

Rentang waktu dalam log: 28/11/2006 06:07:04.800 - 02/06/2007 21:10:09.957 Waktu yang dipilih untuk laporan: 31/12/1969 19:00:00 - 02/06/2007 21: 10:09.957 Jumlah perubahan dalam konfigurasi: 285 Jumlah perubahan pada akun, grup, atau peran: 32 Jumlah login: 145 Jumlah login yang gagal: 11 Jumlah pengguna: 2 Jumlah terminal: 22 Jumlah nama host: 11 Jumlah dari executable: 27 Jumlah file: 91 Jumlah penolakan AVC: 688 Jumlah peristiwa MAC: 12 Jumlah panggilan sistem yang gagal: 404 Jumlah peristiwa anomali: 0 Jumlah tanggapan terhadap peristiwa anomali: 0 Jumlah peristiwa kripto: 0 Jumlah proses ID: 14022 Jumlah acara: 70694 Avahi-daemon dan avahi-dnsconfd

Situs web Avahi mendefinisikannya sebagai berikut: "Avahi adalah sistem yang menyediakan kemampuan untuk menemukan layanan di jaringan lokal. Ini berarti bahwa setelah menghubungkan komputer Anda ke jaringan lokal, Anda dapat langsung menemukan printer yang tersedia, melihat bagian apa saja yang tersedia di jaringan, cari tahu pengguna jaringan lain mana yang dapat Anda ajak mengobrol dan seterusnya". Avahi adalah implementasi dari protokol Zeroconf. Dan Zeroconf adalah pendekatan yang memungkinkan pengguna untuk membuat jaringan IP tanpa layanan konfigurasi khusus seperti server DNS.
Penggunaan avahi-daemon yang paling umum adalah dengan Rhythmbox, sehingga Anda dapat melihat file musik yang dibagikan dengan orang lain. Jika Anda tidak membagikan musik atau file dari komputer Anda, Anda dapat menonaktifkan daemon ini.

Informasi lebih lanjut: http://avahi.org, http://zeroconf.org

Bluetooth dan daemon hidd dan pand

Nama-nama itu sendiri menjelaskan segalanya. Mulai layanan ini jika Anda ingin menggunakan perangkat Bluetooth. Nama daemon yang diluncurkan sebenarnya adalah hcid (Host Controller Interface Daemon).

Nama daemon hidd berasal dari "Daemon Perangkat Antarmuka Manusia Bluetooth". Ini menyediakan dukungan keyboard, mouse, dan trackball melalui protokol Bluetooth. Dan daemon pand mendukung menghubungkan komputer Anda ke jaringan ethernet melalui Bluetooth.

Info lebih lanjut: http://www.bluetooth.com.

Daemon ini mendukung Antarmuka Pemrograman Aplikasi ISDN Umum (Antarmuka Pemrograman Aplikasi Jaringan Digital Layanan Terpadu). Itu harus dijalankan jika Anda terhubung ke komponen ISDN perangkat keras. Layanan ini dimulai capiinit.

Informasi lebih lanjut: http://www.capi.org/pages

Tidak, ini tidak ada hubungannya dengan acara investasi real estat larut malam. Layanan conman (dan daemon conmand) mendukung manajemen konsol. Menyediakan dukungan untuk beberapa perangkat konsol dan pekerjaan pengguna secara simultan, dukungan untuk perangkat serial lokal dan server terminal jarak jauh (menggunakan protokol telnet). Jika Anda mengelola beberapa server, Anda mungkin perlu menggunakan conman.

Informasi lebih lanjut: http://home.gna.org/conman/
kecepatan cpu

Daemon ini mengubah kecepatan CPU untuk mengurangi konsumsi energi. Jika CPU dalam keadaan idle, Anda dapat mengurangi kecepatan, sehingga mengurangi biaya energi, dan untuk meningkatkan kinerja, Anda harus meningkatkan konsumsi daya. Jika Anda bekerja untuk komputer laptop, masuk akal untuk menjalankan cpuspeed.

Informasi lebih lanjut: http://carlthompson.net/Software/CPUSpeed
crond

Setan ini untuk mulai otomatis tugas. Ini diperlukan pada semua sistem Linux dan Unix. Jangan hentikan atau nonaktifkan layanan ini.

Informasi lebih lanjut: http://www.unixgeeks.org/security/newbie/unix/cron-1.html , http://www.linuxhelp.net/guides/cron/

CUPS dan cups-config-daemon

Ini adalah daemon "Solusi Pencetakan UNIX Umum". Seperti namanya, ini adalah sistem pencetakan yang memungkinkan Anda bekerja dengan berbagai format file dan berbagai jenis printer. Jika Anda ingin mencetak, jalankan daemon ini di sistem Anda.

Informasi lebih lanjut: http://www.cups.org, http://www.easysw.com/cups/index.php

Nama daemon ini merupakan singkatan dari "DHcp Client D-Bus Daemon". Wiki Desktop Gratis memberikan definisi berikut:

D-Bus adalah sistem bus pesan, cara sederhana bagi aplikasi untuk berkomunikasi (atau berinteraksi) satu sama lain. Selain komunikasi antarproses, D-Bus membantu mengoordinasikan siklus hidup suatu proses; ini menyediakan implementasi kode yang sederhana dan kuat dari kemampuan untuk menjalankan "contoh tunggal" dari aplikasi atau daemon, memungkinkan aplikasi dan daemon dimulai sesuai permintaan, ketika kebutuhan akan layanan yang sesuai muncul.

Apakah Anda perlu menjalankan daemon ini? Jika sistem Anda terhubung ke jaringan (apa lagi?), terutama jika Anda berpindah antar jaringan (misalnya, beralih dari jaringan kabel ke jaringan nirkabel), maka Anda harus menjalankan NetworkManager (kita akan melihat NetworkManager sebentar lagi) .

Daemon dhcdbd menyediakan antarmuka D-Bus untuk dhclient, klien DHCP ISC. Ini memungkinkan NetworkManager untuk mengakses dan mengelola dhclient.

Informasi lebih lanjut: http://www.freedesktop.org/wiki/Software/dbus

Daemon ini memberi Anda kemampuan untuk menggunakan mouse di aplikasi konsol (berbasis teks) seperti pengelola file Komandan tengah malam. Ini mungkin berguna jika Anda sering menggunakan konsol; jika tidak, yaitu jika Anda bekerja melalui Sistem X Window sepanjang waktu, Anda mungkin tidak memerlukan gpmd.

Bukan, ini bukan komputer jahat dari 2001: A Space Odyssey. Dalam konteks ini, HAL adalah singkatan dari "Lapisan Abstraksi Perangkat Keras" - "lapisan abstraksi perangkat keras". Daemon HAL mengumpulkan (menggunakan kernel dan perangkat itu sendiri) informasi tentang perangkat keras dan menyediakannya untuk aplikasi secara konsisten.

Jangan nonaktifkan layanan ini. Banyak aplikasi yang menggunakannya.

Informasi lebih lanjut: "Konfigurasi desktop dan perangkat keras," oleh David Zeuthen

Daemon ini menyediakan dukungan untuk sistem HP Linux Imaging and Printing (HPLIP) yang digunakan untuk mencetak, memindai, dan mengirim faks pada inkjet dan perangkat laser dari HP. HPLIP berinteraksi dengan CUPS, memungkinkan CUPS untuk mengakses perangkat dari HP.

Informasi tambahan:

Ini adalah daemon database relasional di Jawa. Itu mewarisi namanya dari proyek SQL Hypersonic, yang tidak lagi dipertahankan. hsqldb banyak digunakan dalam proyek open source seperti OpenOffice.org dan juga dalam program demo karena dapat dijalankan seluruhnya dalam RAM. Karena itu ia bekerja dengan cepat. Apakah Anda perlu memulai layanan ini? Hanya jika Anda menjalankan beberapa program yang menggunakannya. Tapi secara umum sangat alat yang berguna dan jika Anda tidak terbiasa dengannya, ada baiknya melihatnya.

Informasi lebih lanjut: http://hsqldb.org , http://dba.openoffice.org

server web Apache. Digunakan oleh hampir 60% dari semua situs web. Jika Anda ingin memelihara situs web, Anda menjalankan Apache. Apakah ada lagi yang bisa dikatakan?

Informasi lebih lanjut: http://httpd.apache.org

ip6tables dan iptables

Ini adalah firewall atau firewall. Menurut Wikipedia, “Firewall atau firewall (jar.firewall atau firewall dari bahasa Inggris firewall) adalah seperangkat perangkat keras dan/atau perangkat lunak yang mengontrol dan menyaring paket jaringan yang melewatinya pada berbagai tingkat model OSI sesuai dengan aturan yang ditentukan. tugas utama firewall adalah perlindungan jaringan komputer atau node individu dari akses yang tidak sah."

Iptables bekerja dengan menentukan aturan penyaringan paket IPv4 dalam bentuk tabel kernel. Paket masuk dan keluar diperiksa berdasarkan aturan ini, dan paket yang tidak sesuai dengan aturan akan diblokir. Ip6tables melakukan hal yang sama untuk paket IPv6.

Manakah dari dua layanan yang harus dimulai? Keduanya. Selalu. Web adalah hal yang berbahaya!

Informasi lebih lanjut: http://www.netfilter.org , http://www.ipv6.org

IrDA (Infrared Data Association) adalah standar industri untuk komunikasi nirkabel antar perangkat melalui inframerah. Sebagian besar laptop dilengkapi dengan pemancar inframerah yang sesuai dengan standar IrDA. Anda perlu memulai layanan ini hanya jika Anda akan mengatur komunikasi dengan perangkat lain melalui inframerah.

Informasi tambahan:

irqbalance

Daemon ini berkaitan dengan distribusi interupsi perangkat keras antara CPU dalam arsitektur multiprosesor SMP (prosesor simetris) untuk meningkatkan kinerja.

Pada sistem uniprosesor, daemon ini tidak perlu dijalankan; efeknya hanya mempengaruhi sistem multiprosesor.

Informasi lebih lanjut: http://www.irqbalance.org

Ini adalah iblis yang sangat berguna. Ini berjalan saat boot dan memeriksa perangkat keras apa yang telah ditambahkan atau dihapus dari sistem. Masuk akal untuk menjalankan kudzu pada saat boot, bahkan jika Anda tidak berencana untuk sering menambah atau menghapus perangkat. Karena cepat atau lambat Anda masih akan menemukan diri Anda dalam situasi di mana Anda menambahkan beberapa perangkat dan mengharapkan sistem untuk mendeteksinya. Selain itu, karena kudzu bekerja selama fase boot, itu tidak mempengaruhi kinerja sistem secara negatif.

Informasi lebih lanjut: http://fedora.redhat.com/projects/additional-projects/kudzu

Daemon ini mengambil namanya dari Server Informasi Lan. Lisa menyediakan fungsionalitas yang serupa dengan yang disediakan oleh layanan "My Network Neighborhood" di MS-Windows, yaitu menyediakan akses ke server di jaringan lokal Anda, termasuk server CIFS (Common Internet File Systems). lisa bekerja melalui protokol TCP/IP, mengirimkan permintaan ICMP ke alamat IP dalam rentang yang Anda tentukan dalam file konfigurasi dan menunggu komputer mana yang merespons.

Info lebih lanjut: http://docs.kde.org/stable/en/kdenetwork/lisa , http://docs.kde.org/userguide/networking-with-windows.html .

lm_sensors

Daemon ini memonitor suhu dan voltase pada motherboard. Agar sistem pemantauan berfungsi, perlu memiliki sensor yang sesuai di dalam peralatan. Menjalankan daemon ini hanya masuk akal jika dukungan perangkat keras disediakan. Anda mungkin tidak boleh menjalankannya di stasiun kerja biasa. Ini agak dibutuhkan pada server hi-end yang melakukan fungsi-fungsi penting.

Informasi lebih lanjut: http://www.lm-sensors.org , http://freshmeat.net/projects/lm_sensors

mcstrans

Daemon Sistem Terjemahan Konteks SELinux. Daemon ini mengubah informasi konteks keamanan menjadi bentuk yang dapat dibaca manusia. Anda dapat menghentikan daemon ini, tetapi dalam kasus ini Anda akan melihat bahwa informasi SELinux yang diberikan oleh perintah ls -Z akan berubah. Misalnya, dengan menjalankan daemon, Anda akan melihat:

Ls -Z -rw-r--r-- jsmith jsmith user_u:object_r:user_home_t bookmarks.html drwxr-xr-x jsmith jsmith user_u:object_r:user_home_t hello -r--r--r-- jsmith jsmith user_u:object_r :user_home_t halo.c

Dan jika daemon dihentikan, Anda akan melihat yang berikut:

Ls -Z -rw-r--r-- jsmith jsmith user_u:object_r:user_home_t:s0 bookmarks.html drwxr-xr-x jsmith jsmith user_u:object_r:user_home_t:s0 Desktop -r-xr-xr-x jsmith jsmith user_u :object_r:user_home_t:s0 hello -r--r--r-- jsmith jsmith user_u:object_r:user_home_t:s0 hello.c

Perhatikan bahwa jika daemon dihentikan, nilai konteks keamanan "s0" akan ditampilkan. Mctrans di kasus ini mengatur ulang konteksnya. Nilai konteks keamanan lainnya dikonversi dari nilai alfanumerik ke namanya.

Informasi lebih lanjut: http://fedoraproject.org/wiki/SELinux/Understanding , http://danwalsh.livejournal.com

mdmonitor dan mdmpd

Kedua daemon ini digunakan dalam sistem penyimpanan dengan array RAID (array redundan dari disk murah/independen). Mdmonitor memulai, menghentikan, dan memulai ulang mdadm (pemantauan dan manajemen perangkat multipath), layanan perangkat lunak pemantauan dan manajemen RAID. Anda hanya perlu memulai layanan ini jika Anda memiliki perangkat RAID di sistem Anda.

Informasi tambahan: http://www.linuxdevcenter.com/pub/a/linux/...12/05/RAID.html

bus pesan

Ini adalah daemon bus pesan sistem D-BUS. Ini menyiarkan peristiwa dan peristiwa sistem seperti perubahan pada antrian cetak, atau perangkat yang ditambahkan atau dihapus (perhatikan bahwa ini tidak sama dengan apa yang kudzu lakukan, karena peristiwa tersebut dapat terjadi kapan saja selama operasi sistem, tidak hanya selama pemuatan) .

Informasi lebih lanjut: http://www.freedesktop.org/software/dbus

netplugd dan ifplugd

Daemon ini mengonfigurasi perangkat Ethernet saat kabel jaringan tersambung dan menonaktifkan perangkat tersebut saat kabel terputus. Kapan Anda membutuhkannya? Misalnya, pada laptop, sehingga koneksi jaringan dipulihkan hanya untuk saat kabel jaringan terhubung.

Perhatikan bahwa netplugd telah ditinggalkan dan sekarang digantikan oleh ifplugd.

Informasi lebih lanjut: http://0pointer.de/lennart/projects/ifplugd

NetworkManager dan NetworkManagerDispatcher

Daemon NetworkManager mengotomatiskan peralihan antar koneksi jaringan. Daemon ini berguna untuk pengguna laptop yang beralih antara koneksi WiFi nirkabel dan Ethernet. Daemon NetworkManagerDispatcher secara otomatis menjalankan skrip untuk melakukan operasi yang diperlukan (misalnya, skrip untuk menetapkan arah perutean paket tertentu) saat NetworkManager mengubah status jaringan.

Informasi lebih lanjut: http://www.gnome.org/projects/NetworkManager

Ini adalah daemon yang bertindak sebagai Server Nama Domain. Anda hanya boleh menjalankannya jika komputer Anda adalah server DNS untuk jaringan Anda.

Informasi lebih lanjut: http://www.dns.net/dnsrd

Daemon nfsd memelihara protokol komunikasi jaringan nfs, yang digunakan untuk menyediakan akses ke sumber daya jaringan dalam jaringan TCP/IP. Anda perlu menjalankannya jika Anda memberi pengguna lain akses ke sistem file Anda menggunakan protokol nfs.

Informasi tambahan:

Ini adalah daemon caching untuk layanan nama. Itu memelihara tabel grup dan kata sandi untuk menjalankan program, dan kemudian mengembalikan hasil yang diingat pada permintaan berikutnya untuk layanan yang jika tidak terlalu lambat, seperti NIS atau LDAP. Jika Anda menjalankan layanan ini, Anda juga harus menjalankan nscd.

Ini adalah daemon yang mendukung Network Time Protocol. Ini mengatur waktu sistem dan menyinkronkannya dengan waktu yang ditetapkan oleh server Internet yang mempertahankan referensi waktu. Jika sistem Anda terhubung ke Internet (bukan?), maka daemon ini akan memastikan bahwa waktu sistem di komputer Anda disetel dengan benar.

Informasi lebih lanjut: http://www.ntp.org

Daemon oddjobd menjalankan layanan com.redhat.oddjob pada bus sistem. Setiap kesempatan yang diberikan oleh oddjobd disediakan sebagai metode terpisah D bis. Oddjobd menyediakan dukungan operasi istimewa untuk aplikasi non-istimewa.

Anda hanya boleh menjalankan daemon ini jika Anda menjalankan aplikasi yang membutuhkannya, seperti Conga.

Info lebih lanjut: http://people.redhat.com/nalin/oddjob/oddjob.html.

Daemon ini mendukung jaringan pribadi virtual (jaringan pribadi virtual, VPN). Skrip awal untuk daemon ini mengatakan:

OpenVPN adalah aplikasi tunneling yang aman dan sangat fleksibel yang menggunakan kemampuan enkripsi, otentikasi, dan sertifikasi dari library OpenSSL untuk menyediakan tunnel yang aman melalui jaringan IP melalui satu port UDP.

Jika sistem Anda adalah host VPN, maka Anda mungkin harus menjalankan OpenVPN.

Informasi lebih lanjut: http://openvpn.net

pcscd (PC/SC Smart Card Daemon) adalah daemon untuk pcsc-lite (perangkat lunak akses kartu pintar) dan (berbasis java) lingkungan pengembangan MuscleCard. Ini menyediakan komunikasi dengan pembaca kartu pintar dan kartu pintar itu sendiri.

(Kartu pintar adalah papan kecil di mana modul memori terpasang, atau mikroprosesor dengan modul memori. Dan Muscle adalah singkatan dari Gerakan untuk Penggunaan Kartu Pintar di Lingkungan Linux (gerakan untuk penggunaan kartu pintar di lingkungan Linux).

Informasi lebih lanjut: http://www.smartcardalliance.org , http://pcsclite.alioth.debian.org , http://www.linuxnet.com/musclecard/index.html

Daemon portmapper mengelola koneksi remote procedure call (RPC). Ini mengubah nomor program RPC ke nomor port protokol TCP/IP (atau UDP/IP). Portmapper paling sering digunakan oleh layanan NFS dan NIS.

Jadi jika sistem Anda bergantung pada NIS atau NFS, jangan nonaktifkan daemon portmap.

Informasi lebih lanjut: http://www.linux-nis.org/nis-howto/HOWTO/portmapper.html

Ini adalah agen transfer (pengangkutan) surat. Jika sistem Anda bukan relai email, Anda tidak perlu memulai layanan ini.

Informasi lebih lanjut: http://www.postfix.org

Daemon ini (daemon penemuan router) menemukan rute pada subnet lokal. Ini dijalankan pada saat boot untuk mengisi tabel routing dengan rute default.

Informasi lebih lanjut: http://www.informit.com/articles/article.asp?p=23951&rl=1

memulihkan kondisi

Ini adalah daemon dari SELinux. Restorecond melacak pembuatan file (untuk file yang terdaftar di /etc/selinux/restorecond.conf) dan memastikan bahwa file memiliki konteks file yang benar sesuai dengan kebijakan yang ditetapkan (kebijakan), dan menentukan konteks file SELinux default.

Jangan nonaktifkan layanan ini. Ini diperlukan untuk SELinux.

Informasi lebih lanjut: http://fedoraproject.org/wiki/SELinux/Understanding , http://danwalsh.livejournal.com/

Daemon ini secara berkala memeriksa operasi apa yang harus dilakukan melalui antarmuka jaringan Red Hat (antarmuka web Red Hat Network), dan menjalankannya. Operasi ini termasuk menginstal, menghapus atau memperbarui perangkat lunak, mem-boot ulang sistem, menginstal file konfigurasi, dan sebagainya.

Informasi lebih lanjut: https://www.redhat.com/rhn/

rpcgssd, rpcidmapd dan rpcsvcgssd

Daemon rpcgssd dan rpcsvcgssd digunakan untuk memberikan keamanan saat bekerja melalui RPC. Rpcidmapd mengonversi nama pengguna menjadi nomor UID dan GID.

Jika Anda menggunakan NFS atau NIS, daemon ini harus dijalankan.

Informasi tambahan:

readahead_early dan readahead_later

Daemon readahead memastikan bahwa program yang digunakan pada startup sistem dimuat ke dalam memori sebelum digunakan, yang mengurangi waktu boot.

saslauthd

Ini adalah daemon server otentikasi SASL. SASL (Simple Authentication and Security Layer) menambahkan kemampuan otentikasi ke protokol berdasarkan koneksi jarak jauh.

Informasi lebih lanjut: http://asg.web.cmu.edu/sasl

sendmail

Ini adalah server SMTP (Simple Mail Transfer Protocol). Sendmail meneruskan email dari satu sistem ke sistem lain, yaitu, itu adalah agen transportasi surat (Mail Transport Agent). Jika Anda menggunakan ini program email seperti Thunderbird atau Evolution, Anda tidak perlu menjalankan sendmail.

Informasi lebih lanjut: http://www.sendmail.org

memecahkan masalah

Ini adalah daemon resolusi masalah SELinux. Pemecah masalah adalah salah satu tambahan terbaru yang bagus untuk SELinux. Pemecah masalah memberikan umpan balik pengguna waktu nyata tentang kegagalan SELInux AVC (Access Vector Cache). Selain itu, umpan balik ini disediakan dalam format yang nyaman.

Info lebih lanjut: https://hosted.fedoraproject.org/projects/setroubleshoot

Daemon ini memantau sensor SMART (Self-Monitoring, Analysis and Reporting Technology) yang ditemukan di banyak jenis drive, seperti hard drive SCSI-3. Daemon memantau operasi normal perangkat tersebut dan melakukan pengujian mandiri. Jika perangkat keras Anda mendukung teknologi SMART, Anda perlu menjalankan layanan ini.

Informasi tambahan:

pembunuh spam

Daemon ini menggunakan program Apache SpamAssassin untuk memeriksa email dari spam. Biasanya dijalankan bersama dengan server agen pengiriman surat (MDA). Jika Anda menggunakan program klien seperti Thunderbird atau Evolution untuk mengakses email Anda, Anda tidak perlu menjalankan spamassassin.

Informasi lebih lanjut: http://spamassassin.apache.org

Ini adalah daemon untuk protokol ssh terbuka. Ssh menggantikan program tidak aman rsh dan rlogin dan menyediakan komunikasi terenkripsi antara host di jaringan tidak aman. Jika Anda menggunakan koneksi ke sistem lain melalui buka internet, Anda harus menggunakan ssh dan menjalankan daemon ini.

Informasi lebih lanjut: http://www.ssh.com , http://www.openssh.com

syslog adalah sistem pencatatan standar untuk Linux. Jangan matikan.

Informasi lebih lanjut: http://www.syslog.org

Daemon ini adalah bagian dari paket Samba. Ini memungkinkan pengguna domain Windows untuk terhubung sebagai pengguna Unix ke server Unix. Anda harus menjalankan daemon ini jika Anda berurusan dengan jaringan campuran komputer Windows dan Linux/Unix.

Informasi lebih lanjut: http://www.samba.org/samba/docs/man/Samba-...on/winbind.html , http://www.samba.org

Ini adalah server font. Daemon ini memuat font ke dalam memori untuk membuat aplikasi grafis berjalan lebih cepat daripada jika mereka harus memuat font dari hard drive. Layanan ini harus berjalan untuk meningkatkan kinerja aplikasi di sistem Anda.

Info lebih lanjut: http://linuxreviews.org/howtos/xfree/xfs

Layanan ini menghubungkan klien NIS dengan domain NIS. "yp" dalam namanya berasal dari "halaman kuning", karena direktori NIS seperti direktori telepon "halaman kuning". Anda hanya perlu memulai layanan ini jika sistem Anda menggunakan NIS (Network Information Service) untuk menyediakan akses ke anggaran pengguna dan nama sistem.

Informasi lebih lanjut: http://www.linux-nis.org

yum-updated

yum-updatesd memantau pembaruan perangkat lunak dan mengirimkan pemberitahuan pembaruan ini melalui email, d-bus, atau pesan sistem, dan juga dapat melakukan pembaruan otomatis PADA. Pesan D-bus diterima oleh utilitas "puplet" (pembaru paket), yang memberi tahu pengguna bahwa pembaruan tersedia dan memungkinkan pengguna untuk menginstal pembaruan.

Info lebih lanjut: http://linux.duke.edu/projects/yum, http://www.redhat.com/magazine/024oct06/features/fc62

Terimakasih untuk kebun binatang untuk informasi yang disediakan di situs http://www.centrlan.ru/node/17929

Sumber tidak ditentukan

Setiap pengguna Linux pemula cepat atau lambat menghadapi beberapa masalah dalam menyiapkan dan mengatur fungsi sistem mereka. Dan setiap pemula hampir pasti mendengar saran dari pengguna yang lebih berpengalaman: "Lihat lognya." Sarannya bagus, tetapi seorang pemula masih perlu tahu: apa itu log dan di mana mencarinya! Jadi saya akan mencoba di artikel ini untuk memberi tahu Anda apa dan di mana harus menonton.

Dalam bahasa gaul pemrogram, "log" disebut protokol kerja yang dikelola baik oleh sistem operasi itu sendiri maupun secara independen oleh banyak program. Kata "jurnal" sering digunakan sebagai sinonim untuk kata "protokol" dalam pengertian ini. Ada dua situasi utama di mana kebutuhan untuk menganalisis protokol muncul: ketika sesuatu dalam sistem tidak berfungsi seperti yang kita harapkan (penyelesaian masalah), dan ketika ada kecurigaan bahwa sistem telah diretas oleh beberapa penyerang dan kita perlu mencari tahu persis apa yang terjadi bagaimana hal itu dilakukan, dan apa yang perlu dilakukan untuk menghilangkan konsekuensi dari invasi.

Salah satu kasus paling terkenal dalam menggunakan file log untuk mendeteksi penyusup adalah kisah penangkapan peretas terkenal Kevin Mitnick oleh spesialis keamanan komputer Tsuomo Shimomura. Berikut adalah satu paragraf dari artikel yang menjelaskan bagaimana hal itu terjadi.

"Pada Hari Natal, ketika Shimomura pergi bermain ski di Nevada untuk berlibur, seseorang (kita sudah tahu siapa) membobol komputer rumahnya yang super-aman di Solana Beach, California, dan mulai menyalin file - ratusan file rahasia. Seorang mahasiswa pascasarjana dari Supercomputing Center di San Diego, tempat Shimomura bekerja, melihat perubahan dalam file "log" (log) sistem dan dengan cepat mengetahui apa yang terjadi. Semua ini dimungkinkan karena fakta bahwa Shimomura menginstal program di komputernya yang secara otomatis menyalin catatan "log" ke komputer cadangan di San Diego. Siswa itu menelepon Shimomura, yang bergegas pulang untuk menginventarisasi barang-barang curian."

Saya tidak akan menceritakan keseluruhan cerita di sini, penting bagi kami untuk dicatat hanya bahwa analisis protokol operasi sistem berfungsi sebagai dasar keberhasilan penyelidikan pelanggaran yang dilakukan. Anda dapat menemukan deskripsi yang lebih rinci tentang bagaimana investigasi semacam itu dilakukan di artikel. Tetapi untuk dapat menggunakan hasil logging, seseorang harus memahami bagaimana protokol dibuat, di mana mereka disimpan dan apa yang dapat diekstraksi darinya. Artikel ini dikhususkan untuk mempertimbangkan semua pertanyaan ini.

Bagaimana pesan dibuat untuk protokol

Kita harus mulai dengan fakta bahwa ketika membuat program dalam bahasa C, programmer memiliki kesempatan, jika perlu, untuk memasukkan panggilan ke fungsi khusus. openlog, setlogmask, syslog dan closelog, termasuk dalam pustaka standar C. Fungsi-fungsi ini digunakan untuk mengirim pesan tentang peristiwa tertentu selama eksekusi program ke daemon sistem khusus syslogd, memimpin protokol sistem. Fungsi buka log membuat koneksi dengan iblis syslogd, fungsi syslog menghasilkan pesan khusus untuk ditulis ke protokol, dan fungsinya closelog menutup koneksi terbuka.

Pesan yang dihasilkan oleh fungsi syslog, terdiri dari beberapa bidang yang dipisahkan oleh spasi. Setiap pesan dimulai dengan bidang PR, yang dalam bentuk encode berisi informasi tentang kategori pesan (fasilitas) dan tingkat keparahan (severity level) atau prioritas (prioritas) pesan.

Kategori (fasilitas) adalah informasi tentang kelas mana dari pesan yang diberikan. Kategori dikodekan sebagai angka dari 0 hingga 23. Kategori berikut ada (didefinisikan dalam file /usr/include/sys/syslog.h):

Tabel 1.

Nilai angkaSimbolDekripsi
0 lelaki yg tdk terpelajar Pesan kernel
1 pengguna Dirancang untuk berbagai pesan dari program pengguna (pesan dari program pengguna)
2 surat Pesan dari sistem surat.
3 daemon Pesan dari daemon sistem yang, tidak seperti FTP atau LPR, tidak memiliki kategori yang dialokasikan secara khusus untuk mereka.
4 auth Apa pun yang terkait dengan otorisasi pengguna, seperti login dan su (keamanan/izin)
5 syslog Sistem logging dapat mencatat pesan dari dirinya sendiri.
6 lpr Pesan dari sistem pencetakan.
7 berita Pesan dari server berita. (Berita Net, USENET)
8 uucp Pesan dari Protokol Salinan UNIX-ke-UNIX. Ini adalah bagian dari sejarah UNIX, dan kemungkinan besar Anda tidak akan pernah membutuhkannya (walaupun sebagian pesan email masih dikirimkan melalui UUCP).
9 cron Pesan dari penjadwal sistem.
10 authpriv Sama seperti auth, tetapi pesan dalam kategori ini ditulis ke file yang hanya dapat dibaca oleh beberapa pengguna (mungkin kategori ini disorot karena pesan yang termasuk dalam kategori ini mungkin berisi kata sandi publik pengguna yang tidak boleh dilihat oleh orang yang tidak berwenang, dan karenanya log file harus memiliki izin yang sesuai).
11 ftp Dengan kategori ini Anda dapat mengkonfigurasi server FTP Anda untuk merekam tindakannya.
dari 12 hingga 15 - Dicadangkan untuk penggunaan sistem.
dari 16 hingga 23lokal0 - lokal7 Kategori yang dicadangkan untuk digunakan oleh administrator sistem. Kategori local7 biasanya digunakan untuk pesan yang dihasilkan selama boot sistem.

Kategori auth memiliki sinonim nama yang usang keamanan, yang tidak dianjurkan. Selain itu, ada kategori khusus tanda(tidak memiliki padanan digital), yang ditetapkan ke pesan individual yang dihasilkan oleh daemon itu sendiri syslogd. Kategori ini digunakan untuk menempatkan tanda khusus dalam log pada interval waktu tertentu (setiap 20 menit secara default), yang memungkinkan, misalnya, untuk mengetahui dengan akurasi 20 menit saat komputer Anda macet.

Perhatikan bahwa kategori tidak ada hubungannya dengan nama program yang mengirim pesan ke daemon. syslogd. Seperti yang mereka katakan, kebetulan apa pun adalah kebetulan murni. Selain itu, beberapa program dapat menghasilkan pesan dari berbagai kategori. Misalnya, setan telnetd dalam kasus upaya logging yang gagal menghasilkan pesan kategori authpriv, dan dalam kasus lain mengkategorikan postingan mereka sebagai daemon.

Parameter kedua, atas dasar pembentukan nilai bidang PR, adalah tingkat atau prioritas pesan (priority), yaitu informasi tentang derajat kepentingan pesan. 8 tingkat kepentingan diatur secara default (mereka juga didefinisikan dalam file /usr/include/sys/syslog.h), yang dikodekan dengan angka dari 0 hingga 7:

Meja 2.

Nilai angkaSimbol Dekripsi
0 muncul(nama lama untuk PANIC) Keadaan darurat. Sistem tidak dapat dioperasikan.
1 peringatan Kecemasan! Intervensi segera diperlukan.
2 kritik Kesalahan kritis (critical state).
3 berbuat salah(nama lama ERROR) Pesan eror.
4 peringatan(nama lama untuk WARN)Peringatan.
5 melihat Informasi tentang beberapa peristiwa normal tetapi penting.
6 informasi Pengumuman.
7 debug Pesan yang dihasilkan selama debugging.

Bidang PR pesan dibentuk sebagai berikut: nilai numerik kategori dikalikan 8 dan ditambahkan ke nilai numerik prioritas, nomor yang dihasilkan diapit dalam tanda kurung siku dan ditulis di lapangan.

Mengikuti medan PR Bidang berikut disertakan dalam pesan:

  • TIMESTAMP- waktu pembuatan pesan,
  • NAMA HOST- nama host atau alamat IP dalam notasi desimal,
  • MSG- teks pesan arbitrer - beberapa teks (informasi) string dalam kode AS-ASCII (0x20 - 0x7e).

Waktu (lokal!) ditulis dalam format: 13 Feb 21:12:06. Jika nomor hari adalah satu digit, maka didahului dengan spasi tambahan (bukan 0!). Perhatikan tidak adanya tahun dan zona pada tanggal, yang harus diperhitungkan saat mengatur penyimpanan jangka panjang file protokol. Agar waktu dalam pesan menjadi benar, itu harus disinkronkan (misalnya, menggunakan protokol NTP).

Nama host disertakan dalam pesan agar tidak membingungkan pesan dari host yang berbeda, karena, seperti yang akan ditunjukkan di bawah, logging dapat dilakukan di salah satu komputer khusus di jaringan. Nama host adalah nama jaringan sederhana komputer, tanpa menentukan domain. Jika komputer memiliki beberapa antarmuka dengan alamat IP yang berbeda, maka salah satu dari mereka dapat digunakan sebagai nama atau alamat host.

Pesan teks ( MSG) biasanya berisi label ( MENANDAI) menunjuk ke program atau proses yang mengeluarkan pesan, dan isi pesan ( ISI). Label mungkin berisi huruf dan angka Latin. Biasanya, label adalah nama program sederhana, terkadang diikuti oleh ID proses yang diapit dalam tanda kurung siku. Isi pesan dipisahkan dari label dengan karakter khusus - di Linux ini biasanya berupa titik dua dan spasi.

Menangani pesan dengan syslogd

Semua pesan dihasilkan program individu menggunakan fungsi syslog, dikirim melalui soket /dev/log daemon sistem syslogd, yang bertanggung jawab untuk memproses pesan-pesan ini. Saya harus mengatakan bahwa, pada kenyataannya, dua daemon logging diluncurkan di sistem - syslogd dan klogd. Kedua daemon sudah termasuk dalam paket syslogd, versi terbaru yang dapat Anda temukan di situs web.

Setan klogd bertanggung jawab untuk mencatat peristiwa yang terjadi di kernel sistem. Kebutuhan akan daemon yang terpisah klogd karena kernel tidak dapat menggunakan fungsi standar syslog. Faktanya adalah bahwa perpustakaan standar (termasuk perpustakaan tempat fungsi tersebut berada syslog) dimaksudkan untuk digunakan oleh aplikasi biasa saja. Karena kernel juga membutuhkan fungsi yang serupa, ia menyertakan pustakanya sendiri yang tidak tersedia untuk aplikasi. Oleh karena itu, kernel menggunakan mekanisme pembuatan pesannya sendiri. Setan klogd dirancang untuk mengatur pemrosesan pesan-pesan ini. Pada prinsipnya, dia dapat melakukan pemrosesan seperti itu sepenuhnya secara mandiri dan independen dari syslogd, misalnya dengan menulis pesan ini ke file, tetapi dalam kebanyakan kasus, pengaturan defaultnya adalah klogd, di mana semua pesan dari kernel diteruskan ke daemon yang sama syslogd.

Untuk memastikan iblis syslogd dan klogd berjalan di sistem Anda, jalankan perintah ps -kapak | grep log. Perintah ini memberi saya hasil berikut:

$ ps -kapak | grep log 569? S 0:00 syslogd -m 0 574 ? S 0:00 klogd -x 1013 ? S 0:00 login -- kos 1191 ? S 0:00 kalarmd --login Dua baris pertama hanya memberitahu Anda bahwa daemon logging sedang berjalan di sistem.

Menangani pesan oleh daemon syslogd terdiri dari fakta bahwa ia terus-menerus memantau tampilan pesan dan membandingkan setiap entri yang masuk dengan aturan yang ada di file /etc/syslog.conf. Setiap aturan ditulis sebagai baris dalam file /etc/syslog.conf, terdiri dari dua bidang. Bidang kiri ("selector") menentukan satu atau beberapa template yang digunakan untuk memilih pesan. Template dipisahkan oleh titik koma (lihat contoh file di bawah ini /etc/syslog.conf). Bidang kanan ("tindakan") menentukan urutan pemrosesan pesan yang dipilih. Bidang dipisahkan oleh satu atau beberapa spasi atau tab.

Setiap pola dalam bidang "selector" berbentuk "category.level" (yaitu, "facility.priority"). Nilai bidang "kategori" dapat berupa:

  • salah satu nama konvensional kategori yang tercantum dalam Tabel 1,
  • beberapa nama seperti itu (dalam hal ini mereka dipisahkan dengan koma)
  • atau simbol * (berarti "semua kategori").

Nilai bidang "level" dapat berupa:

  • salah satu nama kondisional dari level yang tercantum dalam tabel 2,
  • simbol * (rekam semua pesan dari kategori ini, terlepas dari levelnya),
  • atau kata tidak ada(jangan merekam pesan dalam kategori ini).

Menentukan nilai tertentu di bidang "tingkat" ditafsirkan sebagai "semua nilai tingkat ini dan di atasnya". Jika Anda perlu merekam pesan hanya dari satu level, maka Anda harus meletakkan tanda sama dengan ("=") di depan nilai yang akan ditetapkan. Jika diperlukan untuk merekam pesan dari semua level, kecuali yang ditentukan, maka tanda seru ("!") ditempatkan sebelum nama level. Menempatkan dua tanda ini pada saat yang sama ditafsirkan sebagai "jangan merekam pesan dari level yang ditentukan ke atas."

Huruf besar dan huruf kecil di bidang "pemilih" tidak dibedakan. Anda juga dapat menggunakan angka (lihat /usr/include/syslog.h). Selain kategori yang tercantum dalam Tabel 1, Anda dapat menentukan tanda(cap waktu biasa) dan keamanan(sinonim usang untuk auth). Selain nilai prioritas yang tercantum dalam Tabel 2, Anda dapat menggunakan memperingatkan(sinonim untuk peringatan), kesalahan(sinonim untuk berbuat salah), panik(sinonim untuk muncul).

Ketika kategori dan level pesan yang diterima cocok dengan salah satu pola bidang "pemilih" dari suatu baris, syslogd memproses catatan sesuai dengan tindakan yang ditentukan dalam bidang "tindakan" dari baris ini.

Bidang "tindakan" dapat berisi

  • nama file biasa (file log), dan path lengkap ke file harus ditentukan, mulai dari root "/", dan jika file yang ditentukan tidak ada, syslogd menciptakannya
  • nama pipa bernama (bernama pipa) - FIFO; dalam hal ini, nama didahului oleh bilah vertikal ("|"), dan saluran itu sendiri harus dibuat sebelum memulai syslogd tim mkfifo,
  • menunjuk ke terminal atau konsol (sebagai perangkat: /dev/tty1),
  • menunjuk ke host jarak jauh (diawali dengan simbol @),
  • atau daftar pengguna (dipisahkan dengan koma) yang terminalnya akan dikirimi pesan sesuai dengan aturan ini. Alih-alih daftar pengguna, Anda dapat menempatkan tanda bintang (*), yang berarti bahwa pesan dikirim ke semua pengguna yang bekerja di saat ini dalam sistem.

Paling sering, bidang "tindakan" masih berisi nama file log. Selain itu, sebelum nama file, Anda dapat memberi tanda minus ("-"), yang berarti bahwa sistem dapat menyimpan file dalam buffer cache, dan tidak menghapusnya setelah setiap pesan ditulis ke disk. Ini, tentu saja, mempercepat pekerjaan, terutama jika banyak pesan besar ditulis ke log, tetapi dapat menyebabkan hilangnya beberapa pesan jika terjadi kerusakan sistem yang tidak terduga, yaitu, ketika pesan tersebut sangat dibutuhkan. Anda juga dapat menentukan printer sebagai perangkat di bidang "aksi" - /dev/lp0. Adalah bijaksana untuk menerapkan varian "tindakan" seperti itu dalam kasus-kasus ketika itu adalah masalah sistem yang sangat penting. Protokol yang dicetak tidak dapat dihapus atau diubah oleh peretas, jadi ini adalah penggunaan yang baik untuk printer dot matrix lama.

Selain baris dengan aturan dalam file /etc/syslog.conf mungkin berisi baris kosong dan baris komentar yang dimulai dengan #. Lebih lanjut tentang struktur file /etc/syslog.conf Anda dapat membaca halaman manual syslog.conf untuk beberapa contoh entri aturan dalam file ini. Perhatikan bahwa saat menentukan pasangan "category.level" dalam file syslog.conf anda tidak dapat menggunakan nilai numerik yang diberikan dalam tabel 1 dan 2, hanya nama kondisionalnya yang diizinkan.

Jika sebuah pesan cocok dengan pola dua baris atau lebih, pesan tersebut akan diproses menurut masing-masing aturan ini (yaitu pemrosesan pesan tidak berhenti pada keberhasilan pertama). Ini berarti bahwa sejumlah tindakan sewenang-wenang dapat dilakukan pada satu pesan. Oleh karena itu, Anda dapat menulis pesan ke file log dan mengirimkannya ke pengguna atau ke host jarak jauh.

Selain itu, jika beberapa pasangan "category.level" terdaftar (dipisahkan dengan titik koma) di bidang "selector", maka pasangan berikutnya dapat membatalkan efek dari pasangan sebelumnya. Anda dapat melihat contoh pembatalan tersebut dalam daftar file di bawah ini. /etc/syslog.conf: mencatat semua pesan pada atau di atas info ke file /var/log/messages, tetapi melewatkan (bukan mencatat) pesan email, authpriv, dan cron.

Daftar 1. File /etc/syslog.conf dari sistem yang dibangun berdasarkan distribusi Red Hat Linux 7.1 (Saya hanya menerjemahkan komentar yang terdapat dalam file ini ke dalam bahasa Rusia dan disorot dalam huruf tebal garis aturan).
# Cetak semua pesan dari kernel ke konsol. #kern.* /dev/console# Catat semua pesan dengan info level atau lebih tinggi, # kecuali pesan dari sistem email yang berisi informasi sensitif, # pesan otentikasi dan pesan daemon cron. *.info;mail.none;authpriv.none;cron.none /var/log/messages# Tulis pesan yang berisi # informasi otentikasi rahasia ke file terpisah, terlepas dari levelnya. authpriv.* /var/log/secure# Semua pesan dari sistem email juga direkam secara terpisah. mail.* /var/log/maillog# Catat tindakan daemon cron. cron.* /var/log/cron# Pesan darurat harus segera diterima # oleh semua pengguna sistem *.muncul*# Pesan dari layanan berita tingkat kritis ke atas ditulis ke file terpisah. uucp,news.crit /var/log/spooler# Salin pesan yang dikeluarkan selama fase boot ke file boot.log local7.* /var/log/boot.log
Seperti yang Anda lihat, sebagian besar pesan hanya ditulis ke berbagai file log yang terletak di direktori /var/log atau subdirektorinya, dengan file log sistem utama di Red Hat Linux sebagai file /var/log/pesan. Hanya pesan dalam kategori email, authpriv, dan cron (yang dialokasikan file terpisah) yang tidak termasuk di dalamnya. Mari kita lihat file ini dan, dengan menggunakan contohnya, pertimbangkan apa yang direkam dalam file log.

File log /var/log/pesan

Tentu saja, tidak mungkin untuk mengatakan di sini tentang isi setiap baris file ini. Agar pembaca mendapatkan gambaran tentang informasi apa yang dapat ditemukan dalam protokol, kami akan memberikan pesan baris terpisah dengan komentar yang sangat singkat.

Setiap baris dalam file log berisi entri pesan tunggal yang terdiri dari bidang pesan berikut, dipisahkan oleh spasi:

  • tanggal dalam format teks standar (bidang TIMESTAMP dari pesan syslog),
  • nama host (bidang NAMA HOST dari pesan syslog)
  • teks pesan (bidang MENANDAI dan ISI dari pesan syslog)

Pertama, perlu diperhatikan bahwa jika komputer Anda tidak berjalan 24/7, tetapi dimatikan pada malam hari, maka file ini mungkin berisi catatan beberapa "siklus kerja" yang dimulai dengan komputer dinyalakan dan diakhiri dengan komputer dimatikan. Siklus seperti itu dimulai dengan pesan tentang peluncuran daemon logging (ini dapat dimengerti, tidak ada pesan yang direkam sebelum diluncurkan):

17 Sep 08:32:56 kos3 syslogd 1.4-0: mulai ulang. 17 Sep 08:32:56 kos3 syslog: syslogd mulai berhasil 17 Sep 08:32:56 kos3 kernel: klogd 1.4-0, log source = /proc/kmsg dimulai. 17 Sep 08:32:56 kernel kos3: Memeriksa /boot/System.map-2.4.2-2 17 Sep 08:32:56 kos3 syslog: memulai klogd berhasil

  • - Versi kernel mana yang digunakan: 17 Sep 08:32:56 kernel kos3: Linux versi 2.4.2-2 ( [dilindungi email]) (gcc versi 2.96 20000731 (Red Hat Linux 7.1 2.96-79)) #1 Minggu 8 Apr 20:41:30 EDT 2001
  • - Dengan parameter apa kernel dimulai: 17 Sep 08:32:56 kernel kos3: Baris perintah kernel: auto BOOT_IMAGE=linux ro root=303 BOOT_FILE=/boot/vmlinuz-2.4.2-2
  • - Informasi tentang jenis prosesor dan jumlah RAM: 17 Sep 08:32:56 kos3 kernel: Terdeteksi prosesor 1594,849 MHz. 17 Sep 08:32:56 kos3 kernel: Memori: 125652k/130560k tersedia (kode kernel 1365k, 4200k dicadangkan, 92k data, 236k init, 0k highmem) 17 Sep 08:32:56 kos3 kernel: CPU: L1 I cache: 12K , L1 D cache: 8K 17 Sep 08:32:56 kos3 kernel: CPU: L2 cache: 256K 17 Sep 08:32:56 kos3 kernel: CPU: Intel(R) Pentium(R) 4 CPU 1.60GHz stepping 02
  • - Informasi tentang memori disk (termasuk informasi tentang geometri disk, struktur partisi disk, dan interupsi yang digunakan): 17 Sep 08:32:56 kos3 kernel: hda: MAXTOR 6L020J1, ATA DISK drive 17 Sep 08:32:56 kos3 kernel: hdc: CD-ROM SAMSUNG SC-148C, drive CD/DVD-ROM ATAPI 17 Sep 08:32:56 kernel kos3: ide0 pada 0x1f0-0x1f7,0x3f6 pada irq 14 Sep 17 08:32:56 kernel kos3: ide1 pada 0x170-0x177 ,0x376 pada irq 15 Sep 17 08:32:56 kos3 kernel: hda: 40132503 sektor (20548 MB) w/1819KiB Cache, CHS=2498/255/63, UDMA(100) 17 Sep 08:32:56 kos3 kernel: Pemeriksaan partisi: 17 Sep 08:32:56 kernel kos3: hda: hda1 hda2 hda3 hda4< hda5 hda6 hda7 >17 Sep 08:32:56 kernel kos3: Floppy drive: fd0 adalah 1,44M
  • - Informasi tentang periferal: 17 Sep 08:32:56 kos3 kernel: usb-uhci.c: USB UHCI pada I/O 0x1820, IRQ 11 Sep 17 08:32:56 kos3 kernel: usb-uhci.c: Terdeteksi 2 port 17 Sep 08:32:56 kernel kos3: ttyS00 pada 0x03f8 (irq = 4) adalah 16550A 17 Sep 08:32:56 kernel kos3: ttyS01 pada 0x02f8 (irq = 3) adalah 16550A 17 Sep 08:32:56 kos3 kernel: eth0: Adaptor Ethernet berbasis Intel(R) 8255x 17 Sep 08:32:56 kos3 kernel: Intel(R) PRO/100 Fast Ethernet Adapter - Driver yang dapat dimuat, ver 1.5.6 17 Sep 08:32:56 kernel kos3 : PCI: Ditemukan IRQ 11 untuk perangkat 02:08.0
  • - Informasi tentang memulai layanan dan layanan individual: 17 Sep 08:32:56 kernel kos3: NET4: Linux TCP/IP 1.0 untuk NET4.0 17 Sep 08:32:56 kernel kos3: Protokol IP: ICMP, UDP, TCP, IGMP 17 Sep 08:32:56 kernel kos3: NET4: soket domain Unix 1.0/SMP untuk Linux NET4.0. 17 Sep 08:32:56 kernel kos3: parport0: Gaya PC pada 0x378 (0x778) 17 Sep 08:32:56 kernel kos3: parport0: irq 7 terdeteksi 17 Sep 08:32:42 kos3 rc.sysinit: Mengaktifkan pengguna dan kuota grup untuk sistem file lokal: berhasil 17 Sep 08:32:43 kos3 rc.sysinit: Mengaktifkan ruang swap: berhasil 17 Sep 08:32:44 kos3 init: Memasuki runlevel: 3 17 Sep 08:32:45 kos3 kudzu: Memperbarui /etc/fstab berhasil 17 Sep 08:32:55 kos3 kudzu: berhasil 17 Sep 08:32:55 jaringan kos3: Mengatur opsi jaringan: berhasil 17 Sep 08:32:55 jaringan kos3: Memunculkan antarmuka lo: berhasil 17 Sep 08 : 32:56 jaringan kos3: antarmuka eth0 diaktifkan: berhasil 17 Sep 08:32:56 kos3 keytable: Memuat tata letak keyboard: 17 Sep 08:32:56 kos3 keytable: Memuat font sistem: 17 Sep 08:32:56 kos3 acak: Menginisialisasi generator nomor acak: berhasil 17 Sep 08:32:41 kos3 rc.sysinit: Mengonfigurasi parameter kernel: berhasil 17 Sep 08:32:41 kos3 rc.sysinit: Mengatur font default (cyr-sun16): berhasil Sep 17 08:32:41 kos3 rc.sysinit: Mengaktifkan partisi swap: berhasil 17 Sep 08:32:41 kos3 rc.sysinit: Menyetel hostname kos3: berhasil 17 Sep 08:33:03 kos3 xinetd: memulai xinetd berhasil 17 Sep 08: 33:05 kos3 gpm: memulai gpm berhasil 17 Sep 08:33:05 kos3 crond: memulai crond berhasil 17 Sep 08:33:06 kos3 xfs: mendengarkan di port 7100 17 Sep 08:33:06 kos3 xfs: memulai xfs berhasil
  • - informasi koneksi sistem file: 17 Sep 08:32:56 kernel kos3: VFS: Root yang terpasang (sistem file ext2) hanya dapat dibaca. 17 Sep 08:32:56 kernel kos3: Menambahkan Swap: 265032k swap-space (prioritas -1) 17 Sep 08:32:56 kernel kos3: MSDOS FS: Menggunakan codepage 866 17 Sep 08:32:56 kernel kos3: MSDOS FS : IO charset koi8-r 17 Sep 08:32:41 kos3 rc.sysinit: Memasang sistem file USB: berhasil 17 Sep 08:32:41 kos3 rc.sysinit: Memeriksa sistem file root berhasil 17 Sep 08:32:41 kos3 rc.sysinit : Memasang kembali sistem file root dalam mode baca-tulis: berhasil 17 Sep 08:32:41 kos3 rc.sysinit: Memasang sistem file proc: berhasil 17 Sep 08:32:41 kos3 fsck: /: bersih, 30407/160000 file, 95270/319410 blok 17 Sep 08:32:42 kos3 fsck: /HOME: clean, 6573/432864 file, 689090/863722 blok 17 Sep 08:32:42 kos3 fsck: /usr: clean, 55105/329952 file, 286888/659602 blok Sep 17 08:32:42 kos3 rc.sysinit: Memeriksa sistem file berhasil
  • - Beberapa pesan kesalahan: 17 Sep 08:32:42 pemasangan kos3: Koneksi SMB gagal 17 Sep 08:32:42 pemasangan kos3: Pengiriman paket gagal ke 10.104.129.245 (137) ERRNO=Jaringan tidak dapat dijangkau 17 Sep 08:32: 42 kos3 mount: mount: /dev/sda4: perangkat tidak dikenal 17 Sep 08:32:59 kos3 mount: kesalahan saat menyambung ke 192.168.36.20:139 (Tidak ada rute ke host) 17 Sep 08:32:59 kos3 mount: mount: / dev /sda4: perangkat tidak dikenal
  • - Pesan log pengguna: 17 Sep 08:33:14 kos3 login(pam_unix): sesi dibuka untuk pengguna kos dengan LOGIN(uid=0) 17 Sep 08:33:14 kos3 -- kos: LOGIN ON tty1 OLEH kos 17 Sep 08 :41:39 kos3 su(pam_unix): otentikasi gagal; namalog=kos uid=500 euid=0 tty=pengguna=rhost=pengguna=root
  • - Dan terakhir, pesan tertulis saat komputer dimatikan, misalnya: 17 Sep 10:30:07 kos3 rc: Menghentikan keytable: berhasil 17 Sep 10:30:07 kos3 Font Server: terminating 17 Sep 10:30:08 kos3 xfs: stop xfs berhasil 17 Sep 10:30:08 kos3 gpm: stop gpm berhasil 17 Sep 10:30:08 kos3 xinetd: Keluar... 17 Sep 10:30:10 kos3 rpc.statd: Tertangkap sinyal 15, un- mendaftar dan keluar. 17 Sep 10:30:11 kernel kos3: Pencatatan kernel (proc) dihentikan. 17 Sep 10:30:11 kernel kos3: Daemon log kernel berakhir. 17 Sep 10:30:12 kos3 syslog: stop klogd berhasil 17 Sep 10:30:12 kos3 keluar pada sinyal 15

    Kira-kira struktur yang sama memiliki entri dalam file protokol lain yang disebutkan dalam file /etc/syslog.conf.

    perintah logger dan tailf

    Dari uraian sebelumnya, kita dapat menyimpulkan bahwa penerbitan semua pesan untuk log sistem harus ditetapkan oleh programmer pada tahap pembuatan program. Ini tidak sepenuhnya benar. Pengguna juga memiliki kemampuan untuk mengirim pesan ke daemon syslogd. Untuk melakukan ini, Linux memiliki perintah pencatat, yang menyediakan pengiriman pesan dari baris perintah (sh, bash, dll.). Ini adalah bagian dari paket util-linux. Secara alami, perintah ini terutama ditujukan untuk menyediakan kemampuan logging ketika pengguna membuat berbagai jenis skrip shell. Tetapi juga dapat dijalankan langsung dari baris perintah, misalnya, untuk berkenalan dengan kemampuan sistem logging. Format menjalankan perintah: logger [-isd] [-f file] [-p PRI] [-t TAG] [-u socket] Opsi baris perintah memiliki arti sebagai berikut:

    • -Saya- sertakan nomor proses dalam pesan
    • -S- duplikat pesan ke stderr
    • -D- gunakan mode datagram saat mengirim pesan (bukan streaming biasa)
    • -f nama file- simpan pesan dalam file yang ditentukan (default adalah /var/log/pesan)
    • -p fasilitas.level- atur kategori dan prioritas pesan (default: user.notice)
    • -T MENANDAI - setel bidang TAG
    • -u soket- kirim pesan ke soket yang ditentukan, alih-alih memanggil syslogd
    • MSG- Pesan teks

    Kirim beberapa pesan menggunakan program pencatat dan kagumi hasilnya dalam file /var/log/pesan(kecuali, tentu saja, Anda telah mengubah nilai default).

    Omong-omong, ada cara yang sangat menarik untuk melihat pesan yang ditulis ke file /var/log/pesan tim pencatat. Metode ini didasarkan pada penggunaan program khusus ekor. Buka jendela terminal, dapatkan hak pengguna super (dengan perintah su) dan jalankan perintah di jendela ini
    tailf /var/log/pesan
    Setelah itu, beralih ke terminal lain dan jalankan perintah di sana logger custom_text. Pesan Anda akan segera ditampilkan di jendela tempat program dijalankan. ekor. Artinya, dengan bantuan program ini, administrator sistem dapat memantau perekaman pesan baru dalam protokol secara real time. Benar, di administrator sistem kecil kemungkinannya akan ada waktu untuk memantau perilaku sistem dengan cara ini (kecuali dalam situasi darurat). Oleh karena itu, program khusus telah dikembangkan untuk analisis protokol. Tetapi tentang mereka sedikit lebih rendah, tetapi untuk sekarang mari kita beralih ke pertanyaan tentang bagaimana mengatur pengawasan komputer jarak jauh (ingat bagaimana Anda menangkap penyusup Shimomura?).

    Pencatatan jaringan

    Seperti yang disebutkan, pesan sistem logging dapat dikirim oleh daemon syslogd ke host jarak jauh. Tetapi seseorang harus membawanya ke sana. Ternyata ini adalah iblis yang sama syslogd berjalan di host jarak jauh ini. Lebih tepatnya, syslogd di komputer mana pun, ia dapat mendengarkan tidak hanya di soket /dev/log (sehingga menerima pesan dari sumber lokal), tetapi juga pada port 514/UDP, yang memastikan bahwa pesan diterima dari komputer lain di jaringan lokal (dan kemudian ditulis ke file lokal). Ini memungkinkan untuk membuat "server logging", yang bisa sangat nyaman bagi administrator sistem (semua peristiwa di jaringan dilacak di satu tempat), dan juga meningkatkan keamanan jaringan, karena laporan intrusi peretas di salah satu host jaringan tidak dapat segera dihapus dari protokol oleh peretas ini.

    Namun, untuk mengatur "penebangan jaringan" seperti itu, beberapa upaya tambahan harus dilakukan.

    Pertama, karena port 514/UDP digunakan untuk menerima dan mengirim pesan melalui jaringan, port ini harus tersedia di kedua komputer (klien dan server). Untuk ini dalam file /etc/services kedua komputer harus memiliki saluran
    syslog 514/udp
    Jika garis seperti itu adalah /etc/services hilang, syslogd tidak dapat menerima pesan atau mengirimnya ke jaringan karena tidak dapat membuka port UDP. Jika situasi seperti itu muncul, syslogd segera berhenti menulis pesan apa pun bahkan ke log lokal. Namun, seperti yang ditunjukkan oleh perintah ps, itu tetap di memori dan bahkan menyimpan pesan di beberapa buffer, karena jika string " syslog 514/udp" kembalikan ke file /etc/services pada klien, maka setidaknya beberapa pesan "hilang" masih muncul di log (setelah restart syslogd).

    Kedua, saat memulai daemon syslogd opsi harus ditentukan di server -R, yang menyediakan kemampuan logging jarak jauh (secara default, daemon syslogd menunggu pesan hanya dari soket lokal). Bagaimana dan di mana menyetel opsi ini akan dibahas di bawah, di bagian memulai daemon. syslogd.

    Nah, dan ketiga, pengaturan dalam file harus diperbaiki. /etc/syslog.conf pada kedua komputer. Misalnya, jika Anda ingin mengarahkan semua pesan ke server pencatatan, Anda harus menulis dalam file di komputer klien /etc/syslog.conf garis seperti ini:
    *.*@namahost
    Jika selama awal daemon syslogd server tidak akan tersedia (misalnya, saat ini terputus dari jaringan) atau tidak mungkin menemukannya berdasarkan nama (layanan DNS tidak berfungsi dengan benar) syslogd melakukan 10 upaya lagi untuk menemukan server, dan hanya jika setelah itu tidak mungkin menemukan server, server berhenti mencoba dan mengirim pesan yang sesuai.

    Jika Anda memiliki beberapa domain di jaringan Anda yang dilayani oleh server logging yang sama, jangan kaget melihat nama klien lengkap (termasuk domain) di logging di server. Memang, saat startup syslogd pilihan dapat digunakan -s domain_list atau -l daftar host, yang menyediakan penggantian nama host lengkap dalam protokol dengan nama pendeknya (tanpa menentukan domain).

    Jangan lupa setelah menyesuaikan opsi peluncuran dan file /etc/syslog.conf restart daemon karena, tidak seperti cron, syslogd tidak membaca ulang file konfigurasi secara otomatis.

    opsi startup daemon syslogd

    Karena kami menyentuh masalah pengaturan parameter startup daemon di subbagian sebelumnya syslogd mari kita lihat masalah ini lebih detail. Seperti yang telah disebutkan, kedua daemon logging diluncurkan pada tahap inisialisasi sistem, dan lebih khusus lagi, melalui skrip /etc/rc.d/init.d/syslog(untuk itu, serta untuk skrip startup layanan lain, tautan simbolis dibuat di direktori /etc/rc.d/rc?.d/). Namun, tidak perlu memodifikasi skrip ini untuk mengatur parameter startup, karena sejak versi 7.2 di distribusi Red Hat, opsi startup untuk kedua daemon dibaca dari file konfigurasi terpisah. /etc/sysconfig/syslog. Berikut adalah daftar singkat parameter yang mungkin untuk daemon syslogd.

    Luncurkan parameter syslogd:

    • -sebuah soket- Menentukan soket tambahan yang akan didengarkan daemon syslogd. Anda dapat menentukan hingga 19 soket (mungkin lebih banyak, tetapi untuk ini Anda perlu mengkompilasi ulang paket). Opsi ini digunakan ketika beberapa daemon lain (seperti ftp atau http) berjalan di lingkungan terbatas (melakukan chroot).
    • -D- Modus debug. Pada saat yang sama, daemon tidak masuk ke latar belakang dan mengeluarkan semua pesan ke terminal saat ini.
    • -f config-nama file Menentukan nama file konfigurasi alternatif yang akan digunakan, bukan yang default. /etc/syslog.conf.
    • -H Secara default di syslogd dilarang untuk mentransfer pesan yang diterima melalui jaringan ke komputer lain. Ini dilakukan untuk menghindari transfer pesan tanpa akhir di sekitar ring. Opsi -h memungkinkan Anda untuk mengesampingkan perilaku normal dan memastikan bahwa pesan yang diterima dari host jarak jauh diteruskan di jaringan (dan menangani kemungkinan perulangan sendiri).
    • -l daftar tuan rumah- Menentukan daftar host yang namanya tidak boleh ditulis dengan nama domain lengkap (FQDN - Nama Domain Qwalified Lengkap); nama dalam daftar dipisahkan oleh titik dua.
    • -m menit Diluncurkan tanpa opsi ini syslogd secara teratur (setiap 20 menit) mencatat pesan kategori tanda, yaitu, hanya stempel waktu. Dengan pilihan -M Anda dapat mengubah interval antara tanda, atau sepenuhnya membatalkan penerbitan pesan tersebut, di mana Anda perlu mengatur interval ke nol: -m0.
    • -n Jangan pergi ke latar belakang; opsi diperlukan dalam kasus di mana syslogd dimulai dan dikendalikan oleh suatu proses init.
    • -p soket Menentukan soket UNIX alternatif (bukan mendengarkan default /dev/log). Harap dicatat: opsi -sebuah menentukan soket tambahan, dan -P- alternatif!
    • -R Izinkan untuk menerima pesan dari host jarak jauh. Kami membicarakan hal ini di bagian sebelumnya, jadi saya menghilangkan detailnya.
    • -s daftar domain Menentukan daftar domain yang namanya tidak perlu dicatat bersama dengan nama host (yaitu, untuk domain ini, hanya nama host yang akan dicatat, bukan nama domain yang sepenuhnya memenuhi syarat (FQDN). Nama dalam daftar dipisahkan oleh titik dua Nama domain tempat server syslogd berada , tidak diperlukan dalam daftar ini (namanya dihapus secara default).
    • -v Tampilkan versi dan selesai.
    • -x Menolak menentukan nama host dari alamatnya mencegah kebuntuan saat berjalan di host yang sama dengan server DNS.

    Setelah memulai daemon syslogd file status dibuat /var/lock/subsys/syslog panjang nol, dan file dengan ID proses /var/run/syslogd.pid.

    Dengan perintah
    kill -SIGNAL `cat /var/run/syslogd.pid`
    Anda dapat mengirim ke iblis syslogd salah satu sinyal berikut:

    • SIGHUP - restart daemon (inisialisasi ulang); semua file yang terbuka ditutup, daemon restart, membaca ulang file konfigurasinya.
    • SIGTERM - matikan.
    • SIGINT, SIGQUIT - jika mode debug diaktifkan (opsi -d), sinyal diabaikan, jika tidak - keluar.
    • SIGUSR1 - mengaktifkan/menonaktifkan mode debug (hanya berfungsi jika daemon dimulai dengan sakelar -d).

    Setan klogd memiliki setidaknya sebanyak mungkin opsi peluncuran syslogd, namun, kami tidak akan memberikannya di sini, merujuk pembaca ke halaman manual yang sesuai (pengguna tidak boleh mengonfigurasi klogd, lebih baik membiarkannya dalam keadaan seperti yang diproduksi oleh pengembang distribusi).

    file dmesg dan perintah dmesg

    Seperti yang telah disebutkan, file log yang disebutkan dalam file /etc/syslog.conf biasanya terletak di direktori /var/log dan subdirektorinya. Tapi, jika kita melihat ke dalam direktori ini, kita akan menemukan beberapa file di sana, yang di /etc/syslog.conf tidak disebutkan. Mari kita lihat tujuan mereka. Mari kita mulai dengan file dmesg.

    Pertama, perlu disebutkan bahwa Linux memiliki perintah dengan nama yang sama. Jika kita membandingkan output dari perintah ini (ketika dijalankan tanpa parameter) dengan isi file /var/log/dmesg, Anda akan menemukan bahwa mereka sangat mirip, meskipun tidak identik (arahkan output dari perintah ke file dmesg2 dan bandingkan file dmesg dan dmesg2). Lebih tepatnya, file /var/log/dmesg 1-1 bertepatan dengan awal output yang kita dapatkan pada perintah dmesg. Sebagai berikut dari , kernel memiliki buffer cincin tempat pesan dari daemon logging kernel ditulis. Pesan-pesan yang ditulis ke buffer ini selama proses pengunduhan, dan membuat konten file /var/log/dmesg. Rupanya, file ini terbentuk di akhir boot sistem.

    Jika Anda melihat kembali daftar file di atas /etc/syslog.conf, Anda akan melihat bahwa semua posting dalam kategori lelaki yg tdk terpelajar dikeluarkan untuk konsol juga. Tapi di sana mereka dengan cepat berlari melintasi layar dan Anda hampir tidak punya waktu untuk membaca dan memahaminya. Tapi mereka disimpan dalam file /var/log/dmesg dan dengan demikian tersedia untuk refleksi santai (jika proses pengunduhan telah berhasil diselesaikan). Setelah proses booting selesai, penulisan pesan dari kernel ke ring buffer dilanjutkan. Saat perintah dijalankan dmesg, status buffer saat ini dikembalikan. Oleh karena itu, output dari perintah ini berisi lebih banyak pesan daripada file /var/log/dmesg: pada output dari perintah ini, Anda juga dapat melihat pesan yang dikeluarkan oleh kernel setelah proses booting selesai.

    Semua pesan dari /var/log/dmesg Anda akan menemukan di file /var/log/pesan, hanya di sana mereka bergantian dengan pesan dari program lain. Hanya ada satu perbedaan yang signifikan: dalam file dmesg waktu dan sumber pesan (nama host dan kategori pesan) tidak ditentukan. Tuan rumah di sini selalu "lokal", dan awal hitung mundur ditentukan oleh reboot terakhir komputer.

    file lastlog, wtmp dan utmp

    Kecuali file dmesg di katalog /var/log/ ada dua file lagi yang tidak disebutkan di /etc/syslog.conf, tetapi terkait langsung dengan logging - ini adalah file log terakhir dan wtmp. Tapi lihatlah mereka dengan cara yang sama seperti kita melihat melalui file /var/log/pesan tidak masuk akal - Anda tidak akan mengerti apa-apa. Faktanya adalah bahwa informasi dalam file-file ini dicatat dalam format khusus, dan harus dilihat menggunakan perangkat lunak khusus. Tetapi pertama-tama kita perlu mengatakan beberapa kata tentang tujuan file-file ini.

    Mengajukan log terakhir menyimpan informasi tentang login terakhir pengguna ke sistem. Saya tidak tahu apakah Anda memperhatikan bahwa ketika Anda memasukkan nama pengguna dan kata sandi, pesan seperti ini muncul di layar:

    Login localhost: kos Kata sandi: Login terakhir: Rabu 9 Okt 19:25:53 pada tty1 Tiga baris ini dihasilkan oleh utilitas Gabung, yang, setelah menentukan bahwa pengguna memiliki hak login, mengakses file /var/log/lastlog, mengekstrak informasi tentang login pengguna sebelumnya yang berhasil dari sana, menampilkannya di layar, dan kemudian memperbarui entri dalam file log terakhir. Anda dapat menyembunyikan pesan ini dengan membuat file .hushlogin kosong di direktori home Anda. Namun, tidak disarankan untuk melakukan ini, sebaliknya, ada baiknya memberi perhatian khusus pada konten pesan ini agar tidak ketinggalan kasus ketika orang lain masuk dengan nama Anda.

    Berbeda dengan file /var/log/lastlog, yang berisi entri waktu terakhir login setiap pengguna, dalam file /var/log/wtmp dikenang semua login dan logout pengguna sejak file ini dibuat. Seperti dalam file log terakhir, catatan di /var/log/wtmp dibuat dalam format khusus, sehingga hanya dapat dilihat menggunakan tim khusus. Tapi, sebelum berbicara tentang perintah ini, katakanlah ada file lain yang berisi entri tentang logging pengguna - ini adalah file /var/run/utmp. File ini berisi informasi tentang pengguna mana yang saat ini masuk ke sistem.

    Sekarang Anda dapat berbicara tentang cara melihat informasi tentang pengguna yang bekerja atau pernah bekerja di sistem. Perintah utama untuk ini adalah perintah terakhir. Ini menampilkan semua catatan dari file /var/log/wtmp, dan nama pengguna, indikasi terminal tempat pengguna bekerja, waktu pengguna memasuki sistem dan waktu meninggalkan sistem, serta durasi sesi pengguna dalam sistem. Jika pekerjaan pengguna terganggu hanya karena shutdown sistem itu sendiri, alih-alih waktu keluar pengguna ada kata "turun" (mudah untuk menentukan waktu berhenti sistem dari garis-garis ini). Waktu restart ditampilkan pada baris terpisah yang dimulai dengan kata "reboot".

    Tim terakhir seperti tim terakhir, tetapi menampilkan informasi tentang upaya login pengguna yang gagal. Namun, perlu dicatat bahwa perintah ini hanya akan berfungsi jika file tersebut ada. /var/log/btmp. Namun, tidak ada program yang dibahas di sini yang membuat file log, jadi jika salah satunya dihapus, maka pencatatan berakhir.

    Tim log terakhir memformat dan menampilkan konten file /var/log/lastlog. Nama pengguna, nama terminal tempat pengguna masuk, dan waktu masuk terakhir akan ditampilkan. Secara default (ketika perintah dimasukkan tanpa parameter) elemen file /var/log/lastlog akan ditampilkan dalam urutan nomor ID pengguna. Jika Anda menentukan opsi -u login-name, hanya informasi tentang waktu login terakhir dari pengguna tertentu yang akan ditampilkan. Dengan menentukan opsi -t hari, Anda hanya akan mendapatkan catatan untuk hari-hari terakhir. Jika pengguna belum login sama sekali, maka sebagai ganti nama terminal dan waktu login terakhir, string "**Never login**" akan ditunjukkan.

    Saat menjalankan perintah log terakhir pada komputer yang lambat, dalam beberapa kasus tampaknya perintahnya "menggantung". Hal ini disebabkan fakta bahwa meskipun hanya dua pengguna (root dan pengguna) yang terdaftar di sistem, dalam file /var/log/lastlog ruang masih dialokasikan untuk jumlah maksimum pengguna yang dapat bekerja dalam sistem. Oleh karena itu, dalam file /var/log/lastlog mungkin ada celah besar antara nomor ID pengguna yang telah masuk ke sistem. Karena saat melihat interval seperti itu, program tidak menampilkan informasi di layar, dan ada kesan "menggantung".

    Untuk menampilkan informasi tentang siapa yang sedang bekerja di sistem, gunakan perintah w, WHO dan pengguna. Tim pengguna digunakan ketika Anda hanya ingin tahu pengguna mana yang saat ini masuk ke sistem, tetapi tidak tertarik dengan terminal apa yang dia sambungkan dan apa yang dia lakukan. Jika Anda ingin tahu siapa yang masuk dari terminal mana, gunakan perintah WHO. Perintah ini mencetak informasi dari file /var/run/utmp. Anda dapat memaksanya untuk mengeluarkan data dari file /var/log/wtmp(atau file lain yang masuk akal), jika Anda menentukan nama file ini di garis komando. Tetapi dalam output, Anda masih akan melihat hanya nama pengguna, indikasi terminal dari mana pengguna masuk, waktu masuk, dan, dalam kasus masuk dengan komputer remot, nama komputer ini.

    Secara signifikan lebih banyak informasi ditampilkan oleh perintah w. Dalam outputnya, Anda akan melihat waktu saat ini, berapa lama sistem telah berjalan, berapa banyak pengguna yang saat ini masuk ke sistem, dan rata-rata beban sistem selama menit terakhir, 5, dan 15 menit. Ini kemudian menampilkan untuk setiap pengguna:

  • Nama pengguna,
  • nama terminal,
  • nama host jarak jauh
  • waktu berlalu sejak login
  • waktu selama terminal ini tidak digunakan (waktu idle),
  • total waktu yang dihabiskan oleh semua proses yang diluncurkan dari terminal ini (kolom JCPU),
  • waktu di mana proses terakhir yang diluncurkan oleh pengguna sedang berjalan (grafik PCPU),
  • informasi tentang program mana yang sedang dijalankan oleh pengguna (dalam bentuk baris perintah untuk meluncurkan perintah dengan semua parameter).

    Seperti yang telah disebutkan, perintah w mencetak informasi yang disimpan dalam file utmp. Omong-omong, kepemimpinan manusia menyatakan bahwa pengguna biasa harus ditolak akses tulis ke file utmp, karena banyak program sistem(untuk beberapa alasan yang tidak dapat dijelaskan) bergantung pada integritasnya. Anda berisiko membingungkan file sistem statistik dan buat perubahan pada file sistem jika Anda mengizinkan pengguna mana pun untuk menulis ke file utmp.

    File log dari program lain

    Selain file-file yang telah kita bicarakan, ada file protokol lain yang dibuat oleh program terpisah. Contoh paling umum adalah protokol daemon. samba, ftpd atau httpd yang disimpan dalam file terpisah. Beberapa program ini membuat protokolnya di subdirektori direktori /var/log/, yang lain menyimpan protokol di tempat lain. Dan struktur file ini mungkin berbeda secara signifikan dari struktur file yang dibuat oleh sistem syslog. Sebagai contoh, saya akan memberikan beberapa baris dari protokol server apache berjalan di komputer saya: 192.168.36.21 - - "GET /ve/papers/new/log/ HTTP/1.1" 200 1774 "-" "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.0 . 0) Gecko/20020530" 192.168.36.21 - - "GET /icons/back.gif HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0 ) Gecko/20020530" 192.168.36.21 - - "GET /icons/folder.gif HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0) Gecko / 20020530" 192.168.36.21 - - "GET /icons/text.gif HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0) Gecko/20020530 " 192.168.36.21 - - "GET /ve/papers/new/log/protok_lovim.htm HTTP/1.1" 200 46597 "http://linux/ve/papers/new/log/" "Mozilla/5.0 (X11; U ; Linux i686; ru-RU; rv:1.0.0) Gecko/20020530" 192.168.36.21 - - "GET /bugtraq.css HTTP/1.1" 404 279 "http://linux/ve/papers/new/log/ protok_lovim .htm" "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0) Gecko/20020530" 192.168.36.21 - - "GET /img/bug1.gif HTTP/1.1" 404 280 " http ://linux/ve/papers/new/lo g/protok_lovim.htm" "Mozilla/5.0 (X11; kamu; Linux i686; ru-RU; rv:1.0.0) Gecko/20020530" 192.168.36.21 - - "GET /img/title.gif HTTP/1.1" 404 281 "http://linux/ve/papers/new/log/protok_lovim.htm" "Mozilla /5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0) Gecko/20020530" Seperti yang Anda lihat, struktur file log ini berbeda secara signifikan dari apa yang kita lihat di log sistem.

    Samba-server, selain protokol operasi server utama, dibuat di subdirektori /var/log/samba sejumlah file log untuk berbagai kesempatan, khususnya file terpisah untuk setiap pengguna yang diizinkan menggunakan sumber daya yang disediakan oleh server ini. Dari satu file tersebut, dua entri berikut diambil:

    smbd/service.c:make_connection(550) linux (192.168.36.10) terhubung ke layanan publik sebagai pengguna kos (uid=500, gid=500) (pid 1366) smbd/service.c:close_cnum(550) linux (192.168. 36.10) koneksi tertutup ke layanan publik Contoh di atas menunjukkan bahwa jika Anda dapat membaca sedikit bahasa Inggris dan memiliki pemahaman tentang struktur catatan, Anda dapat mengekstrak banyak informasi berguna dari file log. Hanya itu yang harus diekstraksi dari seluruh deposit "batuan sisa" - file protokol berurutan yang sangat besar, yang merupakan tugas non-sepele. Oleh karena itu, perangkat lunak khusus untuk analisis protokol telah dikembangkan.

    Sarana untuk memproses protokol

    Banyak program dan skrip yang berbeda untuk analisis protokol telah dikembangkan. Saya akan membatasi diri Deskripsi singkat dua cara seperti: jam tangan log dan jam tangan.

    jam tangan log adalah skrip Perl yang disertakan dengan distribusi Red Hat Linux standar. Tepat pada saat persiapan artikel ini, versi 4.1 dari program ini telah diposting di situs web pengembang (dan dia adalah Kirk Bauer).

    Ide utama di balik program ini adalah bahwa file log dilewatkan melalui filter yang mengekstrak dari log semua baris (yaitu, pesan) yang memenuhi kriteria yang diberikan. Hasilnya dikirim melalui email ke pengguna yang ditentukan (root secara default). Filter dapat ditulis dalam bahasa pemrograman apa pun, tetapi pembuat paket lebih memilih Perl. Filter harus ditulis sedemikian rupa sehingga mereka membaca data dari stdin dan mengeluarkan hasilnya ke stdout.

    penggunaan utama jam tangan log terdiri dari menyertakan tautan ke skrip utama ( /etc/log.d/scripts/logwatch.pl) ke direktori /etc/cron.daily, yang menyebabkan eksekusi harian jam tangan log dengan pengaturan default. Tautan diberi nama yang dimulai dengan "00" (misalnya, 00-logwatch) agar skrip berjalan sebelum logrotate.

    Tetapi Anda juga dapat menjalankan skrip dari baris perintah. Tentu saja, jika Anda tidak mengubah parameter keluaran informasi, maka hasil kerjanya harus dicari di kotak surat pengguna super Jika Anda ingin melihat hasil ini di layar, maka Anda harus menentukan parameter pada baris perintah --mencetak- mencetak laporan ke stdout.

    Format umum untuk menjalankan skrip:

    /etc/log.d/scripts/logwatch.pl [--detail tingkat ] [--logfile log-grup ] [--melayani Nama layanan ] [--cetak] [--mailto alamat ] [--menyimpan Nama file ] [--arsip] [--rentang tanggal-interval ]

    Opsi default disimpan dalam file /etc/log.d/logwatch.conf, komentar yang memungkinkan untuk memahami arti dari opsi baris perintah:

    • LogDir - direktori relatif terhadap nama file yang dipertimbangkan;
    • MailTo - kepada siapa harus mengirim laporan;
    • Cetak - alih-alih mengirim laporan melalui surat, cetak ke stdout;
    • Simpan - alih-alih mengirim laporan melalui surat, simpan ke file yang ditentukan;
    • Arsip - tidak hanya menangani versi saat ini log, tetapi juga salinan lama yang dibuat oleh logrotate;
    • Rentang - memproses interval waktu yang ditentukan: Semua, Hari Ini, Kemarin (hari kalender kemarin);
    • Detail - tingkat detail laporan: dari 0 hingga 10 atau Rendah, Sedang, Tinggi;
    • Layanan - Semua atau nama filter dari /etc/log.d/scripts/services/ (beberapa filter dapat ditentukan);
    • LogFile - Semua atau nama grup log (beberapa grup dapat ditentukan).

    Informasi lebih lanjut tentang skrip jam tangan log Anda akan menemukan di.

    Artikel ini menjelaskan skrip lain untuk memproses file log, yang disertakan dalam distribusi Mandrake Linux. Skrip ini disebut jam tangan("Penonton Sederhana") dan juga ditulis dalam Perl.

    manajemen kerja jam tangan dilakukan dengan satu file konfigurasi, secara default $HOME/.swatchrc. File ini berisi contoh teks (dalam bentuk ekspresi reguler) yang jam tangan akan terlihat di file log. Setiap pola tersebut diikuti oleh tindakan yang jam tangan harus diambil jika menemukan teks yang cocok dengan polanya.

    Misalnya, Anda ingin diperingatkan setiap kali serangan buffer-overflow dicoba di server web Anda. Dan Anda tahu bahwa dalam kasus seperti itu di file log /var/apache/error.log muncul pesan yang berisi kata-kata "Nama file terlalu panjang". Dalam hal ini, di file Anda .swatchrc menyisipkan pernyataan berikut:

    Perhatikan /Nama file terlalu panjang/mail [dilindungi email], subjek=BufferOverflow_attempt

    Saya tidak akan memberikan deskripsi program yang lebih rinci di sini. jam tangan. Sebuah artikel antusias didedikasikan untuk itu, dan program itu sendiri dapat ditemukan di situs web. Saya hanya ingin menunjukkan dan jam tangan, dan jam tangan log menerapkan algoritma pemrosesan file protokol yang agak primitif, yang bermuara pada pencarian protokol untuk string karakter yang diberikan (tanda tangan). Sementara itu, pertama, keberadaan string seperti itu sering kali belum menunjukkan intrusi penyerang, dan kedua, penyerang yang kompeten dapat menghapus jejak aktivitasnya. Kerugian lain yang jelas dari produk yang dipertimbangkan adalah bahwa mereka bekerja dalam "mode tertunda", karena mereka diluncurkan hanya sesuai jadwal. Dan perang melawan penyusup harus dilakukan "dalam waktu nyata", segera menanggapi upaya untuk menembus sistem. Oleh karena itu, produk komersial menawarkan sistem pemantauan yang beroperasi terus menerus dan menerapkan algoritma analisis protokol "cerdas". Algoritme ini didasarkan pada analisis statistik aliran pesan dan deteksi penyimpangan signifikan secara statistik dari sistem dari perilaku normalnya.

    Sebagai penutup bagian ini, saya ingin mencatat bahwa situs web SecurityLab.ru (http://www.securitylab.ru/tools/?ID=22111) berisi daftar tautan ke situs web berbagai alat perangkat lunak pemrosesan protokol dengan deskripsi singkat tentang alat-alat ini. Anda dapat bereksperimen dengan berbagai program dan memilih salah satu yang cocok untuk Anda.

    Rotasi File Log

    Tentu saja, Anda memahami bahwa jika sistem ini banyak digunakan, maka file log tumbuh dengan cepat. Yang menghasilkan pemborosan ruang disk. Juga ada masalah "menjinakkan" protokol. Red Hat Linux memecahkan masalah ini dengan skrip. logrotate, yang terletak di direktori /etc/cron.daily, dan karena itu dijalankan oleh daemon cron sehari-hari. Skrip ini memungkinkan Anda untuk memproses tidak hanya log sistem syslog tetapi juga program lainnya.

    Naskah logrotate memantau pertumbuhan file log dan memastikan apa yang disebut rotasi file-file ini jika melebihi ukuran yang ditentukan (atau setelah interval waktu yang ditentukan). Rotasi tidak lain adalah penyalinan berurutan versi sebelumnya arsipkan file seperti ini:

  • pesan.2 -> pesan.3
  • pesan.1 -> pesan.2
  • pesan.0 -> pesan.1
  • pesan -> pesan.0
    dan membuat file pesan baru untuk merekam pesan berikutnya.

    Daftar file yang akan diproses oleh skrip logrotate dan parameter pemrosesan ini ditentukan oleh file konfigurasi, yang mungkin beberapa. Nama file konfigurasi ditentukan dalam baris perintah peluncuran skrip (lihat opsi peluncuran di bawah). Di Red Hat Linux, secara default, sebagai file konfigurasi untuk logrotate file digunakan /etc/logrotate.conf, yang mungkin terlihat seperti ini:

    Rotasi mingguan 4 buat kompres include /etc/logrotate.d /var/log/wtmp /var/log/lastlog ( buat bulanan 0664 root utmp rotate 1 )

    File ini seperti file konfigurasi untuk skrip. logrotate terdiri dari beberapa bagian. Bagian pertama mendefinisikan opsi global (satu per baris) yang mengatur opsi default untuk semua log. Bagian berikut menentukan opsi lokal untuk serangkaian file log. Nama file ini tercantum di baris pertama bagian, dan kemudian parameter lokal diatur dalam kurung kurawal yang valid hanya saat memproses file yang ditentukan (juga satu parameter per baris). Nama file log dapat dikutip menurut aturan shell jika mengandung spasi atau karakter khusus lainnya. Anda dapat menentukan beberapa nama file atau pola nama file yang dipisahkan oleh spasi (templat juga mengikuti aturan shell). Pemrosesan setiap bagian diperlakukan sebagai satu tindakan. Baris yang dimulai dengan "#" adalah komentar. Pengaturan lokal lebih diutamakan daripada pengaturan global.

    Dalam contoh file konfigurasi yang diberikan, parameter global pertama kali dijelaskan, dan kemudian, di bagian terpisah, parameter untuk memproses file /var/log/wtmp dan /var/log/lastlog. Selain itu, di antara parameter global, tautan diberikan ke direktori /etc/logrotate.d, di mana setiap paket menulis pengaturan lokal untuk lognya.

    Di bagian pengaturan global, salah satu parameter berikut diatur terlebih dahulu, yang menentukan kriteria rotasi file:

  • sehari-hari- perubahan versi dalam seri terjadi setiap hari,
  • mingguan- versi berubah setiap minggu,
  • bulanan- versi berubah setiap bulan,
  • ukuran byte - perubahan versi terjadi jika ukuran log melebihi jumlah byte yang ditentukan; Anda dapat menggunakan akhiran "k" - kilobyte - dan "M" - megabyte)

  • dan parameter termasuk, diikuti dengan nama file konfigurasi (tambahan) lainnya, atau bahkan nama direktori. Dalam kasus terakhir, semua file dalam direktori yang ditentukan, kecuali untuk subdirektori, file khusus dan file dengan akhiran dari daftar pengecualian, dianggap sebagai file konfigurasi untuk skrip. logrotate(pengarahan termasuk tidak dapat digunakan di dalam bagian yang menentukan parameter pemrosesan untuk sekelompok file).

    Parameter memutar nomor dapat ditempatkan di antara parameter global dan lokal dan menentukan berapa banyak versi lama yang harus disimpan; jika angkanya 0, tidak ada versi protokol yang diarsipkan yang dibuat.

    Jika parameter diatur kompres, maka versi yang lebih lama dikompresi dengan gzip, dan jika ditentukan tidak ada kompresi- mereka tidak kompres. Parameter kompres cmd memungkinkan Anda untuk menentukan program kompresi mana yang akan digunakan (defaultnya adalah gzip), dan buka kompres cmd menentukan program dekompresi (default adalah ungzip). kompresioption mengatur parameter program kompresi; defaultnya adalah "-9", mis. kompresi maksimum untuk gzip. Menggunakan parameter teks kompres Anda dapat mengubah akhiran untuk file terkompresi, dan parameter perpanjangan akhiran menentukan akhiran yang akan ditambahkan ke nama file selama rotasi (sebelum akhiran kompresi).

    Di antara kata kunci yang ditemukan di file konfigurasi, kata-kata pascarotasi dan memutar terlebih dahulu, yang berfungsi sebagai kurung pembuka untuk menyertakan skrip shell dalam file konfigurasi. Semua baris file konfigurasi dari baris pascarotasi sampai ke garis naskah akhir dieksekusi sebagai perintah shell setelah proses mengubah versi file log. Dengan demikian, semua garis dari garis memutar terlebih dahulu sampai ke garis naskah akhir dieksekusi sebelum file log diputar. Dengan menggunakan skrip ini, Anda dapat mengatur berbagai prosedur untuk memproses file log selama rotasi.

    Menggunakan parameter lain dari file konfigurasi, Anda dapat mengganti hak akses ke file log (jika parameter ini tidak disetel, maka atribut file log lama akan digunakan); tentukan kepada siapa harus mengirim pesan kesalahan tentang fungsi sistem logging; kirim salinan arsip log ke pengguna yang ditentukan; atur direktori ke mana protokol akan dipindahkan selama perubahan versi (direktori harus berada di tempat yang sama perangkat fisik as /var/log) atau atur daftar sufiks pengecualian untuk direktori termasuk. Detil Deskripsi fitur dan opsi ini (serta yang tidak disebutkan) akan Anda temukan dengan perintah manlogrotate.

    Seperti yang telah disebutkan, file konfigurasi tambahan logrotate dapat ditentukan pada baris perintah peluncuran skrip. Anda dapat menentukan jumlah file konfigurasi atau nama direktori yang berubah-ubah. Nama file dan direktori dalam daftar ini dipisahkan oleh spasi sederhana. Urutan nama dalam daftar penting karena opsi yang ditentukan dalam file konfigurasi berikut mengesampingkan arti dari opsi yang ditentukan dalam file sebelumnya. Urutan file dalam direktori konfigurasi tidak ditentukan.

    Anda juga dapat menentukan opsi berikut pada baris perintah peluncuran:

    • -D- mode debug, tidak ada perubahan nyata yang dibuat,
    • -F- buat perubahan bahkan jika logrotate tidak melihat kebutuhan - digunakan untuk perubahan dalam daftar log yang diproses,
    • jam tangan pria
    • Mick Bauer, "Penguin Paranoid: carikan: Pemantauan Log Otomatis untuk yang Waspada tapi Malas"
    • RFC 3164. C. Lonvick, Protokol Syslog BSD, Agustus 2001.
    • RFC 3195. D. Baru, M. Rose, Pengiriman Handal untuk syslog, November 2001.
    • Per. S. Lapshansky, "Iblis sedang mengawasi sistem"
    • Denis Kolisnichenko,

    Protokol syslog dan perangkat lunak pendukung menyediakan perekaman informasi tentang peristiwa di log sistem (log, konsol sistem), serta transfernya ke server logging melalui jaringan, penyortiran dan pemrosesan tergantung pada sumber dan pentingnya pesan. Artikel ini menjelaskan protokol syslog, implementasinya di Solaris dan Linux (syslogd), Cisco IOS, serta alat bantu: logrotate, logwatch.

    Komponen sistem adalah generator pesan (perangkat atau proses), protokol pertukaran, pengumpul pesan (kolektor, server syslog), relai (relai, menerima pesan dari satu atau lebih generator dan mentransfernya ke satu atau lebih kolektor atau relay berikut). Generator (atau relai saat mengirim) tidak tahu apakah penerima adalah relai atau kolektor, ia dapat mengirimkan satu pesan ke beberapa penerima, dapat memproses pesan itu sendiri (misalnya, menulis ke file).

    Protokol syslog tidak mengandung perlindungan apa pun terhadap pemalsuan pesan. Lebih buruk dari itu, penggunaan protokol UDP memungkinkan penyerang mengirim pesan atas nama host mana pun. LAN harus dilindungi (IOS ACL, ipchains) dari menerima paket dengan alamat lokal palsu (walaupun ini tidak mencegah pesan palsu dikirim dari dalam LAN) dan dari menerima paket dari luar pada port 514/udp. Kasus meluapnya disk dengan pesan palsu diketahui.

    Protokol syslog dan UDP tidak memberikan jaminan pengiriman (pesan dapat hilang karena kemacetan jaringan atau disadap, pesan yang rusak dihapus tanpa peringatan), urutan pengiriman yang benar (pesan penghentian proses mungkin tiba sebelum proses memulai pesan), pengiriman prioritas.

    Kerahasiaan pesan tidak dijamin, karena ditransmisikan dalam teks yang jelas.

    Jika Anda menentukan alamat kolektor atau relai yang salah saat mengatur pembuat pesan, maka tidak akan ada pesan kesalahan - pesan akan dihapus (atau ditulis ke log orang lain;).

    Tidak ada cara untuk mencegah pengulangan transmisi pesan oleh relai yang dikonfigurasi secara tidak benar.

    RFC 3195 mengusulkan protokol baru melalui TCP (syslog-conn, 601) yang memberikan jaminan pengiriman dalam urutan yang benar. Implementasinya tidak saya ketahui. Campuran mengerikan dari XML, perintah gaya SMTP dan kode pengembalian, dan header MIME (BEEP) yang membungkus pesan format syslog standar. Dua mode digunakan - RAW (analog dengan protokol UDP saat ini) dan COOKED (pesan disusun berdasarkan kolom). BEEP memungkinkan Anda untuk memberikan otentikasi, integritas dan kerahasiaan (SASL, TLS).

    Proyek RFC syslog-sign mengusulkan untuk menyediakan otentikasi, pemesanan pesan, integritas pesan, dan deteksi pesan yang hilang dengan menghasilkan pesan khusus yang berisi tanda tangan digital dari blok pesan sebelumnya, mempertahankan protokol dan format syslog standar, dan menggunakan UDP. Digunakan oleh SHA1, OpenPGP DSA.

    Port 514/UDP digunakan untuk menerima pesan. Disarankan juga untuk menggunakan port sumber 514 untuk pengiriman pesan. Pesan adalah string teks dan tidak boleh lebih dari 1024 byte, jika tidak, dapat dipotong atau bahkan dibuang. Bahkan pesan cacat yang dikirim ke port 514 harus diperlakukan sebagai pesan syslog. Namun, jika relai mengirim pesan lebih jauh, relai harus menambahkan header standar ke dalamnya (mungkin terpotong menjadi 1024 byte) - PENGGUNA, PEMBERITAHUAN, waktu lokalnya, dan nama sederhana dari sumber pesan.

    Pesan dimulai dengan bidang PRI, yang mengkodekan informasi tentang sumber pesan (fasilitas) dan tingkat keparahan (tingkat keparahan) pesan. Diikuti dengan waktu (TIMESTAMP), spasi, nama host atau alamat IP dalam notasi desimal (HOSTNAME), spasi, teks pesan khusus (MSG) dalam US-ASCII (0x20 - 0x7e).

    Nama host (sederhana, bukan FQDN!) ditulis seperti yang diketahui oleh pembuat pesan. Jika perangkat memiliki beberapa antarmuka dengan alamat IP yang berbeda, maka salah satunya dapat digunakan sebagai nama atau alamat host.

    Badan pesan (MSG) biasanya berisi label (TAG) yang menunjukkan program atau proses yang mengeluarkan pesan dan badan pesan (KONTEN). Label mungkin berisi huruf dan angka Latin. Awal isi pesan ditentukan oleh karakter khusus pertama, biasanya titik dua atau kurung siku terbuka. Misalnya, Cisco IOS menggunakan nomor urut pesan dan titik dua sebagai label, sedangkan Unix menggunakan nama program sederhana (isi pesan dimulai dengan nomor proses dalam tanda kurung siku dan titik dua).

    syslogd menerima pesan dari port 514/UDP dan dari sumber lokal (socket /dev/log), merutekannya tergantung pada sumber pesan dan tingkat keparahan. Memungkinkan Anda untuk mengeluarkan pesan ke log, mengeluarkan ke konsol, ke terminal, mengirim ke server lain. Jenis tambahan MARK sumber diperkenalkan (tanda biasa, info)

    Setiap baris log berisi entri pesan tunggal, terdiri dari bidang yang dipisahkan oleh spasi:

    • tanggal dalam format teks standar (bidang TIMESTAMP dari pesan syslog)
    • hostname (fqdn atau singkatan, bidang HOSTNAME dari pesan syslog)
    • teks pesan (bidang TAG dan KONTEN dari pesan syslog)

    Luncurkan parameter:

    • -sebuah soket-pendengar-tambahan (berguna untuk chroot daemon; mungkin ada lebih dari satu)
    • -D(modus debug)
    • -F config-file-name (bawaan, /etc/syslog.conf)
    • -H(ubah perilaku biasa di mana pesan yang diterima dari host jarak jauh tidak diteruskan untuk ditulis ke host jarak jauh untuk menghindari pengulangan)
    • -l daftar tuan rumah (daftar host yang namanya tidak boleh ditulis sebagai FQDN; dipisahkan titik dua)
    • -M menit (interval untuk entri sementara reguler; defaultnya adalah 20; jika 0, maka jangan lakukan sama sekali)
    • -n
    • -P soket mendengarkan (bawaan: /dev/log)
    • -R(izinkan menerima pesan dari host jarak jauh; firewall harus terbuka; syslog untuk 514/udp harus didefinisikan di /etc/services)
    • -S daftar domain (pangkas nama host dari nama domain yang ditentukan; dipisahkan dengan titik dua; default adalah memotong domain yang cocok dengan domain server syslog)
    • -v
    • -x(melarang menentukan nama host dari alamatnya, mencegah kebuntuan saat berjalan di host yang sama dengan server DNS)

    File yang digunakan:

    • /etc/syslog.conf- file konfigurasi (diubah saat startup berdasarkan parameter -F)
    • /dev/log- soket tempat pesan lokal dibaca (diubah saat startup oleh parameter -P)
    • /var/run/syslogd.pid- ID proses

    Reaksi terhadap sinyal:

    • SIGHUP - menginisialisasi ulang (menutup semua file, membaca ulang file konfigurasi)
    • SIGTERM - matikan
    • SIGINT, SIGQUIT - keluar jika debugging dinonaktifkan
    • SIGUSR1 - aktifkan/nonaktifkan debugging (hanya saat menggunakan sakelar -d)

    Berjalan sebagai root. Tidak mengubah izin file. Jika dipaksa untuk membuat file, maka itu membuatnya dengan izin 644. Jika perlu untuk membatasi akses ke log, file yang sesuai harus dibuat secara manual (atau hak akses harus diubah). Menciptakan masalah khusus logrotate.

    Mewakili seperangkat aturan perutean pesan. Setiap aturan terdiri dari pemilih dan tindakan yang dipisahkan oleh tab (dalam sistem yang lebih lama, Solaris 5) atau spasi (Linux). Setelah menerima pesan untuk masuk (dari klogd, dari program lokal atau jarak jauh), syslogd memeriksa setiap aturan untuk melihat apakah pesan cocok dengan pola yang ditentukan oleh pemilih. Jika cocok, maka tindakan yang ditentukan dalam aturan dilakukan. Untuk satu pesan m. sejumlah tindakan telah dilakukan (yaitu pemrosesan pesan tidak berhenti pada keberhasilan pertama).

    Pemilih terdiri dari dua bagian yang dipisahkan oleh titik: sumber pesan dan tingkat keparahan. Huruf besar dan huruf kecil tidak dibedakan. Anda juga dapat menggunakan angka (lihat /usr/include/syslog.h). Selain sumber yang ditentukan dalam syslog.3, Anda dapat menentukan tanda(stempel waktu biasa), keamanan(sinonim usang untuk auth). Selain tingkat keparahan yang ditentukan dalam syslog.h, Anda dapat menggunakan memperingatkan(sinonim untuk peringatan), kesalahan(sinonim untuk berbuat salah), panik(sinonim untuk muncul). Pesan dengan tingkat yang sama atau lebih besar dari yang ditentukan dalam pemilih dan sumber yang sama dengan yang ditentukan dalam pemilih dianggap memenuhi syarat. Tanda bintang sebelum titik sesuai dengan sumber apa pun, setelah titik - ke level mana pun. Kata tidak ada setelah titik - tidak ada level untuk sumber ini. Anda dapat menentukan beberapa sumber dalam satu pemilih (dipisahkan dengan koma). Beberapa selektor dapat ditentukan pada baris yang sama. Semantiknya tidak jelas: jika Anda menggunakan pemilih positif, maka logikanya ATAU, jika negatif ( tidak ada dan tanda seru), maka logikanya DAN.

    Di syslogd baru (linux), Anda dapat mendahului level dengan tanda sama dengan - hanya pesan dengan level yang ditentukan (tetapi tidak dengan level tertinggi) yang akan cocok dengan pemilih; tanda seru - tidak akan cocok dengan pesan dengan level yang sama atau lebih tinggi; tanda seru dan sama - tidak akan mencocokkan pesan dengan level yang sama dengan yang ditentukan.

    Sebagai tindakan, Anda dapat menentukan:

    • nama file biasa (path lengkap dari root), minus di depan nama menonaktifkan sinkronisasi penulisan
    • saluran bernama - fifo (bilah vertikal ditempatkan sebelum nama), saluran itu sendiri harus dibuat sebelum memulai syslogd dengan perintah mkfifo
    • terminal atau konsol
    • @hostname (teruskan pesan untuk pencatatan jarak jauh)
    • daftar pengguna (dipisahkan dengan koma) ke terminal siapa pesan akan dikirim
    • asterisk untuk mengirim pesan ke semua terminal (dinding)

    Saat mem-parsing file konfigurasi syslogd membandingkan alamat loghost(didefinisikan dalam /etc/hosts, bukan melalui DNS) dengan alamat komputer Anda, dan jika cocok, tentukan variabel LOGHOST. syslog.conf kemudian melewati prosesor makro m4(1). Pada dasarnya, ini digunakan agar file konfigurasi yang sama dapat digunakan pada host klien dan server (dari sudut pandang syslog).

    Mulai dan hentikan prosedur: /etc/init.d/syslog(tautan ke sana dari direktori /etc/rc?.d). Nomor proses disimpan di /etc/syslog.pid.

    klogd membaca pesan kernel (baik melalui /proc/kmsg atau melalui panggilan sistem), menentukan level, mengubah alamat perintah menjadi nama program, dan meneruskan pesan ke syslogd.

    Luncurkan parameter:

    • -c tingkat(Pesan tingkat ini dan yang kurang serius akan dikirim ke syslog, dan yang lebih serius akan ditampilkan ke konsol; defaultnya adalah 7; 0 tidak dapat ditentukan)
    • -D(modus debug)
    • -F Nama file (log ke file yang ditentukan alih-alih syslog)
    • -Saya(memuat ulang simbol modul di klogd yang sudah berjalan, harus digunakan setiap kali modul dimuat atau dibongkar; semoga versi insmod, rmmod, dan modprobe saat ini melakukannya sendiri)
    • -SAYA(muat ulang simbol kernel dan modul di klogd yang sudah berjalan)
    • -k Nama file (gunakan file yang ditentukan sebagai tabel simbol kernel alih-alih /boot/System.map)
    • -n(jangan masuk ke latar belakang; harus dijalankan dari init)
    • -Hai(mode satu kali - catat semua pesan yang terakumulasi dalam buffer kernel dan keluar)
    • -P(untuk berjaga-jaga, muat ulang tabel simbol modul pada saat terjemahan alamat - kernel mungkin tidak dapat melakukan ini)
    • -S(hanya gunakan syscalls dan jangan akses /proc/kmsg untuk mendapatkan pesan asli)
    • -v(tampilkan versi dan keluar)
    • -x(jangan mengubah alamat menjadi nama)
    • -2 (pesan kerusakan kernel - Ups! - dipancarkan dua kali: sebelum konversi alamat-ke-nama - untuk ksymoops - dan sesudahnya)

    Tingkat pesan kernel (ditentukan oleh angka dalam kurung sudut dan dikonversi ke tingkat keparahan syslog, tidak berubah saat output ke file):

    • KERN_EMERG - 0 (sistem tidak dapat digunakan)
    • KERN_ALERT - 1 (tindakan harus segera diambil)
    • KERN_CRIT - 2 (kondisi kritis)
    • KERN_ERR - 3 (kondisi kesalahan)
    • KERN_WARNING - 4 (kondisi peringatan)
    • KERN_NOTICE - 5 (kondisi normal tapi signifikan)
    • KERN_INFO - 6 (informasi)
    • KERN_DEBUG - 7 (pesan tingkat debug)

    Reaksi terhadap sinyal:

    • SIGINT, SIGKILL, SIGTERM dan SIGHUP - matikan
    • SIGTSTP - berhenti masuk
    • SIGCONT - lanjutkan, mungkin memilih yang lain
    • sumber pesan (/proc/kmsg atau panggilan sistem)
    • SIGUSR1 - muat ulang simbol modul
    • SIGUSR2 - muat ulang kernel dan simbol modul

    Nomor proses disimpan di /var/run/klogd.pid.

    Inisialisasi pencatatan: buka log- menunjukkan awalan standar yang ditambahkan ke semua pesan berikutnya (biasanya nama program, nomor proses dalam tanda kurung siku dan titik dua); sumber dan pilihan. closelog- akhiri pencatatan. syslog- logging (menunjukkan sumber, tingkat keparahan dan format garis seperti pada printf).

    logrotate(versi 3.2-1/3.3.2-1/3.5.9) - melawan pertumbuhan log: rotasi (versi), kompresi, penghapusan, dan pengiriman surat. Jalankan setiap hari oleh cron /etc/cron.daily/logrotate) dan memungkinkan Anda untuk memproses log jika telah melebihi ukuran yang ditentukan atau pada interval waktu yang ditentukan. Memungkinkan Anda untuk memproses tidak hanya log syslog, tetapi juga program lainnya. Parameter:

    • [-D](mode debug, tidak ada perubahan nyata)
    • [-F](buat perubahan bahkan jika logrotate tidak melihat kebutuhan - digunakan saat mengubah daftar log yang diproses)
    • [-S nama-file-negara ] (keadaan log saat ini disimpan dalam file ini di antara proses, defaultnya adalah /var/lib/logrotate.status)
    • nama-file-konfigurasi (nama dipisahkan oleh spasi; urutan penting; jika nama direktori ditentukan, setiap file di dalamnya dianggap sebagai file konfigurasi; RH menggunakan file /etc/logrotate.conf dan direktori /etc/logrotate.d)

    File konfigurasi mendefinisikan opsi global (satu per baris) yang mengatur opsi default untuk semua log. Untuk setiap rangkaian log yang akan diproses, opsi lokal ditentukan dengan menentukan nama file dasar diikuti oleh opsi lokal dalam kurung kurawal, satu per baris. Sebuah nama file dapat dikutip menurut aturan shell jika mengandung spasi dan karakter khusus lainnya. Anda dapat menentukan beberapa nama file atau pola nama file yang dipisahkan oleh spasi (templat juga mengikuti aturan shell). Pemrosesan setiap bagian diperlakukan sebagai satu tindakan. Baris yang dimulai dengan "#" adalah komentar. Opsi yang ditentukan dalam file konfigurasi berikut mengesampingkan arti opsi yang ditentukan dalam file sebelumnya. Pengaturan lokal lebih diutamakan daripada pengaturan global. Urutan file dalam direktori konfigurasi tidak ditentukan.

    Parameter:

    • kompres | tidak ada kompresi(versi lama kompres atau tidak kompres dengan gzip)
    • kompres cmd(menentukan program kompresi, defaultnya adalah gzip)
    • buka kompres cmd(mengatur dekompresor, defaultnya adalah ungzip)
    • teks kompres(menetapkan akhiran untuk file terkompresi)
    • kompresioption(mengatur parameter program kompresi; defaultnya adalah "-9", yaitu kompresi maksimum untuk gzip)
    • copytruncate | nocopytruncate(biasanya versi lama diganti namanya dan versi baru log dibuat; dengan opsi ini, logrotate menyalin log ke file baru dan kemudian memotong yang lama; digunakan jika program yang membuat log tidak tahu cara menutup itu; rekaman yang dibuat dalam interval antara penyalinan dan pemotongan hilang; apakah akan membantu jika program logging alih-alih menggunakan mode append hanya menulis ke file menggunakan pointer internal?)
    • membuat[ izin pemilik kelompok] | tidak membuat(segera setelah mengganti nama jurnal versi lama dan sebelum menelepon pascarotasi log baru dibuat dengan atribut yang ditentukan - izin ditentukan dalam oktal, seperti pada chmod.2; jika atribut tidak ditentukan, maka diambil dari jurnal lama)
    • sehari-hari(perubahan versi dalam seri terjadi setiap hari)
    • tunda kompres | nodelaycompress(beberapa program tidak segera menutup log, dalam hal ini kompresi harus ditunda hingga siklus berikutnya)
    • kesalahan surel (kepada siapa harus melaporkan bug)
    • perpanjangan akhiran (menentukan akhiran yang ditambahkan ke nama file selama rotasi sebelum akhiran kompresi)
    • kosong | notifempty(ubah versi meskipun file kosong; default)
    • termasuk Nama file | nama-direktori (secara tekstual mengganti file atau semua file dari direktori yang ditentukan; subdirektori, file khusus, dan file dengan akhiran dari daftar pengecualian tidak disertakan; tidak dapat digunakan di dalam bagian)
    • surat alamat | nomail(ketika perubahan versi mengharuskan penghapusan jurnal lama, lalu kirimkan ke alamat yang ditentukan)
    • mail dulu(kirim bukan versi log yang dihapus, tetapi yang pertama)
    • surat terakhir(kirim versi log yang akan dihapus; default)
    • rindu | nomissingok(jangan kirim pesan kesalahan jika log hilang)
    • bulanan(versi berubah setiap bulan)
    • olddir direktori | noolddir(selama perubahan versi, log dipindahkan ke direktori yang ditentukan; harus pada perangkat fisik yang sama)
    • pascarotasi naskah akhir dieksekusi sebagai perintah shell setelah proses perubahan versi)
    • memutar terlebih dahulu(semua baris selanjutnya hingga baris naskah akhir dieksekusi sebelum proses perubahan versi)
    • memutar nomor (berapa banyak versi lama yang harus disimpan; jika 0, maka tidak ada)
    • ukuran byte (perubahan versi terjadi jika ukuran log melebihi jumlah yang ditentukan; Anda dapat menggunakan sufiks "k" - kilobyte - dan "M" - megabyte)
    • skrip bersama | nosharedscripts(jalankan perintah memutar terlebih dahulu dan pascarotasi hanya sekali untuk semua file yang dijelaskan di bagian)
    • tabuext [+ ] daftar akhiran (mengatur daftar sufiks pengecualian untuk termasuk; jika tanda tambah ditentukan, maka penambahan, jika tidak, penggantian; default: .rpmorig, .rpmsave, .rpmnew, ",v", .swp dan "~")
    • mingguan(versi berubah setiap minggu)

    Dikirim oleh RH /etc/logrotate.conf menjelaskan opsi dan opsi global untuk /var/log/wtmp dan /var/log/lastlog dan merujuk ke direktori /etc/logrotate.d, di mana setiap paket menulis pengaturan lokal untuk lognya.

    logwatch adalah kerangka kerja untuk menulis program (disebut filter) untuk mengekstrak informasi yang berguna dari banyak, besar, dan beragam log (bukan hanya syslog). "Paket" dilengkapi dengan beberapa filter yang dirancang untuk Red Hat Linux (beberapa versi kuno, karena inetd disebutkan sebagai ganti xinetd), tetapi Anda harus menyesuaikannya sendiri dengan situasi tertentu. Perubahan terakhir dibuat oleh penulis pada bulan September 2000, sehingga pengembangan lebih lanjut tidak dapat diharapkan lagi.

    Filter dapat ditulis dalam bahasa pemrograman apa pun, tetapi pembuat paket lebih memilih perl. Filter harus ditulis sedemikian rupa sehingga mereka membaca data dari stdin dan mengeluarkan hasilnya ke stdout. Sebelum memanggil filter, variabel lingkungan berikut ditetapkan: LOGWATCH_DATE_RANGE, LOGWATCH_DETAIL_LEVEL, LOGWATCH_TEMP_DIR, LOGWATCH_DEBUG. Program utama juga ditulis dalam perl: /etc/log.d/scripts/logwatch.pl(/etc/log.d/logwatch, /usr/sbin/logwatch dan /etc/cron.daily/00-logwatch adalah tautan simbolis ke sana).

    Direktori /etc/log.d/conf/logfiles/ berisi file konfigurasi grup log yang menyimpan catatan layanan yang dipelihara. Setiap grup dijelaskan dalam file terpisah nama grup.conf, yang menentukan:

    • LogFile = nama file yang berisi log, atau pola penamaan; beberapa nama atau pola dapat ditentukan; nama bisa relatif terhadap LogDir
    • Arsip = nama file yang dibuat oleh logrotate dari versi log yang diarsipkan, atau pola penamaan; beberapa nama atau pola dapat ditentukan; nama bisa relatif terhadap LogDir
    • nama filter ( hanya sekali, meskipun ditampilkan secara berbeda!) dari /etc/log.d/scripts/shared/ sebagai
      *nama filter = parameter , misalnya, untuk memfilter log menurut tanggal jika dalam format syslog standar, gunakan baris:
      *ApplyStdDate=

    Direktori /etc/log.d/conf/services/ berisi file konfigurasi untuk layanan yang entri lognya akan diproses oleh logwatch. Setiap layanan dijelaskan dalam file terpisah Nama layanan.conf, yang menentukan:

    • LogFile = nama grup log
    • filter nama dari /etc/log.d/scripts/shared/ sebagai
      *nama filter = parameter , diluncurkan sebelum filter layanan
    • $nama-variabel-lingkungan = berarti

    Direktori /etc/log.d/scripts/logfiles/ berisi filter untuk memproses grup log: saat memproses grup log, semua file dalam direktori /etc/log.d/scripts/logfiles/ nama grup digunakan sebagai filter.

    Direktori /etc/log.d/scripts/services/ berisi filter untuk memproses catatan layanan tertentu.

    Direktori /etc/log.d/scripts/shared/ berisi filter umum yang digunakan dalam file konfigurasi grup log:

    • applystddate - memfilter log menurut tanggal yang diperlukan, jika ditulis dalam format syslog (di sini dan dalam filter pribadi menurut tanggal, masukkan LANG= sebelum tanggal panggilan, jika tidak, Mar tidak bertepatan dengan Mar dengan cara apa pun;)
    • expandrepeat - mengubah baris "pesan terakhir diulang" menjadi jumlah baris yang sesuai dengan teks pesan dari baris sebelumnya
    • onlycontains - hanya menyisakan baris log yang berisi string yang ditentukan (saya memberi tanda kutip di sekitar "$*")
    • onlyservice - memilih dari log dalam format syslog baris yang terkait dengan layanan yang ditentukan (nama layanan dilewatkan sebagai parameter)
    • hapus - hanya menyisakan baris log syslog yang tidak berisi baris yang ditentukan ( Saya memberi tanda kutip di sekitar "$*" dan melakukan remove1, remove2, dll. karena saya tidak mengerti bagaimana menentukan beberapa subpola untuk egrep dalam satu baris; omong-omong, parameternya diganti di shell, jadi karakter khusus juga tidak dapat digunakan)
    • removeheaders - hapus bidang standar (tanggal, waktu, nama host, label layanan, dan nomor proses)
    • removeservice - menghapus baris dari log syslog yang tidak terkait dengan layanan yang ditentukan (nama layanan dilewatkan sebagai parameter)

    Parameter default disimpan dalam file /etc/log.d/conf/logwatch.conf (/etc/log.d/logwatch.conf memiliki tautan simbolis ke sana), komentar yang memungkinkan untuk memahami artinya dari parameter:

    • LogDir - direktori relatif terhadap nama file yang dipertimbangkan
    • MailTo - siapa yang harus mengirim laporan
    • Cetak - alih-alih mengirim laporan melalui surat, cetak ke stdout
    • Simpan - alih-alih mengirim laporan melalui surat, itu akan menyimpannya ke file yang ditentukan
    • Arsip - gunakan versi log yang dihasilkan oleh logrotate
    • Rentang - interval waktu yang dipertimbangkan: Semua, Hari Ini, Kemarin (hari kalender kemarin)
    • Detail - tingkat detail laporan: dari 0 hingga 10 atau Rendah, Sedang, Tinggi
    • Layanan - Semua atau filter nama dari /etc/log.d/scripts/services/ (beberapa filter dapat ditentukan)
    • LogFile - Semua atau nama grup log (beberapa grup dapat ditentukan)

    Luncurkan parameter:

    • --detail tingkat (Laporkan tingkat verbositas: tinggi, sedang, atau rendah)
    • --logfile log-grup (hanya memproses log grup ini; grup ditentukan dengan nama simbolis dalam file konfigurasi; beberapa grup dapat ditentukan)
    • --melayani Nama layanan (hanya memproses entri log yang terkait dengan layanan ini; layanan ditentukan dengan nama simbolis dalam file konfigurasi; beberapa layanan dapat ditentukan; nama Semua menyebabkan pemrosesan catatan untuk semua layanan)
    • --mencetak(laporkan ke stdout)
    • --mailto alamat (mengirim laporan ke alamat yang ditentukan)
    • --menyimpan Nama file (tulis laporan ke file yang ditentukan)
    • --arsip(memproses tidak hanya versi log saat ini, tetapi juga salinan lama yang dibuat oleh logrotate)
    • --jangkauan tanggal-interval (proses hanya entri-entri dalam log yang termasuk dalam interval waktu yang diberikan: Kemarin, Hari ini, Semua)

    Penggunaan utamanya adalah memasukkan file 00-logwatch (dimulai dengan "00" untuk dijalankan sebelum logrotate) di direktori /etc/cron.daily, yang menyebabkan logwatch dijalankan setiap hari dengan opsi default.

    Sayangnya, semua filter dirancang untuk memastikan bahwa log ditulis pada host yang sama dengan tempat layanan dijalankan.

    Semua log disimpan di satu komputer (jika Anda paranoid, Anda dapat menulis log di dua server sekaligus).

    Korespondensi antara nama sumber formal dan perangkat atau program nyata:

    • lokal0-Cisco
    • local3 - ftp (ada nama sumber khusus, tetapi Solaris 2.5 tidak mengetahuinya)
    • local4 - dicadangkan untuk akuntansi
    • lokal5 - POP3/IMAP
    • local6-tac_plus>

    Server harus memiliki layar terbuka untuk port 514/udp (Anda dapat membatasi alamat sumber paket, tetapi ini hanya akan membantu mencegah kecelakaan). Memulai syslogd (opsi di /etc/rc.d/init.d/syslog atau /etc/sysconfig/syslog) harus dengan sakelar "-r -m 0" (dan juga "-x" jika dijalankan di komputer yang sama server DNS). Mulai klogd dengan opsi "-2 -c 1". Menyiapkan syslog.conf:

    • *.crit - pesan keluaran tingkat keparahan CRIT dan di atasnya ke terminal dan menulisnya ke file terpisah (chmod 600), kirim pesan Anda ke server cadangan; sendmail menganggap menerima pesan sebagai hal yang penting
    • kern - membuat file kern untuk pesan dari semua level (chmod 600)
    • mail - membuat file email untuk pesan dari semua tingkatan (tidak ada sinkronisasi)
    • auth, authpriv - membuat file aman untuk pesan dari semua level (chmod 600)
    • berita - buat file terpisah untuk setiap tingkat keparahan di direktori berita (debug tanpa sinkronisasi)
    • cron - buat file cron untuk pesan semua level (cron di RH 6.2 dan Solaris 2.5 tidak tahu cara menggunakan syslog)
    • local0 - buat file terpisah untuk setiap tingkat keparahan di direktori cisco (err dan di bawahnya tanpa sinkronisasi)
    • local3 - buat file terpisah untuk setiap tingkat keparahan di direktori ftp (info dan debug tanpa sinkronisasi)
    • local5 - buat file imap.log untuk pesan dari semua level
    • local6 - buat file tac_plus.log untuk pesan dari semua level
    • local7 - file boot.log (pesan saat mem-boot sistem dan memulai atau menghentikan syslogd dan klogd)
    • semua pesan tingkat INFO dan di atasnya yang tidak termasuk dalam salah satu file yang ditentukan di atas, tulis ke file pesan (chmod 600)

    Di komputer klien, kami mengonfigurasi syslog sehingga semua pesan dikirim ke server syslog, pesan kesalahan diduplikasi di /var/log/syslog, pesan status kritis diduplikasi di konsol, terminal pengguna. Pada komputer linux, juga membuang pesan boot ke file lokal (local7, boot.log). Server syslog cadangan harus menerima pesan tingkat kritis dari jaringan dan menulisnya ke file (lubang layar, sakelar run "-r").

    logrotate: simpan selamanya, ubah versi sejarang mungkin (bulanan, kecuali squid), buang ke direktori terpisah (kecuali squid) dan kompres (dalam mode tertunda, kecuali ftpd, linuxconf, sendfax), kirim kesalahan dan file yang dihapus ke Saya. Cocokkan parameter untuk syslog.

    Mendahului nama file dengan karakter pipa (|) akan memungkinkan Anda untuk menggunakan fifo (masuk pertama - keluar pertama, masuk pertama, keluar pertama) atau bernama pipa sebagai penerima pesan. Sebelum memulai (atau memulai ulang) syslogd, fifo harus dibuat menggunakan perintah mkfifo. Terkadang fifo digunakan untuk debugging.

    Terminal dan konsol

    Terminal seperti /dev/console.

    mesin jarak jauh

    Untuk meneruskan pesan ke host lain, awali nama host dengan tanda (@). Perhatikan bahwa pesan tidak diteruskan dari host penerima. (agar tugas ini bekerja pada klien dan server dalam file /etc/services garis harus ditulis syslog 514/udp, dan buka port UTP 514)

    daftar pengguna

    Daftar pengguna yang menerima pesan yang dipisahkan koma (jika pengguna masuk). Ini sering mencakup pengguna root.

    Semua pengguna terdaftar

    Untuk memberi tahu semua pengguna terdaftar menggunakan perintah dinding, gunakan karakter asterisk (*).

    Contoh sederhana syslog.conf:

    # Cetak semua pesan kernel ke konsol. #kern.* /dev/console # Semua log tingkat info atau lebih tinggi, kecuali email, dan # jangan mencatat pesan autentikasi dan pesan daemon cron! *.info;mail.none;authpriv.none;cron.none /var/log/messages # Catat pesan yang berisi # informasi otentikasi rahasia ke file terpisah, terlepas dari levelnya. authpriv.* /var/log/secure # Semua pesan dari sistem email juga ditulis ke file terpisah. mail.* -/var/log/maillog # Mencatat pesan penjadwal ke file /var/log/cron cron.* /var/log/cron # Pesan darurat harus segera diterima # oleh semua pengguna sistem *.emerg * # Simpan pesan berita tingkat crit dan di atas ke dalam file terpisah. uucp,news.crit /var/log/spooler # Simpan pesan boot di boot.log local7.* /var/log/boot.log

    Seperti banyak file konfigurasi, sintaksnya adalah:

    • baris yang dimulai dengan # dan baris kosong diabaikan.
    • Simbol * dapat digunakan untuk menunjukkan semua kategori atau semua prioritas.
    • Kata kunci khusus none menunjukkan bahwa logging untuk kategori ini tidak boleh dilakukan untuk tindakan ini.
    • Tanda hubung sebelum nama file (seperti -/var/log/maillog dalam contoh ini) menunjukkan bahwa log tidak boleh disinkronkan setelah setiap penulisan. Jika terjadi kerusakan sistem, Anda mungkin kehilangan informasi, tetapi menonaktifkan sinkronisasi akan meningkatkan kinerja.

    Dalam sintaks file konfigurasi, Anda dapat menempatkan sebelum prioritas tanda! untuk menunjukkan bahwa tindakan tersebut tidak boleh diterapkan, dari level ini ke atas. Demikian pula, prioritas dapat diawali tanda = untuk menunjukkan bahwa aturan hanya berlaku untuk level itu, atau != untuk menunjukkan bahwa aturan tersebut berlaku untuk semua tingkatan kecuali yang satu ini. Di bawah ini adalah beberapa contoh (man syslog.conf Anda dapat menemukan lebih banyak contoh):

    # Kirim semua pesan kernel ke /var/log/kernel. # Kirim semua pesan tingkat kritis dan lebih tinggi ke mesin dan konsol sysloger jarak jauh # Kirim semua pesan tingkat info, pemberitahuan dan peringatan ke /var/log/kernel-info # kern.* /var/log/kernel kern.crit @sysloger kern .crit /dev/console kern.info;kern.!err /var/log/kernel-info # Kirim semua pesan sistem email kecuali level info ke /var/log/mail. mail.*;mail.!=info /var/log/mail

    Saya mencoba menunjukkan karya syslogd sejelas mungkin pada diagram:

    Memulai daemon syslogd

    Peluncuran daemon logging dimulai pada tahap inisialisasi sistem melalui skrip /etc/rc.d/init.d/syslog, namun, untuk menyetel opsi peluncuran, tidak perlu memodifikasi skrip ini - mulai dari versi 7.2, opsi peluncuran dibaca dari file konfigurasi terpisah /etc/sysconfig/syslog (/etc/default/syslogdi debian).

    Berikut adalah beberapa kemungkinan parameter startup daemon syslogd:

    • -a /folder/socket- menentukan soket pendengar tambahan (jangan lupa untuk membuat soket sebelumnya)
    • -D- mode debug. Dalam hal ini, daemon tidak masuk ke latar belakang dan mengeluarkan semua pesan ke terminal saat ini;
    • -F config-file-name. Menentukan nama file konfigurasi alternatif yang akan digunakan sebagai pengganti /etc/syslog.conf default;
    • -l daftar tuan rumah- mengatur daftar host yang namanya tidak boleh ditulis dengan nama domain lengkap (FQDN - Nama Domain Qwalified Lengkap);
    • -m menit- berjalan tanpa opsi ini, sysklogd mencatat pesan dari tanda kategori (cap waktu) setiap 20 menit. Dengan opsi -m, Anda dapat mengubah interval antar tanda, atau benar-benar berhenti mengeluarkan pesan seperti itu;
    • -p soket- menyetel soket UNIX alternatif (sebagai ganti mendengarkan /dev/log default);
    • -R- izin untuk menerima pesan dari host jarak jauh;
    • -x- larangan menentukan nama host berdasarkan alamatnya untuk mencegah pembekuan saat bekerja pada host yang sama dengan server DNS.
    • -v- tampilkan versi dan selesaikan pekerjaan

    Setelah memulai daemon syslogd, file status dibuat /var/lock/subsys/syslog panjang nol, dan file dengan ID proses /var/run/syslogd.pid.

    Dengan perintah
    kill -SIGNAL `cat /var/run/syslogd.pid`

    bisa dikirim syslogd daemon salah satu sinyal berikut: SIGHUP- memulai ulang daemon; SIGTERM- penyelesaian pekerjaan; SIGUSR1- aktifkan / nonaktifkan mode debug.

    Sebenarnya, dua daemon logging diluncurkan di sistem - syslogd dan klogd. Kedua daemon sudah termasuk dalam paket syslogd.

    daemon klogd bertanggung jawab untuk mencatat peristiwa yang terjadi di inti sistem. Perlunya daemon klogd terpisah karena kernel tidak dapat menggunakan fungsi syslog standar. Ini karena pustaka C standar (termasuk pustaka yang berisi fungsi syslog) dimaksudkan untuk digunakan hanya oleh: aplikasi umum. Karena kernel juga membutuhkan fungsi logging, itu termasuk perpustakaannya sendiri yang tidak tersedia untuk aplikasi. Oleh karena itu, kernel menggunakan mekanisme pembuatan pesannya sendiri.

    daemon klogd dirancang untuk mengatur pemrosesan pesan-pesan ini. Pada prinsipnya, ia dapat melakukan pemrosesan ini sepenuhnya sendiri dan independen dari syslogd, seperti menulis pesan-pesan ini ke file, tetapi dalam kebanyakan kasus, pengaturan klogd default digunakan, di mana semua pesan dari kernel diteruskan ke syslogd yang sama. daemon.

    Rotasi otomatis (memperbarui file yang diisi) dan pengarsipan log

    Seiring waktu, file log cenderung bertambah, terutama ketika suatu layanan berjalan secara intensif. Oleh karena itu, perlu untuk dapat mengontrol ukuran log. Ini dilakukan dengan menggunakan perintah logrotate, yang biasanya dilakukan daemon cron. Saya akan berbicara tentang pekerjaan cron di artikel berikut. tujuan utamanya perintah logrotate adalah mencadangkan log secara berkala dan membuat log bersih baru. Beberapa generasi log disimpan dan ketika log generasi terakhir kedaluwarsa, log tersebut dapat diarsipkan (dikompresi). Hasilnya dapat dikirim melalui pos, misalnya, kepada orang yang bertanggung jawab atas pengarsipan.

    Untuk menentukan urutan rotasi dan pengarsipan log, gunakan file konfigurasi /etc/logrotate.conf . Untuk log yang berbeda, Anda dapat mengatur periodisitas yang berbeda, misalnya, harian, mingguan, atau bulanan, selain itu, Anda dapat menyesuaikan jumlah generasi yang terakumulasi, serta menentukan apakah salinan arsip akan dikirim ke manajer arsip dan, jika jadi ketika. Di bawah ini ditampilkan contoh file /etc/logrotate.conf:

    # pertama atur parameter default (opsi global) # perbarui file log mingguan mingguan # simpan arsip log selama 4 minggu terakhir putar 4 # buat file baru (kosong) setelah rotasi (perbarui) buat # batalkan komentar jika Anda ingin file yang disimpan dikompres #kompres # aktifkan pengaturan rotasi dari direktori tertentu termasuk /etc/logrotate.d # jangan simpan wtmp, atau btmp -- pengaturan rotasi data log adalah sebagai berikut: /var/log/wtmp (missingok bulanan buat 0664 root utmp rotate 1 ) / var/log/btmp ( missingok bulanan buat 0664 root utmp rotate 1 ) # syslog tertentu dapat dikonfigurasi di bawah ini

    Opsi global ditempatkan di awal file logrotate.conf. Mereka digunakan secara default kecuali sesuatu yang lebih spesifik ditentukan di tempat lain. Dalam contoh, log diputar mingguan dan cadangan disimpan untuk empat minggu. Segera setelah jurnal diputar, jurnal baru secara otomatis dibuat menggantikan jurnal lama. file logrotate.conf mungkin berisi spesifikasi dari file lain. Jadi, itu mencakup semua file dari direktori /etc/logrotate.d.

    Contoh ini juga berisi aturan khusus untuk /var/log/wtmp dan /var/log/btmp(menyimpan informasi tentang upaya yang berhasil dan gagal untuk memasuki sistem), rotasi yang terjadi setiap bulan. Jika file hilang, tidak ada pesan kesalahan yang dikeluarkan. File baru dibuat dan hanya satu cadangan yang disimpan.

    Dalam contoh ini, ketika cadangan mencapai generasi terakhir, itu dihapus karena tidak ditentukan apa yang harus dilakukan dengannya.

    Cadangan log juga dapat dibuat ketika log mencapai ukuran tertentu, dan skrip dapat dibuat dari kumpulan perintah untuk dijalankan sebelum atau setelah operasi pencadangan. Contoh:

    /var/log/messages (putar 5 email [dilindungi email] ukuran 100k postrotate /usr/bin/killall -HUP syslogd endscript )

    Dalam contoh ini rotasi /var/log/pesan dihasilkan ketika mencapai ukuran 100 KB. Lima cadangan terakumulasi, dan ketika yang tertua kedaluwarsa cadangan, itu dikirim melalui surat ke alamat [dilindungi email] Kata perintah postrotate menyertakan skrip yang memulai ulang daemon syslogd setelah rotasi selesai dengan mengirimkan sinyal HUP. Kata perintah endscript diperlukan untuk mengakhiri skrip, dan juga jika ada skrip prerotate. Lihat halaman manual untuk logrotate untuk informasi lebih lanjut.

    Parameter, atur dalam file konfigurasi logrotate.conf:

    • kompres| tidak ada kompresi(versi lama kompres atau tidak kompres dengan gzip)
    • kompres cmd(menentukan program kompresi, defaultnya adalah gzip)
    • buka kompres cmd(mengatur dekompresor, defaultnya adalah ungzip)
    • teks kompres(menetapkan akhiran untuk file terkompresi)
    • kompresioption(mengatur parameter program kompresi; defaultnya adalah "-9", yaitu kompresi maksimum untuk gzip)
    • copytruncate| nocopytruncate(biasanya versi lama diganti namanya dan versi baru log dibuat; dengan opsi ini, logrotate menyalin log ke file baru dan kemudian memotong yang lama; digunakan jika program yang membuat log tidak tahu cara menutup itu; catatan yang dibuat dalam interval antara penyalinan dan pemotongan hilang; apakah akan membantu jika program logging alih-alih menggunakan mode append hanya menulis ke file menggunakan pointer internal?)
    • membuat[grup-pemilik-izin] | tidak membuat(segera setelah mengganti nama jurnal versi lama dan sebelum memanggil postrotate, jurnal baru dibuat dengan atribut yang ditentukan - izin diatur dalam oktal, seperti pada chmod.2; jika atribut tidak ditentukan, maka atribut tersebut diambil dari jurnal lama)
    • sehari-hari(perubahan versi dalam seri terjadi setiap hari)
    • tunda kompres| nodelaycompress(beberapa program tidak segera menutup log, dalam hal ini kompresi harus ditunda hingga siklus berikutnya)
    • kesalahansurel(kepada siapa harus melaporkan bug)
    • perpanjanganakhiran(menentukan akhiran yang ditambahkan ke nama file selama rotasi sebelum akhiran kompresi)
    • kosong| notifempty(ubah versi meskipun file kosong; default)
    • termasukNama file| nama direktori (secara tekstual mengganti file atau semua file dari direktori yang ditentukan; subdirektori, file khusus, dan file dengan akhiran dari daftar pengecualian tidak disertakan; tidak dapat digunakan di dalam bagian)
    • suratalamat| nomail(ketika perubahan versi mengharuskan penghapusan jurnal lama, lalu kirimkan ke alamat yang ditentukan)
    • mail dulu(kirim bukan versi log yang dihapus, tetapi yang pertama)
    • surat terakhir(kirim versi log yang akan dihapus; default)
    • rindu| nomissingok(jangan kirim pesan kesalahan jika log hilang)
    • bulanan(versi berubah setiap bulan)
    • olddirdirektori| noolddir(selama perubahan versi, log dipindahkan ke direktori yang ditentukan; harus pada perangkat fisik yang sama)
    • pascarotasi(semua baris lebih lanjut hingga baris skrip akhir dieksekusi sebagai perintah shell setelah proses perubahan versi)
    • memutar terlebih dahulu(semua baris selanjutnya hingga baris skrip akhir dieksekusi sebelum proses perubahan versi)
    • memutarnomor(berapa banyak versi lama yang harus disimpan; jika 0, maka tidak ada)
    • ukuranbyte(perubahan versi terjadi jika ukuran log melebihi jumlah yang ditentukan; Anda dapat menggunakan sufiks "k" - kilobyte - dan "M" - megabyte)
    • skrip bersama| nosharedscripts(Jalankan perintah prerotate dan postrotate hanya sekali untuk semua file yang dijelaskan di bagian ini)
    • tabuext[+] daftar akhiran(mengatur daftar sufiks pengecualian untuk menyertakan; jika tanda plus ditentukan, maka penambahan, jika tidak penggantian; default: .rpmorig, .rpmsave, .rpmnew, ",v", .swp dan "~")
    • mingguan(versi berubah setiap minggu)

    Mempelajari dan memantau jurnal

    Entri log biasanya berisi stempel waktu, nama host tempat proses yang dijelaskan berjalan, dan nama proses. Lihat log Anda dapat menggunakan program paging, misalnya, lebih sedikit, Anda dapat mencari entri tertentu (misalnya, pesan kernel dari daemon tertentu) menggunakan perintah grep:

    # less /var/log/messages # grep "ppp" /var/log/messages | tail 17 Des 16:34:25 proxy pppd: Koneksi dihentikan. 17 Des 16:34:25 proxy pppd: Keluar. 17 Des 16:35:57 proxy pppd: LCP dihentikan oleh rekan (^P]kV^@

    Komputer mungkin tidak bekerja terus-menerus dan mati, katakanlah di malam hari. Oleh karena itu, entri di /var/log/messages disimpan secara siklis dari komputer dinyalakan hingga dimatikan, ini dapat dilihat dari pesan:

    17 Desember 08:32:56 syslog-server syslogd 1.4-0: mulai ulang. 17 Des 08:32:56 syslog-server syslog: syslogd start berhasil 17 Des 08:32:56 syslog-server kernel: klogd 1.4-0, log source = /proc/kmsg dimulai. 17 Des 08:32:56 syslog-server syslog: memulai klogd berhasil

    17 Des 08:32:56 kernel syslog-server: Baris perintah kernel: auto BOOT_IMAGE=linux ro root=303 BOOT_FILE=/boot/vmlinuz-2.4.2-2 17 Des 08:32:56 kernel syslog-server: Memori: 125652k/130560k tersedia (kode kernel 1365k, 4200k dicadangkan, 92k data, 236k init, 0k highmem) 17 Des 08:32:56 kernel syslog-server: CPU: Intel(R) Pentium(R) 4 CPU 1.60GHz stepping 02

    Juga, dalam file ini Anda dapat menemukan informasi tentang memori disk (termasuk informasi tentang geometri disk, struktur partisi dan interupsi yang digunakan), informasi tentang perangkat periferal, tentang memulai layanan dan layanan individual, informasi tentang menghubungkan sistem file dan pesan masuk pengguna. , sebagai serta pesan kesalahan.

    Terkadang mungkin perlu pemantauan log sistem untuk mencari peristiwa terkini. Misalnya, Anda dapat mencoba menangkap peristiwa yang jarang terjadi pada saat itu terjadi. Dalam hal ini, Anda dapat menggunakan perintah ekor dengan pilihan -F untuk memantau isi log sistem. Contoh:

    # tail -f /var/log/messages | grep syslog-server 17 Des 16:46:09 syslog-server pppd: pptpd-logwtmp.so ip-up ppp0 maikop 94.77.0.150 17 Des 16:46:09 syslog-server pppd: Script /etc/ppp/ip-up selesai (pid 12552), status = 0x0 17 Des 16:46:49 syslog-server pptpd: CTRL: Koneksi kontrol klien 85.175.197.65 dimulai 17 Des 16:46:49 syslog-server pptpd: CTRL: Memulai panggilan (meluncurkan pppd, membuka GRE) 17 Des 16:46:49 syslog-server pppd: Plugin /usr/lib/pptpd/pptpd-logwtmp.so dimuat.

    Selain file log yang ditentukan di /etc/syslog.conf, ada juga file lain, seperti file yang menyimpan informasi tentang proses boot sistem sebelum syslogd dimulai, serta file yang memiliki format biner dan menyimpan informasi. tentang login pengguna terakhir, semua login pengguna yang berhasil, dan semua login pengguna yang gagal. Direktori /var/log/ juga dapat berisi file log untuk daemon seperti server web atau server proxy. Format file-file ini mirip dengan log syslogd.

    Akhirnya, saya ingin menekankan bahwa protokol ini tidak terlalu aman, karena. syslog tidak mengandung perlindungan apa pun terhadap pemalsuan pesan. Lebih buruk lagi, penggunaan protokol UDP memungkinkan penyerang mengirim pesan atas nama host mana pun. LAN Anda harus dilindungi dari menerima paket dengan alamat lokal palsu (walaupun ini tidak mencegah pesan palsu dikirim dari dalam LAN) dan dari menerima paket dari luar pada port 514/udp. Kasus meluapnya disk dengan pesan palsu diketahui.

    Protokol syslog dan UDP tidak memberikan jaminan pengiriman (pesan dapat hilang karena kemacetan jaringan atau disadap, pesan yang rusak dihapus tanpa peringatan), urutan pengiriman yang benar (pesan penghentian proses mungkin tiba sebelum proses memulai pesan), pengiriman prioritas.

    Kerahasiaan pesan tidak dijamin, karena ditransmisikan dalam teks yang jelas.

    Jika Anda menentukan alamat kolektor atau relai yang salah saat mengatur pembuat pesan, maka tidak akan ada pesan kesalahan - pesan akan dihapus (atau ditulis ke log orang lain).

    Beberapa proyek telah diusulkan untuk meningkatkan protokol syslog. Misalnya, RFC 3195 mengusulkan sistem pencatatan berbasis TCP (syslog-conn) yang memastikan bahwa pesan dikirim dalam urutan yang benar. Proyek syslog-sign mengusulkan untuk menyediakan otentikasi, pemesanan pesan, integritas pesan, dan deteksi pesan yang hilang dengan menghasilkan pesan khusus yang berisi tanda tangan digital dari blok pesan sebelumnya sambil mempertahankan protokol dan format syslog standar dan menggunakan UDP.

    Mari kita rangkum sedikit:

    Linux memiliki satu daemon yang bertanggung jawab untuk mencatat peristiwa sistem lokal dan sistem jarak jauh. Semua peristiwa dikumpulkan dari soket /dev/log, port UDP - 514, serta dari "helper" - daemon klogd, yang mengirim pesan dari kernel. Semua pesan yang dikumpulkan disaring oleh daemon syslogd melalui aturan di file /etc/syslog.conf dan didistribusikan ke tujuan yang sesuai sesuai aturan. File log secara berkala "dipotong". Frekuensi ditentukan oleh file logrotate.conf dan perintah logrotate, yang dijalankan oleh penjadwal sistem - cron.

    Itu saja untuk hari ini. Saya harap saya menggambarkan semuanya sejelas mungkin. Seiring waktu, saya akan melengkapi artikel!

    Hormat kami, Mc.Sim!

    SERGEY SUPRUNOV

    Tips FreeBSD: menggunakan syslog

    - Izinkan saya, kawan, saya memiliki semua gerakan yang tertulis!

    “Kantor sedang menulis,” kata Ostap.

    I. Ilf, E. Petrov "12 kursi".

    Mencatat operasi sistem apa pun, dan terutama server, adalah salah satu komponen administrasi yang paling penting. Dalam file log yang pertama-tama kita lihat ketika ada beberapa masalah dalam sistem. Dari sana kami menarik keyakinan bahwa program ini atau itu bekerja seperti yang diharapkan. Saat mengembangkan aplikasi web, file log menjadi sumber informasi debug terpenting. Tentang fitur daemon syslog, yang bertanggung jawab untuk mencatat informasi sistem, akan dibahas.

    Apa itu syslog?

    Syslog adalah layanan terpusat yang mengumpulkan dan mencatat informasi log dari berbagai komponen sistem operasi dan proses pengguna. Program pihak ketiga biasanya dapat bekerja dengan file log mereka sendiri, meskipun banyak di antaranya dapat dikonfigurasi untuk bekerja dengan daemon syslogd juga. Keuntungan menggunakan syslog termasuk kemampuan untuk mengelola proses pengumpulan informasi yang diperlukan menggunakan file konfigurasi tunggal, yang memastikan keseragaman file log yang dihasilkan dan, sebagai hasilnya, menyederhanakan pengelolaannya.

    Layanan syslog disediakan oleh daemon syslogd, yang secara otomatis dimulai saat startup sistem. Itu terus-menerus dalam memori, menunggu pesan dari proses lain dan memprosesnya sesuai dengan pengaturannya.

    Setiap pesan dicirikan oleh level dan sumber (fasilitas). Level mendefinisikan pentingnya pesan dalam hal operasi sistem. File syslog.h mendefinisikan level berikut (prioritas):

    Tabel 1. Level pesan

    Tingkat

    Keterangan

    muncul, panik

    Keadaan "panik"

    peringatan

    Kondisi yang membutuhkan perhatian segera

    kritik

    Kondisi kritis

    salah, kesalahan

    Kesalahan kerja lainnya

    peringatan, peringatan

    Peringatan

    melihat

    Pesan yang bukan kesalahan tetapi harus diperhatikan

    informasi

    Pesan informasi (operasi normal)

    debug

    Informasi Debug

    Tabel 1 mencantumkan level pesan dalam urutan menurun. Urutan ini akan dibutuhkan nanti saat membahas sintaks file konfigurasi.

    Notasi tingkat pesan yang ditulis pada baris yang sama (misalnya muncul dan panik) adalah sinonim dan keduanya dapat digunakan. Namun, panik, kesalahan, dan peringatan (tercantum kedua dalam tabel) dianggap usang dan harus dihindari saat mengedit file konfigurasi. Gunakan emerg, err dan warning sebagai gantinya.

    Kemungkinan sumber pesan tercantum dalam Tabel 2:

    Tabel 2. Sumber pesan

    Sumber

    Keterangan

    lelaki yg tdk terpelajar

    Pesan kernel

    auth, authpriv

    keamanan

    Pesan keamanan (misalnya dari firewall )

    menghibur

    Pesan datang ke konsol (/dev/console )

    syslog

    Pesan syslog asli

    cron

    pesan subsistem cron

    Pesan layanan waktu

    Pesan server FTP

    Cetak Pesan Subsistem

    surat

    Pesan pos

    berita

    Pesan Layanan Berita

    uucp

    Pesan UUCP

    daemon

    Pesan dari daemon lain yang berjalan di sistem

    pengguna

    Pesan proses pengguna

    lokal0-lokal7

    Dapat digunakan untuk berbagai kebutuhan pengguna (terkadang digunakan oleh sistem)

    Saat mengonfigurasi aplikasi untuk bekerja dengan layanan syslog, tentukan fasilitas mana yang digunakannya. Beberapa program memungkinkan Anda untuk menentukan sendiri sumbernya. Misalnya, clamd daemon (proses utama antivirus clamav) menggunakan local6 secara default, tetapi memungkinkan Anda untuk menentukan sumber yang berbeda (parameter LogFacility dalam file konfigurasi). Dalam beberapa kasus, mungkin berguna untuk menggabungkan pesannya dengan pesan dari layanan email, dengan menetapkan LOG_MAIL sebagai sumbernya.

    Opsi memulai daemon

    Untuk daftar lengkap opsi startup, lihat halaman manual syslogd. Di sini kita hanya akan mempertimbangkan beberapa di antaranya.

    Syslog dapat menulis pesan masuk ke file log (yang biasanya terletak di direktori /var/log), mengirimkannya ke konsol atau terminal pengguna yang terhubung, meneruskannya ke host jarak jauh, atau menyalurkannya ke utilitas eksternal untuk diproses .

    Untuk jaringan, syslog menggunakan port 514 (UDP dan TCP). Dimulai tanpa opsi tambahan, syslogd akan mendengarkan pada port ini untuk pesan masuk. Sakelar -s menonaktifkan pesan masuk, tetapi soket pada port 514 masih dibuat untuk koneksi keluar sehingga syslogd dapat mengirim pesan ke host jarak jauh. Menggandakan sakelar (-ss) juga menonaktifkan koneksi keluar.

    Secara default, syslogd dimulai dengan opsi -s (lihat /etc/defaults/rc.conf, opsi syslogd_flags), jadi koneksi masuk ditolak. Jika Anda ingin menggunakan layanan syslog server Anda untuk melayani beberapa mesin, tambahkan baris berikut ke /etc/rc.conf:

    syslogd_flags= ””

    Ini akan menimpa nilai yang ditetapkan di /etc/defaults/rc.conf dan syslogd akan dapat melayani koneksi yang masuk. Secara alami, dalam hal ini, perlu untuk memastikan tingkat keamanan yang diperlukan, menghilangkan kemungkinan host asing untuk menulis apa pun ke log Anda. Sakelar -a memungkinkan Anda untuk menetapkan batasan pada koneksi masuk (lihat man syslogd). Juga, firewall yang dikonfigurasi dengan benar memainkan peran penting.

    Sakelar lain yang berguna, -l, memungkinkan Anda untuk menentukan berkas soket tambahan yang didengarkan syslogd selain /var/run/log. Misalnya, kunci ini diperlukan agar syslog dapat melayani program yang berjalan di lingkungan chroot. Secara khusus, ini adalah cara kerja bernama sejak BIND 9. Di FreeBSD 5.3, syslogd dimulai dengan opsi berikut:

    # ps -lilin | grep syslog

    321?? Ss 0:01.67 /usr/sbin/syslogd -l /var/run/log -l /var/named/var/run/log -s

    Sintaks File Konfigurasi

    Logging dikonfigurasi dalam file /etc/syslog.conf. Tak perlu dikatakan bahwa hanya pengguna root yang dapat mengeditnya. File ini berisi dua jenis string - sebut saja "filter" dan "aturan".

    String filter mendefinisikan program atau host yang pesannya akan tunduk pada aturan berikut. Filter seperti "!prog" (atau "#!prog") menunjukkan bahwa baris berikut merujuk ke log yang dihasilkan oleh program prog yang ditentukan. Sinonim untuk entri ini adalah "!+prog". Baris "!-prog", di sisi lain, mengatakan bahwa aturan berikut akan berlaku untuk semua pesan kecuali yang berasal dari program prog. Diperbolehkan untuk membuat daftar beberapa program yang dipisahkan dengan koma, sedangkan tanda “+” atau “-” berlaku untuk seluruh daftar.

    Jika string filter diatur ke "+hostname", maka host yang ditentukan akan digunakan sebagai sumber pesan untuk diproses oleh aturan berikutnya. Seperti dalam kasus program, simbol "-" menunjukkan bahwa aturan akan diterapkan ke semua pesan, kecuali yang berasal dari host yang ditentukan. Anda dapat menentukan daftar host yang dipisahkan dengan koma.

    Karakter "*" yang ditentukan sebagai program atau host menggantikan filter yang ditetapkan sebelumnya. Artinya, aturan yang ditentukan setelah garis tersebut akan diterapkan ke semua pesan. Filter nama host atau program tidak bergantung satu sama lain dan dapat aktif pada saat yang bersamaan. Misalnya:

    # Aturan yang ada di sini berlaku untuk semua pesan

    my.host

    # Aturan berlaku untuk semua pesan dari my.host

    pencatat

    # Aturan berlaku untuk pesan dari logger dengan my.host (filter host masih berlaku)

    # Aturan berlaku untuk pesan dari su dengan my.host

    # Aturan berlaku untuk pesan dari su dari host mana pun (filter host dihapus, filter program masih berlaku)

    # Aturan berlaku untuk semua pesan (filter program juga dibatalkan)

    Garis aturan terlihat seperti ini:

    fasilitas. Tujuan tingkat CMP

    Di sini fasilitas adalah sumber pesan ("*" menunjukkan sumber apa saja), level adalah level pesan yang akan diproses sesuai dengan aturan ini. Kata layanan "tidak ada", yang ditentukan alih-alih level, menginstruksikan untuk sepenuhnya mengecualikan pesan dari sumber ini.

    CMP adalah operasi perbandingan (simbol ">", "<», «=», «>=», «<=», а также символ отрицания «!»). Если символ сравнения не указан, подразумевается «больше или равно», то есть обрабатываются все сообщения уровня level и выше.

    Tujuan menunjukkan di mana pesan harus disimpan. Ini bisa berupa file log (path lengkap ditunjukkan, dimulai dengan "/"), alamat server jauh (dimulai dengan simbol "@"), nama pengguna (pesan akan dikirim ke terminal yang terhubung dengan pengguna ini). Juga, pesan dapat ditransfer ke program eksternal untuk diproses, di mana simbol pipa "|" digunakan.

    Beberapa contoh aturan

    Semua pesan kernel akan dikirim ke file kern.log.

    kern.* /var/log/kern.log

    Semua pesan kesalahan, serta pesan tingkat darurat, peringatan dan kritis, akan ditempatkan di all-err.log. Perhatikan tanda hubung sebelum nama file log. Secara default, pesan di-buffer di memori dan ditulis ke disk saat buffer terisi. Ini mengurangi beban pada sistem file, tetapi dapat menyebabkan beberapa informasi hilang jika mesin mogok. Tanda hubung sebelum nama file menyebabkan daemon syslogd segera menulis pesan ke disk.

    *.err - /var/log/all-err.log

    Pesan debug dari proses pengguna akan ditampilkan di terminal tempat vasya pengguna saat ini terhubung.

    pengguna.debug

    Semua pesan dari layanan berita dan email akan diteruskan ke port 514 mesin syslog.host.ru.

    mail.*,news.* @syslog.host.ru

    Semua pesan layanan cetak di bawah peringatan akan ditempatkan dalam file yang ditentukan. Seperti disebutkan sebelumnya, default lebih besar dari atau sama dengan, dan ! itu terbalik, menggantinya dengan "kurang". Jika Anda ingin mengecualikan level tertentu, Anda harus menggunakan konstruksi "!=".

    lpr.!warning /var/log/printers.log

    Pesan level debug (dan hanya itu) dengan fasilitas level0 dan level3 akan ditampilkan di semua terminal yang terhubung.

    level0,level3.=debug *

    Pesan layanan waktu lebih besar dari kritis (yaitu, muncul dan waspada) dan kurang dari atau sama dengan pemberitahuan (pemberitahuan, info, dan debug) akan dikirim ke terminal ntpuser dan pengguna root.

    ntp.>kritik,<=notice ntpuser,root

    Semua pesan tingkat peringatan, kecuali yang berasal dari layanan email, akan ditulis ke file warn.log.

    *.=warning,mail.none /var/log/warn.log

    Dalam hal ini, semua pesan dengan level lebih besar atau sama dengan crit akan dikirim melalui email ke pengguna root.

    *.kritik | mail -s root "pesan penting"

    Seperti yang Anda lihat, format file konfigurasi memungkinkan beberapa level, sumber, dan tujuan dicantumkan pada baris yang sama, yang membuat konfigurasi lebih fleksibel. Agar perubahan setelah pengeditan diterapkan, Anda perlu mengirim sinyal HUP ke proses syslogd:

    # kill –HUP `cat /var/run/syslog.pid`

    Perlu dicatat bahwa jika pesan tertentu berada di bawah aksi beberapa baris dalam file konfigurasi, maka itu akan diproses sesuai dengan masing-masing baris. Contoh:

    mail.* /var/log/maillog

    *.=err /var/log/error.log

    Dalam hal ini, pesan mail.err akan berakhir di maillog dan error.log.

    Strategi kompilasi file konfigurasi

    Sebagai penutup tinjauan file konfigurasi, saya akan mengatakan beberapa kata tentang strategi untuk mengkompilasinya. Selain "seandainya berhasil" yang sangat populer, dua yang utama dapat dibedakan, yang secara kondisional akan kita sebut "berdasarkan sumber" dan "berdasarkan tujuan".

    • Strategi pertama, yang dapat dilihat di sejumlah distribusi GNU/Linux, adalah menulis aturan yang berbeda untuk setiap sumber pesan (atau kelompok aturan jika pesan dari tingkat yang berbeda harus diperlakukan berbeda). Keuntungannya adalah kesederhanaan menentukan di mana pesan layanan tertentu ditulis.
    • Strategi "menurut tujuan" adalah membuat, jika mungkin, hanya satu baris untuk setiap "penerima" pesan, seperti file. Pendekatan ini diikuti, khususnya, oleh FreeBSD. Akibatnya, mudah untuk menentukan informasi apa yang ditulis ke file log tertentu, tetapi, misalnya, tujuan untuk pesan kernel harus dikumpulkan di seluruh file konfigurasi.

    utilitas pencatat

    Sistem ini menyertakan utilitas logger yang memungkinkan Anda mengirim pesan ke layanan syslog langsung dari baris perintah. Lebih mudah digunakan saat menguji aturan konfigurasi, serta dalam mengembangkan skrip untuk mencatat pekerjaan mereka. Contoh:

    user$ logger -p user.err “Kesalahan dalam program pengguna!”

    pengguna$ logger -h syslog.host.ru "Uji"

    Contoh pertama akan mengirimkan pesan dari pengguna fasilitas level err, yang akan diproses sesuai dengan file konfigurasi. Perintah kedua akan mengirim pesan ke host jarak jauh, sumber dan level default akan diatur ke user.notice.

    Menggunakan Mekanisme Rotasi

    Mekanisme logging yang dibahas di atas tidak menyediakan pengelolaan file log apa pun. Pesan hanya ditempatkan di dalamnya sesuai dengan aturan yang dijelaskan dalam file konfigurasi. Ini berarti bahwa file log akan terus bertambah, dan jika tidak ada yang dilakukan, maka cepat atau lambat mereka akan mengisi semua ruang yang tersedia dari partisi yang sesuai. Untuk menghindari hal ini, mekanisme rotasi digunakan.

    Misalnya, segera setelah ukuran file debug.log melebihi 100 MB, namanya diubah menjadi debug.log.0 dan dikemas menjadi debug.log.0.bz2. Sebagai gantinya, debug.log baru dibuat. Selanjutnya, ketika ukuran file baru juga mencapai 100 MB, debug.log.0.bz2 diubah namanya menjadi debug.log.1.bz2, dan prosedur yang dijelaskan di atas diulangi. Sistem hanya menyimpan sejumlah file arsip tertentu, menghapus yang terlama. Demikianlah apa yang dimaksud dengan rotasi.

    utilitas newsyslog

    Pada sistem FreeBSD, rotasi ditangani oleh utilitas newsyslog, yang dijalankan secara default pada awal setiap jam oleh daemon cron. Anda dapat mengubah periode rotasi dengan mengedit file /etc/crontab.

    Parameter rotasi yang ditentukan dalam contoh di atas (ukuran file, pengepakan), serta sejumlah lainnya, diatur dalam file konfigurasi /etc/newsyslog.conf. Untuk setiap file yang perlu dirotasi, berisi string dengan total sembilan bidang: nama file, pemilik dan grup, izin, jumlah terbesar dalam nama file arsip, ukuran file maksimum, periode rotasi, flag tambahan, dan jalur ke File PID dari aplikasi yang sinyalnya harus dikirim setelah rotasi, dan jumlah sinyal yang akan dikirim. (Mengirim sinyal ke suatu proses mungkin diperlukan, misalnya, jika proses membuat file log tetap terbuka sepanjang waktu; jika ini tidak dilakukan, deskriptor file yang digunakan tidak akan cocok dengan file yang baru dibuat.) Beberapa bidang mungkin dihilangkan . Berikut adalah dua contoh, lengkap dan "khas":

    /var/log/pflog root:roda 600 3 100 * JB /var/run/pflog.pid 1

    Menurut aturan ini, file pflog harus ditimpa segera setelah ukurannya melebihi 100 MB (bidang ke-5) terlepas dari waktunya (simbol "*" di bidang ke-6). File arsip akan memiliki nama seperti pflog.X.bz2 (pflog.0.bz2, pflog.1.bz2, dll.), dan X tidak boleh lebih dari tiga (parameter 3 di bidang ke-4). Bendera J menentukan bahwa file arsip harus dikompres menggunakan utilitas bzip2. Berkat flag B, pesan layanan rotasi tidak akan ditambahkan ke file yang diarsipkan dan yang baru dibuat, karena file dianggap sebagai biner. File yang baru dibuat akan dimiliki oleh pengguna root dan grup roda (bidang ini dapat dihilangkan karena pemilik ini disetel secara default). Izin akan diatur ke rw------- (nilai numerik 600), yaitu hanya pemilik yang dapat membaca dan menulis ke file ini. Terakhir, sinyal 1 (HUP) akan dikirim ke proses yang PID-nya disimpan di /var/run/pflog.pid untuk membuka kembali file log-nya.

    /var/log/maillog 640 7 * @T00 J

    Aturan ini menentukan opsi rotasi untuk file maillog: terlepas dari ukurannya (tanda bintang di bidang ke-5), file akan ditimpa setiap malam pada pukul 00:00 (dalam man newsyslog.conf, format untuk menentukan waktu dijelaskan di detail yang cukup). Arsip harus dikemas, 8 arsip terakhir (bernomor 0 hingga 7) akan disimpan, file yang baru dibuat akan dimiliki oleh pengguna root (default, sehingga bidang pemilik dihilangkan) dan memiliki rw-r--- -- izin.

    Anda dapat menggunakan utilitas zcat dan bzcat (untuk gzip dan bzip2) untuk melihat file log yang dikemas. Midnight Commander memanggil utilitas yang sesuai secara otomatis.

    Setelah mengedit file newsyslog.conf, tidak ada sinyal yang perlu dikirim ke mana pun - konfigurasi akan dibaca ulang saat newsyslog berikutnya dipanggil.

    Perhatikan bahwa utilitas newsyslog tidak terikat ke daemon syslogd. Artinya, dapat digunakan untuk memutar file apa pun yang membutuhkannya. Jika rotasi diaktifkan untuk log yang dikelola aplikasi sendiri (misalnya, log clamd atau squid), maka berhati-hatilah dalam menentukan pemilik dan hak akses. Menentukannya secara tidak benar dapat mengakibatkan aplikasi berjalan sebagai pengguna yang tidak memiliki hak istimewa setelah rotasi tidak dapat menulis ke file yang baru dibuat.

    Menyimpulkan

    Sistem syslog adalah alat yang sangat kuat dan efisien untuk mencatat berbagai peristiwa yang terjadi di sistem. Pengaturan default cukup seimbang dan berfungsi dengan baik untuk sebagian besar sistem. Namun demikian, memahami cara kerja syslog akan memungkinkan Anda meningkatkan kualitas logging secara signifikan dengan mengonfigurasi informasi logging secara ketat sesuai dengan kebutuhan Anda.