今天不废话,直奔主题。

说说怎么用,免得大家伙一头雾水,不知道怎么运行。

下载一个python3.8,这不重要python3都行,然后安装。

将以下文件拷贝成一个.py文件,如:Syslog.py


#!/usr/bin/python3
import os
import socket
import timeDevList = [[5,'LWCO-N6/7-U41-SW-6800-POC'],[3,'HZXY-38-A05-SLB-1'],[3,'HZYX-38-A05-LLB-1'],[3,'HZLW-N01-5208-LLB-1'],[3,'HZLW-N01-5208-SLB-1']
]server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server.bind(('10.213.8.112', 514))def SyslogToFile():while True:data = server.recvfrom(8092)(LogMsg, host) = dataLogMsg = LogMsg.decode()print(LogMsg)LogMsgList_ = LogMsg.split(' ')LogMsgList = []
for i in LogMsgList_:
if i != '':
LogMsgList.append(i)for i in DevList:if LogMsgList[i[0]] == i[1]:with open(FileName(i[1]),mode='a') as f:f.write(LogMsg+'n')else:continuedef FileName(hostname):Asctime_ = time.asctime().split(' ')
Asctime = []
for i in Asctime_:
if i != '':Asctime.append(i)Day = "-".join([Asctime[4], Asctime[1], Asctime[2]])Path = r'D:SyslogData'if os.path.exists(Path+'/%s'%Day) == False:NewDir = Path + './%s'%Dayos.mkdir(NewDir)else:NewDir = Path + './%s'%Dayhostname = hostname.replace("/","")filename = NewDir +'./'+ hostnamereturn filenameSyslogToFile()

管理员身份运行IDLE

File 打开Syslog.py

Run —— Run... Customized

忽略弹出的对话框,直接OK,然后,程序就运行了,就可以接收syslog了。

哟西。

以上,就上syslog服务器的运行。

接下来,请自行创建D:SyslogData文件夹,不然会报错。

然后怎么发日志呢,以一台H3C交换机为例:

info-center loghost 10.213.8.112
info-center source default loghost level informational 

好了,

完成。


程序什么功能?

将每天收到的syslog日志根据主机hostname的不同进行分类存储,大概算了下,每台网络设备每天产生的日志(info级别)<10M,那么我们有100台网络设备,一天产生的日志<1G,那么一年365天所需要的存储空间为@#¥%……&*。。。 反正也不多的啦,将这些日志存储在文本文件中,可行。

下面,我们来对程序进行设置:

1、设置网络设备:

DevList = [[5,'LWCO-N6/7-U41-SW-6800-POC'],[3,'HZXY-38-A05-SLB-1'],[3,'HZYX-38-A05-LLB-1'],[3,'HZLW-N01-5208-LLB-1'],[3,'HZLW-N01-5208-SLB-1']
]

[5,'LWCO-N6/7-U41-SW-6800-POC']
其中5表示序列号是,'LWCO-N6/7-U41-SW-6800-POC'表示的是这台主机的hostname,也能够决定保存文件的文件名。

5的由来,来到交换机,我们来dis logb

选取一条syslog信息,贴出来。

%Jul  1 22:31:33:644 2011 LWCO-N6/7-U41-SW-6800-POC SHELL/5/SHELL_LOGOUT: admin logged out from 10.5.0.208.
然后我们来排个序:
0 %Jul
1
2 1
3 22:31:33:644
4 2011
5 LWCO-N6/7-U41-SW-6800-POC
6 SHELL/5/SHELL_LOGOUT:
7 ........够了,够了

以上看出这里之所以是5,是因为将日志信息按照空格分割排序后,hostname的序号刚好就是5。这样理解简单。

hostname就是hostname,直接从syslog粘上去即可。

主机自己复制粘贴上去就行啦,重复配置就不演示了。

运行一段时间后,观察我们创建的D:SyslogData文件夹:

下面多了一个以时间命名的文件夹,继续点进去

这些,就是我们不同主机发过来的日志文件,以文本文件形式打开,会发现,日志呢,都在这里了。

如果需要修改文件保存路径,请修改这一段中的D:SyslogData,但在文件保存之前,修改的目录一定要是存在的。

好了,今天就到这里。

后续:

12月份了,发现程序并没有自动创建文件夹及文件,并将日志写到新文件中。

发现负载均衡日志信息中12月比11月多了一个空字符,导致列表匹配异常,无法正常使用,,当然并不是所有设备都这样,为此对代码进行了优化。

11月收到日志格式如下:
<133>Nov 19 00:00:44 HZLW-N01-5208-SLB-1 NOTICE  AlteonOS <slb>: real service vm-lw-gaea-dealer-manage...r-t01, IP 10.213.7.36:8080 operational, affected virt 10.210.49.90
12月收到日志格式(列表)如下:['<189>Dec', ‘’, '5', '11:10:54', 'HZLW-N02-5208-SLB-2', 'NOTICE', 'AlteonOS', '<mgmt>:', 'admin(admin)', 'login', 'from', 'host', '10.194.86.154', 'via', 'WBM'] 优化方法:将列表中的''删除,重新组合。
Asctime_ = time.asctime().split(' ')
Asctime = []
for i in Asctime_:
if i != '':Asctime.append(i)LogMsgList_ = LogMsg.split(' ')LogMsgList = []
for i in LogMsgList_:
if i != '':
LogMsgList.append(i)

syslog收到的日志存放在哪里_【Python】Syslog日志服务器开发amp;部署(12.5更新)相关推荐

  1. 如何使用日志进行程序调试_如何使用日志节省调试时间

    如何使用日志进行程序调试 by Maya Gilad 通过Maya Gilad 如何使用日志节省调试时间 (How to save hours of debugging with logs) A go ...

  2. gc日志一般关注什么_理解GC日志

    title: 理解GC日志 comments: false date: 2019-07-16 10:25:52 description: 理解 GC 打印的回收日志内容 categories: GC ...

  3. node.js 微信小程序 部署服务器_微信小程序云开发环境部署,及添加数据

    点击蓝字 关注我们 今天在漫无目的逛CSDN的时候,一篇关于微信公众号云开发的文章引起了我的注意.据介绍,小程序云开发简称tcb,是腾讯爸爸给我们提供的基于腾讯云的云服务器.目前云开发已包含云数据库, ...

  4. linux服务器存放规划,规划适用于 Linux 和 UNIX 服务器的客户端部署

    下表描述了所需的 UNIX 和 Linux 操作系统和程序包依赖关系. Red Hat Enterprise Linux ES 版本 4 所需的程序包 描述 最低版本 glibc C 标准库 2.3. ...

  5. 某系统有6台输出设备 有多个进程均需要使用2台_从零开始学K8s: 2.开发与部署方式的演变...

    近年来,应用开发和部署发生了一些变化.这些变化是由两方面促成的,一方面是大型单体应用被拆解为更多小型的微服务,另一方面是应用程序运行所依赖的基础架构发生了变化.理解这些变化,将使我们更好的看到使用k8 ...

  6. cdn搭建原理_什么叫cdn服务器?怎么部署?

    在现今的网络系统时期,各类互连网手机app异军突起,而互联网出現浏览卡屏或延时的状况也越来越非常广泛,以便处理不一样的互联网情况,人们常常会构建到不一样的虚拟主机来浏览互联网,cdn服务器也是列举这种 ...

  7. IIS日志文件存在哪里?Windows服务器IIS日志存放位置 及 查看方法

    Windows服务器IIS日志存放位置及查看方法 iis日志查看方法一:Windows默认文件夹 iis日志查看方法二:iis 管理器查看 用户每打开一次网页,iis 都会记录用户IP.访问的网页地址 ...

  8. Python学习日志12 - 办公自动化

    Python学习日志 RBHGO的主页欢迎关注 温馨提示:创作不易,如有转载,注明出处,感谢配合~ 目录 文章目录 Python学习日志 目录 前言 进入正题 Python学习日志12课 - 办公自动 ...

  9. Beats:使用 Elastic Stack 记录 Python 应用日志

    日志记录实际上是每个应用程序都必须具备的功能.无论你选择基于哪种技术,都需要监视应用程序的运行状况和操作.随着应用程序扩展,这变得越来越困难,你需要查看不同的文件,文件夹甚至服务器来查找所需的信息.虽 ...

最新文章

  1. CSW是怎样用极端化来分裂BCH社区的
  2. H5调用APP的方法
  3. vc 中对对话框的几种操作
  4. python基础===八大排序算法的 Python 实现
  5. spring boot 架构问题 时间处理 (映射,时区问题)
  6. Django从理论到实战(part3)--创建一个Django项目
  7. SAP UI5的表格里如何显示复合列
  8. Intellij Idea乱码解决方案都在这里了
  9. java如何获取文件路径_java如何获取文件路径
  10. jsf入门实例_JSF错误消息示例教程
  11. CTF密码学之SM4
  12. 什么是数据可视化大屏?有哪些优点
  13. 网络安全——ARP欺骗与突破封锁
  14. 北大MBA夫妇不满现有教育系统 携女隐居终南山
  15. 不能不用也不可乱用的标准化和归一化处理
  16. 从团队协作的五大障碍看团队管理该怎么做
  17. 图片base64转存本地url
  18. 如何获取QQ邮箱授权码——步骤详解
  19. 赵小楼《天道》《遥远的救世主》深度解析(117)分离已有的各种相,得你想要的结果
  20. ccsa安学网小程序_CCSA安学网题库1

热门文章

  1. GdiPlus[16]: IGPLinearGradientBrush 之 SetBlendBellShape、SetBlendTriangularShape
  2. App installation failed (A valid provisioning profile for this executable was not found)
  3. 20171006-构建之法:现代软件工程-阅读笔记
  4. mongodb数据库的启动和停止
  5. 使用HttpModule实现多个域名分别“绑定”到子目录
  6. 如何修改Window系统下PATH路径
  7. 几种常见的数据库连接的URL写法(包括国产数据达梦DM)
  8. Centos7下yum安装GlusterFS方法
  9. FATAL: password authentication failed for user postgres
  10. 【Python-3.5】绘制随机漫步图