Samba 22: Configurando Logs

Após compilarmos o samba, executamos o comando “samba-tool domain provision” e foi gerado o arquivo smb.conf.

Abaixo está o conteúdo que é criado dentro de smb.conf ao provisionarmos o samba:

elder@server02:/usr/local/samba$ cat ./etc/smb.conf 
# Global parameters
[global]
	dns forwarder = 8.8.8.8
	netbios name = SERVER02
	realm = LAB.LOCAL
	server role = active directory domain controller
	workgroup = LAB
	idmap_ldb:use rfc2307 = yes

[sysvol]
	path = /usr/local/samba/var/locks/sysvol
	read only = No

[netlogon]
	path = /usr/local/samba/var/locks/sysvol/lab.local/scripts
	read only = No

Uma coisa  a se notar é que usei o caminho relativo  “cat ./etc/smb.conf”  ao invés do absoluto “cat /usr/local/samba/etc/smb.conf” pois já estava dentro da pasta  /usr/local/samba/.

Apesar do texto pequeno, não quer dizer que apenas essas opções estão ativas. Na verdade há opções que estão ocultas porém ativadas no samba.  Por exemplo, o log está ativo e é  armazenado dentro da pasta /usr/local/samba/var/

Vamos alterar a forma e local onde o samba armazena os logs.  Analisando o arquivo smb.conf, na primeira linha acima temos a seção [global]. Como o nome sugere qualquer configuração feita nessa seção afetará tudo, pois ela é global.

Antes de mais nada irei iniciar o samba

elder@server02:/usr/local/samba$ sudo ./sbin/samba

Nosso samba está iniciado e agora podemos alterar as configurações de logs dentro de smb.conf

Local Padrão dos Logs do Samba

Podemos ver acima, no conteúdo do arquivo smb.conf, que não há opção nenhuma referente à logs, mas eles existem e estão dentro da pasta  /usr/local/samba/var/

Vamos listá-los:

elder@server02:/usr/local/samba$ ls -1 ./var/
cache
cores
lib
lock
locks
log.samba
log.smbd
log.wb-BUILTIN
log.wb-LAB
log.winbindd
log.winbindd-idmap
run

 

Temos acima colorido em laranja os arquivos de logs.

  • log.smbd: grava eventos ocorridos com o programa(daemon) smbd, esse é o próprio samba sendo executado, aqui aparecem eventos sobre reinício, início e encerramento do programa samba no servidor.
  • log.winbind:Temos logs sobre winbind que é um serviço de troca de nomes(name service switch).
  • log.samba: Temos também o arquivo de log do samba, o log.samba.

Quando iniciamos o samba acima com o comando  “sudo /usr/local/samba/sbin/samba” foi gravado eventos dentro de log.smbd, pois o samba foi iniciado.

Vamos alterar o arquivo smb.conf

 

Configurando Logs no samba

 

Temos as seguintes opções para colocarmos dentro de smb.conf e que afetar o modo como o log(gravação de eventos) ocorrerá:

  • log file:  alimentamos essa opção com um nome de arquivo onde serão gravados os logs. Podemos definir, como exemplo, que o arquivo de log será gravado em “log file = /var/log/samba.log”
  • log level:  alimentamos “log level”  com um número de de 1 a 10.  Quando maior o valor mais informação irá ser gravada. um valor de 1 a 3 é razoável, acima disso pode gerar confusão e deixar arquivos de logs pesados. Acima de 3 faz sentido para programadores do samba apenas. o número zero desativa o log.
  • max log size: usamos “max log file” para definirmos o tamanho do arquivo de log do samba. Podemos colocar, como exemplo,  “max log file =  10000”;  dez mil aqui está em Kilo Bytes e, convertido para Mega Bytes, quer dizer que o tamanho do arquivo não passará de 10 Mega Bytes. Quando o arquivo chegar em 10MB ele será renomeado para, por exemplo, samba.log.old. O arquivo samba.log será esvaziado para receber novos eventos.

 

Vamos colocar as mãos em obra. Abaixo coloquei propositadamente “max log file” ao invés de “max log size”.

Editei meu arquivo smb.conf com o editor vim e acrescentei as linhas em laranja abaixo:

elder@server02:~$ sudo vim /usr/local/samba/etc/smb.conf
# Global parameters
[global]
	dns forwarder = 8.8.8.8
	netbios name = SERVER02
	realm = LAB.LOCAL
	server role = active directory domain controller
	workgroup = LAB
	idmap_ldb:use rfc2307 = yes

	log file = /var/log/samba/samba.log
	log level = 2
	max log file = 10		

[sysvol]
	path = /usr/local/samba/var/locks/sysvol
	read only = No

[netlogon]
	path = /usr/local/samba/var/locks/sysvol/lab.local/scripts
	read only = No

O arquivo de log ficará dentro de uma pasta chamada samba, o nível de log será 2 e o tamanho do arquivo de log será de apenas 10 Kilo Bytes. 10 KB é apenas para testes, um valor maior é recomendado.

Use testparm para analisar se o arquivo smb.conf está com valores corretos.

elder@server02:~$ sudo    /usr/local/samba/bin/testparm 
Load smb config files from /usr/local/samba/etc/smb.conf
Unknown parameter encountered: "max log file"
Ignoring unknown parameter "max log file"
Loaded services file OK.
.........

Acima, em vermelho, recebi um erro. O correto é “max log size” e não “max log file“. Corrigi o problema e o testparm não relatou mais erro.

 

Recarregue as configurações do samba com “smbcontrol all reload-config”

elder@server02:~$ sudo /usr/local/samba/bin/smbcontrol all reload-config

 

Agora basta criarmos a pasta samba dentro de /var/log/. Mas aqui irei aproveitar para mostrar o log exibido dentro de  /usr/local/samba/var/log.smbd

[2021/07/30 14:20:55.522322,  0] ../../lib/util/debug.c:1105(reopen_one_log)
  reopen_one_log: Unable to open new log file '/var/log/samba/samba.log': Arquivo ou diretório inexiste

Em vermelho podemos ver que houve erro pois o novo local apontado em smb.conf ainda não existe. Vamos criá-lo com “mkdir /var/log/samba” :

elder@server02:~$ sudo mkdir /var/log/samba

Recarregue novamente as configurações do samba

elder@server02:~$ sudo /usr/local/samba/bin/smbcontrol all reload-config

Veja agora o arquivo samba.log criado automaticamente dentro de /var/log/samba

elder@server02:~$ ls /var/log/samba/
samba.log

 

 

Fontes: samba.org(winbindd)

 

Leitor voraz e um dos administradores do GNU/Linux Brasil no Whatsapp, facebook, youtube e nesse dito site: www.gnulinuxbrasil.com.br

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *