Di mana seharusnya paket / opt menulis log?

13

Saya menginstal paket khusus /opt/package_name, menyimpan file konfigurasi di /etc/opt/package_namedan file statis di /var/opt/package_name/static/- semua mengikuti konvensi yang disarankan oleh FHS. [ 1 ] [ 2 ] [ 3 ]

Saya juga perlu menyimpan beberapa file log. Saya ingin mereka dapat ditemukan oleh alat analisis, jadi mereka juga harus berada di lokasi konvensional. Haruskah ini masuk:

  • /var/log/package_name (seperti paket sistem, meskipun ini adalah paket khusus)
  • /var/opt/package_name/log(mengikuti /var/optkonvensi - tetapi apakah ini dapat ditemukan?)
  • sesuatu yang lain?
david.libremone
sumber
Apakah Anda memiliki contoh alat analisis dalam pikiran yang memindai / var / log?
sourcejedi
5
Mengapa bukan syslog jawabannya?
Joshua

Jawaban:

19

Saya akan menempatkan mereka di /var/log/package_name; itu memenuhi prinsip kejutan setidaknya lebih baik daripada /var/opt/package_name/log. Saya tidak memiliki kutipan untuk ini; hanya cocok dengan tempat saya mencari log.

Saya mungkin juga berhenti menulis file log saya sendiri, dan sebagai gantinya login syslogdengan tag dan fasilitas yang sesuai; jika saya mencari integrasi yang bersih dengan alat analisis yang mapan, saya tidak yakin bisa melakukan yang lebih baik untuk saluran komunikasi:

  • Setiap alat generik dengan "analisis log" sebagai fitur yang terdaftar sudah diawasi syslog.
  • Pelepasan file log dan semantik rotasi ditangani untuk saya; Saya tidak perlu mengatur mekanisme untuk logrotatememberitahu saya untuk melepaskan file dan membuka yang baru. Saya bahkan tidak perlu memberi tahu logrotatetentang file baru untuk diputar!
  • Membongkar log ke server logging pusat ditangani untuk saya, jika situs menuntutnya; Alat yang sudah ada seperti rsyslogakan digunakan jika diperlukan, jadi saya tidak perlu merenungkan penerapan fitur itu sendiri.
  • Kontrol akses (POSIX dan, misalnya SELinux) di sekitar file log sudah ditangani, jadi saya tidak perlu memperhatikan semantik keamanan distribusi khusus.

Kecuali saya sedang melakukan beberapa format biner khusus untuk log saya dan bahkan kemudian, saya lebih suka format teks yang dapat diurai-mesin syslog seperti JSON. Saya mengalami kesulitan membenarkan file log saya sendiri yang terpisah; alat analisis sudah menonton syslogseperti elang.

Michael Mol
sumber
8

Ketika Anda mengikuti konvensi FHS untuk file konfigurasi paket Anda, Anda harus konsisten dan menyimpan file log /var/opt/package_name/log.

FHS menyatakan:

Data variabel paket di / opt harus diinstal di / var / opt /

dan juga menyatakan

Tidak ada file paket lain yang mungkin ada di luar hierarki / opt, / var / opt, dan / etc / opt kecuali untuk file-file paket yang harus berada di lokasi tertentu dalam pohon sistem file agar dapat berfungsi dengan baik. Sebagai contoh, file kunci perangkat harus ditempatkan di / var / lock dan perangkat harus terletak di / dev.

Memiliki file log di bawah /var/opt tidak mencegah paket berfungsi dengan benar sehingga menggunakan /var/logsebaliknya jelas melanggar standar.

Tidak jelas apa yang Anda maksud dengan "apakah ini dapat ditemukan?" karena Anda log kustom cenderung ditangani oleh alat kustom, tetapi dengan asumsi alat generik dirancang untuk memprosesnya, ia harus menjelajahi lokasi standar untuk paket yang tidak diikat seperti milik Anda.

Catatan itu syslogadalah fasilitas yang berguna untuk memusatkan dan menyetel konfigurasi logging tetapi tidak sepenuhnya menyelesaikan masalah tentang di mana menyimpan log ketika Anda harus melakukannya dalam file biasa dengan jalur yang terkenal. Beberapa file kadang-kadang disimpan dalam direktori log aplikasi dirancang agar dapat diakses menggunakan jalur yang diharapkan oleh aplikasi itu sendiri atau oleh program terkait, misalnya file yang menyimpan ID proses, jadi syslogtidak akan berfungsi untuk mereka.

Jlliagre
sumber