Um servidor syslog com pesquisa de texto completo integrado por meio de uma API JSON e interface do usuário da Web.
Para começar rapidamente, basta executar a versão em contêiner do Raftman:
sudo docker run --rm --name raftman
-v /tmp:/var/lib/raftman
-p 514:514/udp
-p 5514:5514
-p 8181:8181
-p 8282:8282
pierredavidbelanger/raftman
Isso iniciará o Raftman com todas as opções padrão. Ele ouve na porta 514 (UDP) e 5514 (TCP) no host para obter pacotes syslog RFC5424 de entrada e armazená -los em um banco de dados sqlite armazenado em /tmp/logs.db no host. Ele também expõe a API JSON em http: // localhost: 8181/api/e a interface da web em http: // localhost: 8282/.
Hora de preencher nosso banco de dados. A maneira mais fácil é apenas iniciar o Logspout e dizer para apontar para a porta syslog de Raftman:
docker run --rm --name logspout
-v /var/run/docker.sock:/var/run/docker.sock:ro
--link raftman
gliderlabs/logspout
syslog://raftman:514
Este último contêiner pegará outras linhas de saída de contêineres e as enviará como pacote syslog para o servidor syslog configurado (ou seja: nosso contêiner Raftman vinculado).
Agora, também precisamos gerar alguma saída. Isso fará o trabalho por enquanto:
docker run --rm --name test
alpine
echo 'Can you see me'
Então podemos visualizar nossos logs:
Com a API do Raftman:
curl http://localhost:8181/api/list
-d '{"Limit": 100, "Message": "see"}'
ou pop a interface do usuário da web em http: // localhost: 8282/
Todas as opções de configuração do Raftman são definidas como argumentos na linha de comando.
Por exemplo, aqui está como seria a linha de comando se definirmos todos os valores padrão explicitamente:
raftman
-backend sqlite:///var/lib/raftman/logs.db?insertQueueSize=512&queryQueueSize=16&timeout=5s&batchSize=32&retention=INF
-frontend syslog+udp://:514?format=RFC5424&queueSize=512&timeout=0s
-frontend syslog+tcp://:5514?format=RFC5424&queueSize=512&timeout=0s
-frontend api+http://:8181/api/
-frontend ui+http://:8282/