090600
This commit is contained in:
33
old_scripts/graylog_sender.py
Normal file
33
old_scripts/graylog_sender.py
Normal file
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env python3
|
||||
import json
|
||||
import socket
|
||||
import sys
|
||||
import os
|
||||
from datetime import datetime
|
||||
|
||||
GRAYLOG_HOST = os.environ.get("GRAYLOG_HOST", "graylog.local")
|
||||
GRAYLOG_PORT = int(os.environ.get("GRAYLOG_PORT", 12201))
|
||||
LOG_FILE = sys.argv[1]
|
||||
|
||||
def send_to_graylog(message: dict):
|
||||
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||
sock.sendto(json.dumps(message).encode("utf-8"), (GRAYLOG_HOST, GRAYLOG_PORT))
|
||||
|
||||
def parse_log(file_path: str):
|
||||
with open(file_path, encoding='utf-8') as f:
|
||||
blocks = f.read().split('\n--------------------------------------------------\n')
|
||||
for block in blocks:
|
||||
lines = block.strip().splitlines()
|
||||
if not lines:
|
||||
continue
|
||||
msg = {
|
||||
"version": "1.1",
|
||||
"host": os.uname().nodename,
|
||||
"short_message": lines[0] if lines else "log entry",
|
||||
"timestamp": datetime.utcnow().timestamp(),
|
||||
"_details": '\n'.join(lines)
|
||||
}
|
||||
send_to_graylog(msg)
|
||||
|
||||
if __name__ == "__main__":
|
||||
parse_log(LOG_FILE)
|
||||
Reference in New Issue
Block a user