Logs

/opt 包應該在哪裡寫入日誌?

  • April 4, 2019

我正在安裝一個自定義包/opt/package_name,將配置文件儲存在其中,/etc/opt/package_name並將靜態文件儲存在其中/var/opt/package_name/static/——所有這些都遵循 FHS 建議的約定。[ 1 ] [ 2 ] [ 3 ]

我還需要儲存一些日誌文件。我希望它們可以被分析工具發現,因此它們也應該位於正常位置。這些應該進入:

  • /var/log/package_name(就像一個系統包,即使這是一個自定義包)
  • /var/opt/package_name/log(按照/var/opt慣例 - 但這可以發現嗎?)
  • 別的東西?

我會把它們放在/var/log/package_name; 它比 更滿足最小意外原則/var/opt/package_name/log。我沒有對此的引用;它只是匹配我要查找日誌的位置。

我也可能會放棄編寫自己的日誌文件,而是syslog使用適當的標籤和工具登錄;如果我正在尋找與已建立的分析工具的干淨集成,我不相信我可以在溝通渠道上做得更好:

  • 每個具有“日誌分析”作為列出功能的通用工具都已經關注syslog
  • 為我處理日誌文件釋放和輪換語義;我不必設置一個機制logrotate來告訴我放開文件並打開一個新文件。我什至不必告訴logrotate要旋轉的新文件!
  • 如果站點需要,我會為我處理將日誌解除安裝到中央日誌伺服器;如果需要,將使用現有的已建立工具rsyslog,因此我不必考慮自己實現該功能。
  • 已經處理了圍繞日誌文件的訪問控制(POSIX 和例如 SELinux),因此我不需要過多關注特定於發行版的安全語義。

除非我為我的日誌做一些自定義的二進制格式,即使那樣,我更喜歡系統日誌友好的機器可解析文本格式,如 JSON。我很難證明我自己的單獨日誌文件是正確的;syslog分析工具已經像鷹一樣觀察了。

引用自:https://unix.stackexchange.com/questions/354096