/var/log/user.log
Qual é o escopo deste arquivo de log? Está relacionado apenas ao usuário conectado no momento ou a vários usuários e quais?
Do que se trata esse arquivo de log e quando devo examiná-lo?
/var/log/user.log
Qual é o escopo deste arquivo de log? Está relacionado apenas ao usuário conectado no momento ou a vários usuários e quais?
Do que se trata esse arquivo de log e quando devo examiná-lo?
Então, estou trabalhando com tail -F (ou tail --follow=filename). Agora funciona como anunciado e quando ocorrer uma sobreposição, ele passará para o novo arquivo.
Isso é ótimo e me ajuda a controlar meus registros. A questão é que quero saber quando tail passa do arquivo antigo para o novo.
A situação é a seguinte:
Eu tenho um arquivo de log enorme que leva 15 minutos para ser processado. Agora digamos que no minuto 5 ocorra um rollover. Tail tem a descrição do arquivo aberta e a usa para concluir o processo de tailing e depois passa para o novo.
Agora mantenho um histórico de qual arquivo e qual linha registrei pela última vez. Faço isso aumentando o número de processos em linhas (é um programa multiprocesso, mas o que mais posso fazer?).
O problema é que após o rollover, o novo arquivo começa na linha 0, mas meu line_number já aumentou para 5 milhões. Portanto, para este novo arquivo que contém, digamos, 100 logs, armazenarei o número da linha como 5.000.100.
Usei o watchdog para descobrir quando o arquivo é transferido para redefinir o número da linha para 0, mas caso o rollover aconteça durante a execução inicial, como, digamos, na marca de 5 minutos da execução de 15 minutos, ainda acabo com um número de 3mil +.
Como line_number é usado para continuar de onde saí pela última vez, caso o programa morra acidentalmente, isso pode significar perda de dados.
Apenas para observar: estou executando este comando em python (CPython)
Presumo que journalctl
seja um agregador abrangente de logs do sistema, mas descobri que isso está incorreto.
Por exemplo, dmesg
fornece registro do sistema antes que o systemd seja totalmente ativado e apresenta uma visão mais precisa dos estados e processos do hardware.
Existem outros recursos de registro de sistema padrão ou úteis que administradores de sistemas experientes usam no Linux?
Eu tenho uma pasta de log em under /var/USER/mylogs
e diariamente arquivos de log no formato "DATE-mylogile.log"
. DATA é formatada como "%d-%m-%Y"
.
Então, na minha pasta, tenho, por exemplo, estes arquivos de log:
12-01-2024-mylogfile.log
13-01-2024-mylogfile.log
14.01-2024-mylogfile.log
...
Agora quero usar o logrotate para girar os logs. Minha configuração de teste fica assim:
/var/USER/mylogs/*.log {
weekly
rotate 4
compress
missingok
dateext
dateformat -%d-%m-%Y
}
Mas quando o logrotate é executado, ele cria um gz-Archive para cada arquivo de log como:
12.01-2024-mylogfile.log-12-03-2024.gz
13.01-2024-mylogfile.log-13-03-2024.gz
14.01-2024-mylogfile.log-14-03-2024.gz
Mas eu quero que o logrotate crie semanalmente um gz-Archive que inclua todos os arquivos de log únicos da semana, para que haja apenas um gz-Archive como:
mylogfile.log-14-03-2024.gz
Mas aí estou preso - então é possível e como posso fazer isso?
Nota: O registro está desativado, mas os avisos ainda ocorrem!
Quero um log limpo que mostre apenas erros para meus contêineres Docker, mas o nginx está apenas inundando a linha de comando com ruído, mesmo que eu desabilite tudo . Existe alguma maneira elegante (por exemplo, não usar grep como ponto de entrada) de desabilitar esses avisos?
Já estou usando a NGINX_ENTRYPOINT_QUIET_LOGS=1
variável de ambiente, o -q
parâmetro e desabilitei completamente o log de erros (que não é o objetivo final, mas apenas para teste).
$ docker run -e "NGINX_ENTRYPOINT_QUIET_LOGS=1" nginx:alpine "nginx" "-q" "-g" "daemon off; error_log /dev/null emerg;"
2024/02/15 09:38:02 [notice] 1#1: using the "epoll" event method
2024/02/15 09:38:02 [notice] 1#1: nginx/1.25.4
2024/02/15 09:38:02 [notice] 1#1: built by gcc 12.2.1 20220924 (Alpine 12.2.1_git20220924-r10)
2024/02/15 09:38:02 [notice] 1#1: OS: Linux 6.7.4-arch1-1
2024/02/15 09:38:02 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1073741816:1073741816
2024/02/15 09:38:02 [notice] 1#1: start worker processes
2024/02/15 09:38:02 [notice] 1#1: start worker process 30
2024/02/15 09:38:02 [notice] 1#1: start worker process 31
2024/02/15 09:38:02 [notice] 1#1: start worker process 32
2024/02/15 09:38:02 [notice] 1#1: start worker process 33
2024/02/15 09:38:02 [notice] 1#1: start worker process 34
2024/02/15 09:38:02 [notice] 1#1: start worker process 35
2024/02/15 09:38:02 [notice] 1#1: start worker process 36
2024/02/15 09:38:02 [notice] 1#1: start worker process 37
2024/02/15 09:38:02 [notice] 1#1: start worker process 38
2024/02/15 09:38:02 [notice] 1#1: start worker process 39
2024/02/15 09:38:02 [notice] 1#1: start worker process 40
2024/02/15 09:38:02 [notice] 1#1: start worker process 41
2024/02/15 09:38:02 [notice] 1#1: start worker process 42
2024/02/15 09:38:02 [notice] 1#1: start worker process 43
2024/02/15 09:38:02 [notice] 1#1: start worker process 44
2024/02/15 09:38:02 [notice] 1#1: start worker process 45
2024/02/15 09:38:02 [notice] 1#1: start worker process 46
2024/02/15 09:38:02 [notice] 1#1: start worker process 47
2024/02/15 09:38:02 [notice] 1#1: start worker process 48
2024/02/15 09:38:02 [notice] 1#1: start worker process 49
2024/02/15 09:38:02 [notice] 1#1: start worker process 50
2024/02/15 09:38:02 [notice] 1#1: start worker process 51
2024/02/15 09:38:02 [notice] 1#1: start worker process 52
2024/02/15 09:38:02 [notice] 1#1: start worker process 53
^C2024/02/15 09:38:04 [notice] 1#1: signal 2 (SIGINT) received, exiting
2024/02/15 09:38:04 [notice] 30#30: exiting
2024/02/15 09:38:04 [notice] 32#32: exiting
2024/02/15 09:38:04 [notice] 33#33: exiting
2024/02/15 09:38:04 [notice] 39#39: exiting
2024/02/15 09:38:04 [notice] 37#37: exiting
2024/02/15 09:38:04 [notice] 40#40: exiting
2024/02/15 09:38:04 [notice] 38#38: exiting
2024/02/15 09:38:04 [notice] 31#31: exiting
2024/02/15 09:38:04 [notice] 42#42: exiting
2024/02/15 09:38:04 [notice] 43#43: exiting
2024/02/15 09:38:04 [notice] 35#35: exiting
2024/02/15 09:38:04 [notice] 34#34: exiting
2024/02/15 09:38:04 [notice] 46#46: exiting
2024/02/15 09:38:04 [notice] 36#36: exiting
2024/02/15 09:38:04 [notice] 45#45: exiting
2024/02/15 09:38:04 [notice] 47#47: exiting
2024/02/15 09:38:04 [notice] 49#49: exiting
2024/02/15 09:38:04 [notice] 48#48: exiting
2024/02/15 09:38:04 [notice] 41#41: exiting
2024/02/15 09:38:04 [notice] 44#44: exiting
2024/02/15 09:38:04 [notice] 51#51: exiting
2024/02/15 09:38:04 [notice] 50#50: exiting
2024/02/15 09:38:04 [notice] 52#52: exiting
2024/02/15 09:38:04 [notice] 53#53: exiting
2024/02/15 09:38:04 [notice] 36#36: exit
2024/02/15 09:38:04 [notice] 33#33: exit
2024/02/15 09:38:04 [notice] 30#30: exit
2024/02/15 09:38:04 [notice] 49#49: exit
2024/02/15 09:38:04 [notice] 41#41: exit
2024/02/15 09:38:04 [notice] 37#37: exit
2024/02/15 09:38:04 [notice] 42#42: exit
2024/02/15 09:38:04 [notice] 43#43: exit
2024/02/15 09:38:04 [notice] 35#35: exit
2024/02/15 09:38:04 [notice] 52#52: exit
2024/02/15 09:38:04 [notice] 31#31: exit
2024/02/15 09:38:04 [notice] 34#34: exit
2024/02/15 09:38:04 [notice] 45#45: exit
2024/02/15 09:38:04 [notice] 44#44: exit
2024/02/15 09:38:04 [notice] 46#46: exit
2024/02/15 09:38:04 [notice] 39#39: exit
2024/02/15 09:38:04 [notice] 50#50: exit
2024/02/15 09:38:04 [notice] 32#32: exit
2024/02/15 09:38:04 [notice] 53#53: exit
2024/02/15 09:38:04 [notice] 40#40: exit
2024/02/15 09:38:04 [notice] 48#48: exit
2024/02/15 09:38:04 [notice] 51#51: exit
2024/02/15 09:38:04 [notice] 47#47: exit
2024/02/15 09:38:04 [notice] 38#38: exit
2024/02/15 09:38:04 [notice] 1#1: signal 14 (SIGALRM) received
2024/02/15 09:38:04 [notice] 1#1: signal 17 (SIGCHLD) received from 40
2024/02/15 09:38:04 [notice] 1#1: worker process 40 exited with code 0
2024/02/15 09:38:04 [notice] 1#1: worker process 42 exited with code 0
2024/02/15 09:38:04 [notice] 1#1: signal 29 (SIGIO) received
2024/02/15 09:38:04 [notice] 1#1: signal 17 (SIGCHLD) received from 42
2024/02/15 09:38:04 [notice] 1#1: worker process 39 exited with code 0
2024/02/15 09:38:04 [notice] 1#1: signal 29 (SIGIO) received
2024/02/15 09:38:04 [notice] 1#1: signal 17 (SIGCHLD) received from 37
2024/02/15 09:38:04 [notice] 1#1: worker process 37 exited with code 0
2024/02/15 09:38:04 [notice] 1#1: worker process 46 exited with code 0
2024/02/15 09:38:04 [notice] 1#1: signal 29 (SIGIO) received
2024/02/15 09:38:04 [notice] 1#1: signal 17 (SIGCHLD) received from 46
2024/02/15 09:38:04 [notice] 1#1: worker process 32 exited with code 0
2024/02/15 09:38:04 [notice] 1#1: worker process 48 exited with code 0
2024/02/15 09:38:04 [notice] 1#1: signal 29 (SIGIO) received
2024/02/15 09:38:04 [notice] 1#1: signal 17 (SIGCHLD) received from 47
2024/02/15 09:38:04 [notice] 1#1: worker process 47 exited with code 0
2024/02/15 09:38:04 [notice] 1#1: signal 29 (SIGIO) received
2024/02/15 09:38:04 [notice] 1#1: signal 17 (SIGCHLD) received from 44
2024/02/15 09:38:04 [notice] 1#1: worker process 44 exited with code 0
2024/02/15 09:38:04 [notice] 1#1: signal 29 (SIGIO) received
2024/02/15 09:38:04 [notice] 1#1: signal 17 (SIGCHLD) received from 50
2024/02/15 09:38:04 [notice] 1#1: worker process 45 exited with code 0
2024/02/15 09:38:04 [notice] 1#1: worker process 50 exited with code 0
2024/02/15 09:38:04 [notice] 1#1: signal 29 (SIGIO) received
2024/02/15 09:38:04 [notice] 1#1: signal 17 (SIGCHLD) received from 45
2024/02/15 09:38:04 [notice] 1#1: worker process 51 exited with code 0
2024/02/15 09:38:04 [notice] 1#1: signal 29 (SIGIO) received
2024/02/15 09:38:04 [notice] 1#1: signal 17 (SIGCHLD) received from 33
2024/02/15 09:38:04 [notice] 1#1: worker process 33 exited with code 0
2024/02/15 09:38:04 [notice] 1#1: worker process 43 exited with code 0
2024/02/15 09:38:04 [notice] 1#1: worker process 34 exited with code 0
2024/02/15 09:38:04 [notice] 1#1: signal 29 (SIGIO) received
2024/02/15 09:38:04 [notice] 1#1: signal 17 (SIGCHLD) received from 34
2024/02/15 09:38:04 [notice] 1#1: signal 17 (SIGCHLD) received from 52
2024/02/15 09:38:04 [notice] 1#1: worker process 52 exited with code 0
2024/02/15 09:38:04 [notice] 1#1: signal 29 (SIGIO) received
2024/02/15 09:38:04 [notice] 1#1: signal 17 (SIGCHLD) received from 31
2024/02/15 09:38:04 [notice] 1#1: worker process 31 exited with code 0
2024/02/15 09:38:04 [notice] 1#1: signal 29 (SIGIO) received
2024/02/15 09:38:04 [notice] 1#1: signal 17 (SIGCHLD) received from 36
2024/02/15 09:38:04 [notice] 1#1: worker process 36 exited with code 0
2024/02/15 09:38:04 [notice] 1#1: worker process 41 exited with code 0
2024/02/15 09:38:04 [notice] 1#1: worker process 53 exited with code 0
2024/02/15 09:38:04 [notice] 1#1: signal 29 (SIGIO) received
2024/02/15 09:38:04 [notice] 1#1: signal 17 (SIGCHLD) received from 49
2024/02/15 09:38:04 [notice] 1#1: worker process 30 exited with code 0
2024/02/15 09:38:04 [notice] 1#1: worker process 38 exited with code 0
2024/02/15 09:38:04 [notice] 1#1: worker process 49 exited with code 0
2024/02/15 09:38:04 [notice] 1#1: signal 29 (SIGIO) received
2024/02/15 09:38:04 [notice] 1#1: signal 17 (SIGCHLD) received from 30
2024/02/15 09:38:04 [notice] 1#1: signal 17 (SIGCHLD) received from 35
2024/02/15 09:38:04 [notice] 1#1: worker process 35 exited with code 0
2024/02/15 09:38:04 [notice] 1#1: exit
PS: O problema começa com o nginx versão 1.20.0. A versão 1.19.10 (a versão 1.19 mais recente) não possui esses avisos, mas por preocupação com vulnerabilidades de segurança, não quero usar uma versão tão antiga.
No entanto, esta mudança não é mencionada no changelog http://nginx.org/en/CHANGES-1.20 :
Changes with nginx 1.20.0 20 Apr 2021
*) 1.20.x stable branch.
PPS: Todo o log está desabilitado para este teste usando error_log /dev/null emerg;
, as mensagens parecem ser emitidas pelo nginx fora do log normal.
Hoje vejo em meu diretório de log bind9 muitos arquivos de log (vazios!).
querylog.1.1.1.2.2.1.1.1.2.1.1.1.1 querylog.2.1.1.1.2.1.1.1.1.1.2.1.1.1.2 update-debug.log.3.1.1.1.1.2
querylog.1.1.1.2.2.1.1.1.2.1.1.1.1.1 querylog.2.1.1.1.2.1.1.1.1.1.2.1.1.1.2.1 update-debug.log.3.1.1.1.1.2.1
querylog.1.1.1.2.2.1.1.1.2.1.1.1.1.1.1 querylog.2.1.1.1.2.1.1.1.1.1.2.1.1.2 update-debug.log.3.1.1.1.2
querylog.1.1.1.2.2.1.1.1.2.1.1.1.1.1.1.1 querylog.2.1.1.1.2.1.1.1.1.1.2.1.1.2.1 update-debug.log.3.1.1.1.2.1
querylog.1.1.1.2.2.1.1.1.2.1.1.1.1.1.1.1.1 querylog.2.1.1.1.2.1.1.1.1.1.2.1.2 update-debug.log.3.1.1.2
querylog.1.1.1.2.2.1.1.1.2.1.1.1.1.1.2 querylog.2.1.1.1.2.1.1.1.1.1.2.1.2.1 update-debug.log.3.1.1.2.1
querylog.1.1.1.2.2.1.1.1.2.1.1.1.1.1.2.1 querylog.2.1.1.1.2.1.1.1.1.1.2.2 update-debug.log.3.1.2
querylog.1.1.1.2.2.1.1.1.2.1.1.1.1.2 querylog.2.1.1.1.2.1.1.1.1.1.2.2.1 update-debug.log.3.1.2.1
querylog.1.1.1.2.2.1.1.1.2.1.1.1.1.2.1 querylog.2.1.1.1.2.1.1.1.1.1.3 update-debug.log.3.2
querylog.1.1.1.2.2.1.1.1.2.1.1.1.2 querylog.2.1.1.1.2.1.1.1.1.1.3.1 update-debug.log.3.2.1
a lista está incompleta, existem mais de 7.000 arquivos. Esta é a configuração de login em nomeado.conf
logging {
channel update_debug {
file "/var/log/update-debug.log";
severity debug 1;
print-category yes;
print-severity yes;
print-time yes;
};
channel security_info {
file "/var/log/named-auth.info";
severity info;
print-category yes;
print-severity yes;
print-time yes;
};
channel querylog {
file "/var/log/querylog";
severity debug 1;
print-category yes;
print-severity yes;
print-time yes;
};
category update { update_debug; };
category security { security_info; };
category queries { querylog; };
};
Como evitar essa fragmentação?
Meu objetivo é enviar todos os logs para uma fonte remota e ainda log local, mas enviar todos os logs AuditD para sua própria fonte na porta 20002. Mas, por algum motivo, meus logs auditd ainda estão terminando com meus syslogs indo para a porta 20000
/etc/rsyslog.conf:
cat /etc/rsyslog.conf
module(load="imuxsock") # provides support for local system logging
module(load="imklog") # provides kernel logging support
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$WorkDirectory /var/spool/rsyslog
$IncludeConfig /etc/rsyslog.d/*.conf
local7.* ~
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
cron.* /var/log/cron.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
lpr.* -/var/log/lpr.log
mail.* -/var/log/mail.log
user.* -/var/log/user.log
mail.info -/var/log/mail.info
mail.warn -/var/log/mail.warn
mail.err /var/log/mail.err
*.=debug;\
auth,authpriv.none;\
mail.none -/var/log/debug
*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail.none -/var/log/messages
*.emerg :omusrmsg:*
/etc/rsyslog.d/rsyslog_d_all.conf:
*.*;!local7.* action(type="omfwd" target="10.10.1.23" port="20000" protocol="tcp")
rsyslog_d_auditd.conf:
$ModLoad imfile
local7.* action(type="omfwd" target="10.10.1.23" port="20002" protocol="tcp")
$InputFileName /var/log/audit/audit.log
$InputFileTag tag_audit_log:
$InputFileStateFile audit_log
$InputFileSeverity info
$InputFileFacility local7
$InputRunFileMonitor
Estou escrevendo um script de shell que utiliza o Linux logger
para registrar a saída. Com base nessa documentação, acredito que o registro seja enviado /var/log/syslog
no Linux, que seria var/logs/system.log
no Mac.
Aqui está uma versão simplificada do meu script para teste:
#!/bin/bash
n=$RANDOM
logger "testing: $n is a random number."
Ao executá-lo e visualizá-lo, system.log
não vejo nenhuma das minhas mensagens. No entanto, vejo as mensagens no Mac OS Console.app
se eu pesquisar por "teste":
Minha pergunta é: onde no sistema de arquivos do Mac esses logs são armazenados? Eles devem estar em algum lugar, mas não consigo encontrá-los. Eles definitivamente não estão em /var/log/system.log
.
Estou executando uma versão STIG do RHEL e estou tendo problemas para descobrir como todos os meus volumes lógicos são mapeados.
/dev/mapper/vg1_audit
parece apontar para/dev/dm-2
/dev/vg1/lv_audit
também parece mapear para/dev/dm-2
A execução de um lsblk
mostra que esses volumes estão montados em /var/log/audit
, mas estou vendo resultados diferentes quando executo cat
em cada um.
Quando eu cat /var/log/audit.log
e audit.log.1
, eles estão em branco (já que eu os limpei com truncate
). No entanto, executando um cat /dev/mapper/vg1_audit
e /dev/dm-2
, ele imprime um arquivo enorme com dados de log.
Não tenho certeza de onde este log está sendo armazenado ou quem está gravando nele. Também não consigo limpá-lo usando truncate
o FWIW.
Gostaria de saber qual processo serve para escrever timestamps (e outras partes das mensagens de log) no Syslog
protocolo. Ou seja, é ele Syslog
que marca o timestamp da mensagem de log (horário exato do recebimento da mensagem) ou o processo que envia a mensagem (horário exato do envio da mensagem)?