Estoy instalando un paquete personalizado para /opt/package_name
almacenar archivos de configuración /etc/opt/package_name
y archivos estáticos /var/opt/package_name/static/
, todo siguiendo las convenciones sugeridas por FHS. [ 1 ] [ 2 ] [ 3 ]
También necesito almacenar algunos archivos de registro. Quiero que sean detectables por las herramientas de análisis, por lo que también deberían estar en una ubicación convencional. En caso de que entren:
/var/log/package_name
(como un paquete del sistema, aunque este sea un paquete personalizado)/var/opt/package_name/log
(después de la/var/opt
convención, pero ¿se puede descubrir?)- ¿algo más?
Respuestas:
Los colocaría en
/var/log/package_name
; satisface el principio de menos sorpresa mejor que/var/opt/package_name/log
. No tengo una cita para esto; simplemente coincide donde buscaría registros.También podría renunciar a escribir mis propios archivos de registro y, en su lugar, iniciar sesión
syslog
con una etiqueta y facilidad apropiadas; Si busco una integración limpia con herramientas de análisis establecidas, no creo que pueda mejorar mi canal de comunicaciones:syslog
.logrotate
decirme que suelte el archivo y abra uno nuevo. ¡Ni siquiera tengo que contarlogrotate
sobre nuevos archivos para rotar!rsyslog
, estarán en uso si es necesario, por lo que no tengo que pensar en implementar esa función yo mismo.A menos que esté haciendo un formato binario personalizado para mi registro e incluso entonces, prefiero formatos de texto analizables por máquina amigables con syslog como JSON. Me cuesta mucho justificar mis propios archivos de registro; Las herramientas de análisis ya miran
syslog
como un halcón.fuente
A medida que sigue las convenciones de FHS para sus archivos de configuración de paquetes, debe ser coherente y almacenar los archivos de registro
/var/opt/package_name/log
.El FHS dice:
y también declara
Tener los archivos de registro debajo
/var/opt
no impide que el paquete funcione correctamente, por lo que su uso/var/log
viola claramente el estándar.No está claro a qué te refieres con "¿es esto reconocible?" Como es probable que los registros personalizados sean manejados por herramientas personalizadas de todos modos, pero suponiendo que una herramienta genérica esté diseñada para procesarlos, debe explorar la ubicación estándar de los paquetes desagregados como el suyo.
Tenga en cuenta que
syslog
es una función útil para centralizar y ajustar la configuración de registro, pero no resuelve completamente el problema sobre dónde almacenar los registros cuando tiene que hacerlo en archivos sin formato con una ruta bien conocida. Algunos archivos a veces almacenados en el directorio de registro de una aplicación están diseñados para que la aplicación misma o los programas asociados puedan acceder a ellos utilizando su ruta esperada, por ejemplo, un archivo que almacene un ID de proceso, porsyslog
lo que no funcionará para ellos.fuente