Un serveur Syslog avec recherche de texte intégral intégré via une API JSON et une interface utilisateur Web.
Pour commencer rapidement, il suffit d'exécuter la version conteneurisée de 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
Cela démarrera Raftman avec toutes les options par défaut. Il écoute sur le port 514 (UDP) et 5514 (TCP) sur l'hôte pour les paquets RFC5424 Syslog entrants et les stocker dans une base de données SQLite stockée dans /tmp/logs.db sur l'hôte. Il expose également l'API JSON sur http: // localhost: 8181 / api / et l'interface utilisateur Web sur http: // localhost: 8282 /.
Il est temps de remplir notre base de données. Le moyen le plus facile consiste à démarrer Logspout et à lui dire de pointer du port 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
Ce dernier conteneur saisira d'autres lignes de sortie de conteneurs et les envoiera en tant que paquet Syslog au serveur Syslog configuré (c'est-à-dire: notre conteneur Raftman lié).
Maintenant, nous devons également générer de la sortie. Cela fera le travail pour l'instant:
docker run --rm --name test
alpine
echo 'Can you see me'
Ensuite, nous pouvons visualiser nos journaux:
avec l'API Raftman:
curl http://localhost:8181/api/list
-d '{"Limit": 100, "Message": "see"}'
ou faire éclater l'interface utilisateur sur http: // localhost: 8282 /
Toutes les options de configuration RAFTMAN sont définies sous forme d'arguments dans la ligne de commande.
Par exemple, voici ce à quoi ressemblerait la ligne de commande si nous définissons explicitement toutes les valeurs par défaut:
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/