Resolva problemas comuns do encaminhador Linux
Este documento ajuda a reconhecer e resolver problemas comuns que pode enfrentar ao usar o encaminhador Linux do Google Security Operations.
O encaminhador não é iniciado
O encaminhador não é iniciado e está num ciclo de reinício contínuo com o seguinte erro nos registos:
F0510 06:17:39.013603 202 main_linux.go:153] open /opt/chronicle/external/*.conf: no such file or directory
Possível causa 1: mapeamento incorreto no ficheiro de configuração
Para resolver este problema, certifique-se de que está a transmitir o caminho correto para o ficheiro de configuração e a mapeá-lo para uma pasta externa.
Causa possível 2: o SELinux está ativado
Verifique o ficheiro de configuração acedendo ao contentor sem iniciar o encaminhador e execute o seguinte comando:
docker run --name cfps --log-opt max-size=100m --log-opt max-file=10 --net=host -v ~/configuration:/opt/chronicle/external --entrypoint=/bin/bash \ -it gcr.io/chronicle-container/cf_production_
Este comando coloca-o numa shell a partir do contentor.
Execute o seguinte comando:
ls -lrt /opt.chronicle/external/
Se receber um erro de autorização recusada, indica que o encaminhador não consegue abrir o ficheiro de configuração e, por isso, não consegue iniciar.
Para resolver este problema, faça o seguinte:
Verifique o estado do SELinux executando o seguinte comando:
sestatus
Se o estado do SELinux estiver ativado no resultado, execute o seguinte comando para o desativar:
setenforce 0
Os registos não chegam ao inquilino do Google SecOps
Causa possível 1: resolução de DNS
Verifique se o anfitrião não consegue resolver endereços ou alcançar o Google SecOps executando o seguinte comando:
nslookup malachiteingestion-pa.googleapis.com
Se o comando falhar, contacte a sua equipa de rede para obter uma resolução.
Causa possível 2: firewall
Verifique se a firewall local está a bloquear a comunicação entre o Google SecOps e o encaminhador executando o seguinte comando:
firewall-cmd --state
Se a firewall estiver ativada, desative-a executando o seguinte comando:
systemctl stop firewalld
Causa possível 3: tamanho da memória intermédia
Verifique se é um problema de tamanho do buffer procurando o seguinte erro nos registos:
Memory ceiling (1073741824) reached, freeing a batch from the backlog
Para resolver este problema, faça o seguinte:
Ative a compressão no ficheiro de configuração do encaminhador.
Aumente o tamanho do buffer atualizando os parâmetros
max_memory_buffer_bytes
emax_file_buffer_bytes
no ficheiro de configuração. Estes parâmetros indicam a capacidade de armazenamento de lotes de tarefas pendentes que são armazenados na memória ou no disco.
O encaminhador e o anfitrião não estão a receber registos
Se o anfitrião e o encaminhador não receberem registos, verifique o estado da porta executando o seguinte comando para cada porta:
netstat -a | grep PORT
Substitua PORT
pelo ID da porta que quer verificar.
Se o comando não fornecer qualquer saída, indica que o anfitrião não está a ouvir nessa porta e deve consultar o administrador de rede.
Se o resultado do comando indicar que o anfitrião está a ouvir numa porta e o encaminhador ainda não estiver a receber registos, faça o seguinte:
Pare o Docker executando o seguinte comando:
docker stop cfps
Execute um dos seguintes comandos com base na configuração da sua rede.
Para TCP:
nc -l PORT
Para UDP:
nc -l -u PORT
Substitua
PORT
pelo ID da porta para o qual quer resolver problemas.Reinicie o serviço externo e verifique se o problema está resolvido. Se o problema persistir, [contacte o apoio técnico do Google SecOps.
O encaminhador não está a receber registos, mas o anfitrião está a receber registos
Se o anfitrião estiver a receber registos, mas o encaminhador não, indica que o encaminhador não está a ouvir na porta especificada no ficheiro de configuração.
Para resolver este problema, faça o seguinte:
Abra duas janelas de terminal no seu sistema, uma para configurar o encaminhador e outra para enviar uma mensagem de teste para o anfitrião.
No primeiro terminal (encaminhador), inicie o Docker sem iniciar o encaminhador executando o seguinte comando:
docker run \ --name cfps \ --log-opt max-size=100m \ --log-opt max-file=10 \ --net=host \ -v ~/config:/opt/chronicle/external \ --entrypoint=/bin/bash \ -it gcr.io/chronicle-container/cf_production_stable
Especifique a porta que o encaminhador deve escutar:
nc -l PORT
Substitua
PORT
pelo ID da porta para o qual quer resolver problemas.
No segundo terminal (anfitrião), envie a mensagem de teste na porta executando o seguinte comando:
echo "test message" | nc localhost PORT
Substitua
PORT
pelo ID da porta para o qual quer resolver problemas.Execute novamente o comando
docker
. Especifique a flag-p
com as portas nas quais o encaminhador deve escutar executando o seguinte comando:docker run \ --detach \ –name cfps \ --restart=always \ --log-opt max-size=100m \ --log-opt max-file=10 --net=host \ —v /root/config:/opt/chronicle/external \ -p 11500:11800 \ gcr.io/chronicle-container/cf_production_stable
Erros comuns no ficheiro de registo do encaminhador
Pode ver os registos do encaminhador executando o seguinte comando:
sudo docker logs cfps
O pedido contém um argumento inválido
O ficheiro de registo do encaminhador mostra a seguinte mensagem de erro:
I0912 18:04:15.187321 333 uploader.go:181] Sent batch error: rpc error: code = InvalidArgument desc = Request contains an invalid argument.
E0912 18:04:15.410572 333 batcher.go:345] [2_syslog_CISCO_FIREWALL-tid-0] Error exporting batch: rpc error: code = InvalidArgument desc = Request contains an invalid argument.
I0912 18:04:15.964923 333 uploader.go:181] Sent batch error: rpc error: code = InvalidArgument desc = Request contains an invalid argument.
Resolução:
Este erro pode ocorrer quando é adicionado um tipo de registo inválido. Certifique-se de que são adicionados apenas tipos de registos válidos. Na mensagem de erro de exemplo, CISCO\_FIREWALL
não é um tipo de registo válido. Para ver uma lista dos tipos de registos válidos, visite o artigo Tipos de registos compatíveis e analisadores predefinidos.
Não é possível encontrar o servidor
O ficheiro de registo do encaminhador mostra a seguinte mensagem de erro:
{"log":"Failure: Unable to find the server at accounts.google.com.\n","stream":"stderr","time":"2019-06-12T18:26:53.858804303Z"}`
{"log":"+ [[ 1 -ne 0 ]]\n","stream":"stderr","time":"2019-06-12T18:26:53.919837669Z"}
{"log":"+ err 'ERROR: Problem accessing the Chronicle bundle.'\n","stream":"stderr","time":"2019-06-12T18:26:53.919877852Z"}
Resolução:
Contacte a sua equipa de rede para garantir que a rede está a funcionar.
Assinatura JWT inválida
O ficheiro de registo do encaminhador mostra a seguinte mensagem de erro:
E0330 17:05:28.728021 162 stats_manager.go:85] send(): rpc error: code = Unauthenticated desc = transport: OAuth 2.0: cannot fetch token: 400 Bad Request Response: {"error":"invalid_grant","error_description":"Invalid JWT Signature."}
E0404 17:05:28.729012 474 memory.go:483] [1_syslog_FORTINET_FIREWAL-tid-0] Error exporting batch: rpc error: code = Unauthenticated desc = transport: OAuth 2.0: cannot fetch token: 400 Bad Request Response: {"error":"invalid_grant","error_description":"Invalid JWT Signature."}
Resolução:
Este erro pode ocorrer quando um ficheiro de configuração do encaminhador tem detalhes da chave secreta incorretos. Contacte o apoio técnico da Google SecOps para ajudar a resolver este problema.
O token tem de ser um token de curta duração
O ficheiro de registo do encaminhador mostra a seguinte mensagem de erro:
token: 400 Bad Request Response:
{"error":"invalid_grant","error_description":"Invalid JWT: Token must be a
short-lived token (60 minutes) and in a reasonable timeframe. Check your iat and exp values in the JWT claim."} I0412 05:14:16.539060 480
malachite.go:212] Sent batch error: rpc error: code = Unauthenticated desc =
transport: OAuth 2.0: cannot fetch token: 400 Bad Request Response:
{"error":"invalid_grant","error_description":"Invalid JWT: Token must be a
short-lived token (60 minutes)
Resolução:
Este erro pode ocorrer quando os relógios do sistema do anfitrião e do servidor não estão sincronizados. Ajuste a hora no anfitrião ou experimente usar o NTP para sincronizar os relógios.
Esse ficheiro ou diretório não existe
O ficheiro de registo do encaminhador mostra a seguinte mensagem de erro:
++ cat '/opt/chronicle/external/*.conf'
cat: '/opt/chronicle/external/*.conf': No such file or directory
Resolução:
Este erro pode ocorrer quando o encaminhador é iniciado com o mapeamento de unidade errado. Use o caminho completo do diretório no ficheiro de configuração (pode obter o caminho executando o comando pwd
).
Não foi possível obter o ID de cliente do ficheiro de configuração
O ficheiro de registo do encaminhador mostra a seguinte mensagem de erro:
+ err 'ERROR: Failed to retrieve customer ID from configuration file.'
++ date +%Y-%m-%dT%H:%M:%S%z
+ echo '[2023-06-28T09:53:21+0000]: ERROR: Failed to retrieve customer ID from configuration file.'
[2023-06-28T09:53:21+0000]: ERROR: Failed to retrieve customer ID from configuration file.
+ err '==> Please contact the Chronicle support team.'
Resolução:
Este erro é causado por um mapeamento incorreto ou se o ficheiro de configuração não estiver presente no diretório. Use o caminho completo do diretório no ficheiro de configuração (pode obter o caminho executando o comando pwd
). Certifique-se de que o comando docker run
correto é executado e que o ficheiro de configuração existe na seguinte localização:
gcr.io/chronicle-container/cf_production_stable
O seguinte exemplo de código mostra o comando docker run
:
docker run \
--detach \
--name cfps \
--restart=always \
--log-opt max-size=100m \
--log-opt max-file=10 \
--net=host \
-v /opt/chronicle/config:/opt/chronicle/external \
gcr.io/chronicle-container/cf_production_stable
Comandos Docker úteis
Pode recolher informações adicionais sobre a instalação do Docker através do seguinte comando:
docker info
O serviço Docker pode estar desativado por predefinição. Para verificar se está desativado, execute o seguinte comando:
systemctl is-enabled docker
Para ativar o serviço Docker e iniciá-lo imediatamente, execute um dos seguintes comandos:
sudo systemctl enable --now docker
sudo systemctl enable /usr/lib/systemd/system/docker.service
Saída:
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service
Quando iniciar um encaminhador, execute o seguinte comando para definir o encaminhador para reiniciar automaticamente:
sudo docker run --restart=always `IMAGE_NAME`
IMAGE_NAME
é o nome da imagem do encaminhador.Para verificar o estado e os detalhes do serviço Docker, execute o seguinte comando:
sudo systemctl status docker
Saída:
● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2020-07-18 11:14:05 UTC; 15s ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 263 (dockerd) Tasks: 20 Memory: 100.4M CGroup: /system.slice/docker.service └─263 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock Jul 18 11:14:05 swarm-kraken dockerd[263]: time="2020-07-18T11:14:05.713787002Z" level=info msg="API listen on /run/docker.sock" Jul 18 11:14:05 swarm-kraken systemd[1]: Started Docker Application Container Engine
Se tiver problemas com o Docker, a equipa de apoio técnico do Google SecOps pode pedir o resultado deste comando para ajudar e depurar o problema.
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.