Python Syslog Server 开发实例

时间:2022-05-03
本文章向大家介绍Python Syslog Server 开发实例,主要内容包括1. 配置Cisco ASA 5550 Firewall、2. syslog 服务器脚本、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

本程序用于收集,防火墙,路由器,交换机等日志


目录

  • 1. 配置Cisco ASA 5550 Firewall
  • 2. syslog 服务器脚本

1. 配置Cisco ASA 5550 Firewall

logging enable 
logging timestamp 
logging trap warnings 
logging host inside 172.16.0.5
logging facility local0 

172.16.0.5 改为你的syslog服务器地址

2. syslog 服务器脚本

*注意:python版本必须3.0以上

chmod 700 syslogd

./syslogd

		#!/srv/python/bin/python3
# -*- encoding: utf-8 -*-
# Cisco ASA Firewall - Syslog Server by neo
# Author: neo<neo.chen@live.com>

import logging
import socketserver
import threading

LOG_FILE = '/var/log/asa5550.log'

logging.basicConfig(level=logging.INFO,
                    format='%(message)s',
                    datefmt='',
                    filename=LOG_FILE,
                    filemode='a')

class SyslogUDPHandler(socketserver.BaseRequestHandler):

    def handle(self):
        data = bytes.decode(self.request[0].strip())
        socket = self.request[1]
        print( "%s : " % self.client_address[0], str(data))
        logging.info(str(data))
#        socket.sendto(data.upper(), self.client_address)

if __name__ == "__main__":
    try:
        HOST, PORT = "0.0.0.0", 514
        server = socketserver.UDPServer((HOST, PORT), SyslogUDPHandler)
        server.serve_forever(poll_interval=0.5)
    except (IOError, SystemExit):
        raise
    except KeyboardInterrupt:
        print ("Crtl+C Pressed. Shutting down.")