Default program mana yang menggunakan fasilitas syslog lokal [0-7]?

19

Serta fasilitas sistem umum ( mail, news, daemon, cron, dll), syslog menyediakan serangkaian "lokal" fasilitas, angka 0 sampai 7: LOCAL0, LOCAL1, ..., LOCAL7.

Manakah yang merupakan standar program untuk aplikasi umum?

Saya mencari tahu fasilitas mana yang "tradisional" digunakan untuk layanan terkenal. Saya akan menggunakan aplikasi di banyak server, dengan berbagai perangkat lunak yang diinstal, dan ingin melihat apakah ada fasilitas "gratis" yang dapat saya gunakan dengan mudah untuk log saya sendiri.

Sebagai catatan, saya menyadari ada cara lain untuk melakukan ini selain fasilitas syslog. Hanya penasaran!

Inilah beberapa, (sebuah awal untuk menjawab pertanyaan saya sendiri) dan beberapa berkat voretaq7:

  • LOCAL0 digunakan oleh postgresql
  • LOCAL2 digunakan oleh sudo
  • LOCAL3 digunakan oleh beberapa versi SpamAssassin
  • LOCAL4 digunakan secara default oleh slapd (server OpenLDAP)
  • LOCAL5 kadang-kadang digunakan oleh IDS Snort
  • LOCAL7 digunakan untuk mem-boot pesan pada Fedora 12
Jonathan Clarke
sumber
Bukankah semua log sudah ditangguhkan dengan nama proses atau nama yang ditentukan pengguna yang mengirimnya? Saya menggunakan untuk bekerja dengan syslogs dan saya tidak ingat mengalami masalah penyaringan entri log oleh aplikasi.
Kopling
kopling, Anda mengacu pada 'tag' Syslog. Secara default, di Linux, tag terdiri dari nama proses dan ID, seperti 'httpd [1234]', yang menghasilkan pesan log. Tetapi Anda dapat mengatur tag ke apa pun yang Anda inginkan melalui Syslog API. Lihat jawaban saya, di bawah, untuk lebih detail.
Ryan B. Lynch

Jawaban:

7

The LOCALnfasilitas yang tersedia untuk penggunaan lokal dan dapat bervariasi cukup luas dari situs ke situs.

Saya jamin setiap satu dari 8 yang tersedia digunakan oleh sesuatu, jadi jika Anda ingin menghindari konflik, saran terbaik saya adalah mencatat semua 7 untuk memisahkan log dan memilih salah satu yang tampaknya tidak menggunakan hal lain.

Beberapa yang Anda lewatkan (default program - dapat diubah secara lokal jadi periksa ulang):

  • LOCAL0 digunakan oleh postgresql (jika dikonfigurasi untuk masuk ke syslog)
  • LOCAL2 digunakan oleh sudo (jika dikonfigurasi untuk masuk ke syslog)
  • LOCAL3 digunakan oleh beberapa versi SpamAssassin
    • Hal ini sering diubah oleh admin lokal untuk log untuk mailgantinya
  • LOCAL5 kadang-kadang digunakan oleh IDS Snort
    • Saya tidak tahu apakah ini default atau kebetulan, tapi saya sudah melihatnya di beberapa instalasi Snort
voretaq7
sumber
Bagus! Inilah yang saya cari - default program. Lebih banyak lagi, selamat datang! Jelas, berbagai fasilitas akan digunakan, saya hanya ingin melihat aplikasi mana yang akan saya dapatkan.
Jonathan Clarke
2

Tidak ada standar untuk fasilitas Syslog LOCAL0-LOCAL7. Secara desain, Anda tidak dapat mengandalkan apakah mereka akan digunakan oleh apa pun. Distro atau organisasi tertentu mungkin memiliki konvensi sendiri, tetapi terserah distro atau kebijakan organisasi, bukan standar yang lebih luas.

Sebagai alternatif, sudahkah Anda mempertimbangkan untuk menggunakan "tag" Syslog? Tag adalah string bentuk bebas yang ditambahkan ke pesan log untuk mengidentifikasi aplikasi atau saluran log tertentu. Secara default, tag biasanya dibentuk dari nama proses dan ID (misalnya, 'httpd [2839]') yang menghasilkan data log. Utilitas baris perintah 'logger' dan sebagian besar API Syslog mendukung menentukan tag apa pun yang ingin Anda gunakan untuk aplikasi Anda.

Sebagai contoh, saya pribadi suka menggunakan 'akses-http' untuk log akses server web Apache saya, yang saya kirim ke Syslog dengan mem-pipkan output log Apache ke perintah 'logger -p local7.info -t' http-access '.

Ryan B. Lynch
sumber
Menarik, terima kasih. Namun, saya sedang membangun solusi di atas beberapa perangkat lunak yang ada yang dapat dikonfigurasi untuk masuk ke salah satu LOCAL0 hingga LOCAL7. Pertanyaan saya benar-benar menganggap standar yang digunakan berbagai perangkat lunak.
Jonathan Clarke
Masuk akal, saya melewatkan itu. Tetapi saya akan menunjukkan bahwa ada bahaya dalam mengandalkan perilaku yang tidak standar, di sini. Pengembang atau pembuat paket OpenLDAP, Fedora, dll. Dapat (dan kadang-kadang melakukannya) mengubah perilaku ini dari versi ke versi. Tidak ada jaminan bahwa pembaruan tidak akan menyimpang dari pilihan fasilitas Syslog yang dibuat sebelumnya. Ini bukan pemecah kesepakatan, hanya masalah potensial yang mungkin ingin Anda perhatikan.
Ryan B. Lynch
2

Sebagian besar file syslog.conf diatur dengan fasilitas wildcard untuk file pesan (* .info). Jika ini hanya menjalankan aplikasi pabrik dan bukan beberapa sapi yang memonopoli log penuh Anda mungkin harus login ke pesan dan bukan file mandiri.

Memilih untuk login ke file Anda sendiri berarti menambahkan langkah postinstall ke paket instalasi perangkat lunak Anda yang menambahkan entri yang sesuai di syslog.conf. Ini juga berarti bahwa jika Anda baik, Anda akan menambahkan langkah postinstall yang membuat file logrotate yang sesuai juga.

CarpeNoctem
sumber
Tip yang bagus tentang pengemasan untuk syslog dan logrotate. Terima kasih.
Jonathan Clarke
-3

Saya juga mencari file konfigurasi seperti syslog.conf untuk referensi silang fasilitas local0-7 ke program yang sedang menulis kepada mereka. Tampaknya file konfigurasi seperti itu tidak ada. Untuk mengetahui program apa yang menulis ke log, Anda harus membuka file log dan menemukan nama program di sebelah kolom di sebelah titik dua, misalnya ... sendmail [22950]: adalah untuk program sendmail. Nomor dalam kurung siku adalah untuk nomor port yang digunakan selama pelaksanaan program.

Pemenang
sumber