Instaluję niestandardowy pakiet /opt/package_name
, przechowuję pliki konfiguracyjne /etc/opt/package_name
i pliki statyczne w /var/opt/package_name/static/
- wszystko zgodnie z konwencjami sugerowanymi przez FHS. [ 1 ] [ 2 ] [ 3 ]
Potrzebuję również przechowywać niektóre pliki dziennika. Chcę, aby były one wykrywalne za pomocą narzędzi analitycznych, więc powinny również znajdować się w konwencjonalnej lokalizacji. Powinny one wejść:
/var/log/package_name
(jak pakiet systemowy, nawet jeśli jest to pakiet niestandardowy)/var/opt/package_name/log
(zgodnie z/var/opt
konwencją - ale czy można to odkryć?)- coś innego?
Odpowiedzi:
Umieściłbym je w
/var/log/package_name
; lepiej spełnia zasadę najmniejszego zaskoczenia niż/var/opt/package_name/log
. Nie przytaczam tego; po prostu pasuje tam, gdzie szukałem dzienników.Mogę również zrezygnować z pisania własnych plików dziennika i zamiast tego zalogować się
syslog
przy użyciu odpowiedniego znacznika i funkcji; jeśli szukam czystej integracji z uznanymi narzędziami analitycznymi, nie sądzę, żebym mógł zrobić lepiej dla kanału komunikacji:syslog
.logrotate
aby kazał mi puścić plik i otworzyć nowy. Nie muszę nawet mówićlogrotate
o nowych plikach do rotacji!rsyslog
będą w razie potrzeby używane, więc nie muszę sam rozważać wdrożenia tej funkcji.O ile nie robię niestandardowego formatu binarnego dla mojego dziennika, a nawet wtedy wolę przyjazne dla syslog formaty tekstowe, które można analizować na maszynie, takie jak JSON. Trudno mi uzasadnić własne oddzielne pliki dziennika; narzędzia analityczne już oglądają
syslog
jak jastrząb.źródło
Postępując zgodnie z konwencjami FHS dotyczącymi plików konfiguracji pakietu, należy zachować spójność i przechowywać pliki dziennika
/var/opt/package_name/log
.FHS stwierdza:
a także stwierdza
Posiadanie poniżej plików dziennika
/var/opt
nie przeszkadza w prawidłowym funkcjonowaniu pakietu, dlatego użycie go/var/log
wyraźnie narusza standard.Nie jest jasne, co rozumiesz przez „czy można to odkryć?” ponieważ i tak niestandardowe dzienniki prawdopodobnie będą obsługiwane przez niestandardowe narzędzia, ale zakładając, że ogólne narzędzie jest zaprojektowane do ich przetwarzania, powinno ono zbadać standardową lokalizację dla uwolnionych pakietów, takich jak Twoja.
Należy pamiętać, że
syslog
jest to przydatne narzędzie do scentralizowania i dostrojenia konfiguracji rejestrowania, ale nie rozwiązuje w pełni problemu, gdzie przechowywać dzienniki, gdy trzeba to zrobić w zwykłych plikach ze znaną ścieżką. Niektóre pliki przechowywane czasami w katalogu dziennika aplikacji są zaprojektowane tak, aby były dostępne przy użyciu oczekiwanej ścieżki przez samą aplikację lub powiązane programy, na przykład plik przechowujący identyfikator procesu, więcsyslog
nie będzie dla nich działać.źródło