Estou instalando um pacote personalizado para /opt/package_name
, armazenando arquivos de configuração /etc/opt/package_name
e arquivos estáticos /var/opt/package_name/static/
- todos seguindo as convenções sugeridas pelo FHS. [ 1 ] [ 2 ] [ 3 ]
Também preciso armazenar alguns arquivos de log. Eu quero que eles sejam descobertos pelas ferramentas de análise, para que eles também estejam em um local convencional. Estes devem entrar:
/var/log/package_name
(como um pacote do sistema, mesmo que seja um pacote personalizado)/var/opt/package_name/log
(seguindo a/var/opt
convenção - mas isso é detectável?)- algo mais?
Respostas:
Eu os colocaria
/var/log/package_name
; satisfaz o princípio de menos surpresa melhor que/var/opt/package_name/log
. Eu não tenho uma citação para isso; simplesmente combina onde eu procuraria por logs.Também posso deixar de escrever meus próprios arquivos de log e, em vez disso, fazer logon
syslog
com uma tag e facilidade apropriadas; se estou procurando uma integração limpa com as ferramentas de análise estabelecidas, não acredito que possa fazer melhor em um canal de comunicação:syslog
.logrotate
me dizer para deixar o arquivo de lado e abrir um novo. Nem preciso contarlogrotate
sobre novos arquivos para rodar!rsyslog
estarão em uso, se necessário, portanto não preciso considerar a implementação desse recurso.A menos que eu esteja criando algum formato binário personalizado para o meu log e, mesmo assim, prefiro formatos de texto analisáveis por máquina compatíveis com syslog, como JSON. É difícil justificar meus próprios arquivos de log separados; ferramentas de análise já assistem
syslog
como um falcão.fonte
Ao seguir as convenções do FHS para os arquivos de configuração de pacotes, você deve ser consistente e armazenar os arquivos de log
/var/opt/package_name/log
.A ESF afirma:
e também afirma
Submeter os arquivos de log
/var/opt
não impede que o pacote funcione corretamente, portanto, o uso/var/log
viola claramente o padrão.Não está claro o que você quer dizer com "isso é detectável?" como seus logs personalizados provavelmente serão manipulados por ferramentas personalizadas, mas assumindo que uma ferramenta genérica foi projetada para processá-los, ela deverá explorar o local padrão para pacotes desagregados como o seu.
Observe que
syslog
é um recurso útil para centralizar e ajustar a configuração de log, mas não resolve completamente o problema sobre onde armazenar logs quando você precisa fazê-lo em arquivos simples com um caminho conhecido. Alguns arquivos às vezes armazenados em um diretório de log do aplicativo são projetados para serem acessíveis usando o caminho esperado pelo próprio aplicativo ou por programas associados, por exemplo, um arquivo que armazena um ID do processo, portantosyslog
, não funcionará para eles.fonte