เซิร์ฟเวอร์ syslog ที่มีการค้นหาข้อความแบบเต็มรูปแบบผ่าน JSON API และ Web UI
ในการเริ่มต้นอย่างรวดเร็วเพียงเรียกใช้ 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
สิ่งนี้จะเริ่มต้น Raftman ด้วยตัวเลือกเริ่มต้นทั้งหมด มันฟังบนพอร์ต 514 (UDP) และ 5514 (TCP) บนโฮสต์สำหรับแพ็คเก็ต Syslog RFC5424 ที่เข้ามาและเก็บไว้ในฐานข้อมูล SQLite ที่เก็บไว้ใน /tmp/logs.db บนโฮสต์ นอกจากนี้ยังเปิดเผย JSON API บน http: // localhost: 8181/api/และเว็บ UI บน http: // localhost: 8282/
ถึงเวลาเติมฐานข้อมูลของเรา วิธีที่ง่ายที่สุดคือเพียงแค่เริ่มล็อกอินและบอกให้ชี้ไปที่พอร์ต Syslog ของ Raftman:
docker run --rm --name logspout
-v /var/run/docker.sock:/var/run/docker.sock:ro
--link raftman
gliderlabs/logspout
syslog://raftman:514
คอนเทนเนอร์สุดท้ายนี้จะคว้าสายเอาต์พุตคอนเทนเนอร์อื่น ๆ และส่งเป็นแพ็กเก็ต syslog ไปยังเซิร์ฟเวอร์ syslog ที่กำหนดค่า (เช่น: คอนเทนเนอร์ raftman ที่เชื่อมโยงของเรา)
ตอนนี้เราต้องสร้างผลลัพธ์บางอย่าง ตอนนี้จะทำงานในตอนนี้:
docker run --rm --name test
alpine
echo 'Can you see me'
จากนั้นเราสามารถเห็นภาพบันทึกของเรา:
กับ Raftman API:
curl http://localhost:8181/api/list
-d '{"Limit": 100, "Message": "see"}'
หรือเปิดเว็บ UI ที่ http: // localhost: 8282/
ตัวเลือกการกำหนดค่า Raftman ทั้งหมดถูกตั้งค่าเป็นอาร์กิวเมนต์ในบรรทัดคำสั่ง
ตัวอย่างเช่นนี่คือสิ่งที่บรรทัดคำสั่งจะเป็นเช่นนั้นหากเราตั้งค่าเริ่มต้นทั้งหมดอย่างชัดเจน:
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/