Logs
/opt 包應該在哪裡寫入日誌?
我正在安裝一個自定義包
/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
分析工具已經像鷹一樣觀察了。