Logs do FiveM: onde os webhooks do Discord falham e o que usar
Logs por webhook do Discord batem em limites, não dá para buscar por jogador e perdem os anexos. Como registrar com ox_lib e transformar em provas.
Por Termi
- Logs
- ox_lib
- Discord
- Evidence
Nesta página
- Onde o log pelo Discord falha
- Envie logs estruturados com ox_lib
- Envie para o FiveDock
- Dos logs às provas
- Por quanto tempo guardar os logs
- Perguntas frequentes
- Como registro as ações dos jogadores em um servidor de FiveM?
- Webhooks do Discord servem para logs de FiveM?
- Por quanto tempo um servidor de FiveM deve guardar os logs?
- Posso usar o logger do ox_lib sem o Fivemanage?
A maioria dos servidores de FiveM registra do mesmo jeito: um canal do Discord por categoria, como dinheiro, mortes e comandos de admin, e uma URL de webhook em cada script. No primeiro mês funciona. Depois chega um recurso de banimento sobre algo de três semanas atrás, e alguém rola por milhares de embeds atrás de uma única licença. Este guia mostra onde o log pelo Discord falha, como enviar logs estruturados com ox_lib e como transformá-los em provas que você pode mostrar ao jogador.
Onde o log pelo Discord falha
Envie logs estruturados com ox_lib
O ox_lib, que a maioria dos servidores ESX, QBCore e Qbox já roda, tem um logger do lado do servidor. Uma chamada onde a ação acontece substitui uma requisição de webhook:
RegisterNetEvent('bank:transfer', function(to, amount)
local src = source
if not Bank.transfer(src, to, amount) then return end
lib.logger(src, 'money.transfer', ('sent $%d to %s'):format(amount, to), 'amount:' .. amount, 'to:' .. to)
end)Os argumentos são o ID de servidor do jogador, um nome de evento, uma mensagem e quantas tags chave:valor você quiser. O ox_lib adiciona sozinho o nome e os identificadores do jogador a cada linha, junta as linhas em lotes e as envia ao serviço indicado num convar:
set ox:logger "fivemanage"
set fivemanage:key "fd_live_…"
set fivemanage:dataset "city"O ox_lib traz três serviços: Datadog, Grafana Loki e Fivemanage. O Fivemanage guarda os logs por 15 dias no plano grátis e no de 8 USD, por 90 dias no Pro a 24 USD e por 180 dias no Network a 79 USD.
Envie para o FiveDock
O FiveDock aceita, sem alterações, os lotes que o logger do Fivemanage no ox_lib envia. O ox_lib guarda esse endereço numa linha de imports/logger/providers/fivemanage.lua. Aponte-a para o FiveDock e use um token de API do FiveDock com o escopo logs:write como fivemanage:key:
endpoint = 'https://api.fivedock.dev/api/logs/batch',Atualizar o ox_lib substitui esse arquivo, então mude a linha de novo depois de cada atualização ou mantenha-a numa cópia própria do ox_lib.
Cada linha chega à Black Box com a licença, o ID do Discord e o nome do jogador. Ao lado fica tudo o que o agente do FiveDock registra por conta própria: erros de script, reports feitos no jogo e screenshots.
Dos logs às provas
No Metro, a Black Box transforma essas linhas numa linha do tempo por jogador: todas as linhas registradas de uma licença, da entrada à transferência e ao screenshot, em ordem e com precisão de segundos. Um botão converte um trecho em um pacote de provas, um link que você pode entregar ao jogador que acabou de banir.
A busca cobre todos os jogadores, por licença, placa ou palavra, e você pode salvar uma busca que faz toda noite. Os alertas de economia vigiam as mesmas linhas em todos os planos: uma transferência acima de um limite, ou dinheiro ganho rápido demais, é postada no Discord. No Metro, o alerta também faz um backup naquele segundo, e os alertas de itens duplicados pegam o mesmo número de série em dois inventários.
O mascaramento por cargo do Metro mantém endereços reais e dados de pagamento longe dos trainees, algo que um canal do Discord não consegue fazer.
Por quanto tempo guardar os logs
Os recursos costumam chegar poucas semanas depois de um banimento. Guarde pelo menos 30 dias, o que o FiveDock City oferece por € 12 por mês. O Free guarda 7 dias, e o Metro guarda 90 dias mais um arquivo.
Comparado com o Fivemanage
O Fivemanage guarda os logs por mais tempo pelo preço: 90 dias no Pro a 24 USD, 180 dias no Network. Mesmo assim, um plano do FiveDock também inclui hospedagem de arquivos, backups do banco de dados, reports e contas de staff, então compare a conta inteira. Nossa comparação de hospedagem põe os dois lado a lado.
Perguntas frequentes
Como registro as ações dos jogadores em um servidor de FiveM?
Chame lib.logger do ox_lib no script de servidor onde a ação acontece, com o ID de servidor do jogador, um nome de evento e uma mensagem. O ox_lib adiciona os identificadores do jogador e envia lotes ao serviço definido em ox:logger. O FiveDock aceita o formato do Fivemanage do ox_lib e arquiva cada linha sob o jogador, então o staff lê o histórico de um jogador em ordem.
Webhooks do Discord servem para logs de FiveM?
Como canal de avisos para um servidor pequeno, sim. Como registro, ficam devendo: os webhooks têm limites de taxa, os links dos anexos expiram, nada mostra um jogador através de vários canais, e qualquer um que ache a URL de um webhook pode postar nele.
Por quanto tempo um servidor de FiveM deve guardar os logs?
Pelo menos tanto quanto dure o seu prazo de recurso, geralmente de duas a quatro semanas. 30 dias bastam para a maioria dos servidores. Guarde 90 se você lida com pedidos de reembolso ou investigações longas.
Posso usar o logger do ox_lib sem o Fivemanage?
Sim. Defina ox:logger como datadog ou loki para esses serviços, ou mantenha fivemanage e troque o endereço dele pelo do FiveDock, que aceita os mesmos lotes.