使用python获取交换机syslog日志并使用jQuery在html上展示
需求
现网有部分pop点独立于海外,无法发送日志给内网日志服务器,同时最近网内有比较重要割接,所以临时写一个脚本来展示网内日志
思路
使用socket接收syslog数据,udp 514,数据部分格式化后写入js文档,html调用js文档来实现日志可视化
效果

python代码
import socket,re,os
def syslog(date):
date = date.replace('\"','\'')
pri = re.findall('\d+',date)[0]
pri = int(pri)
level = re.findall('<\d+>',date)[0]
div_class = 'debug'
if pri%8 == 0:
date = date.replace(level,'emerg ')
div_class = 'error'
elif pri%8 == 1:
date = date.replace(level,'alert ')
div_class = 'error'
elif pri%8 == 2:
date = date.replace(level,'crit ')
div_class = 'error'
elif pri%8 == 3:
date = date.replace(level,'error ')
div_class = 'error'
elif pri%8 == 4:
date = date.replace(level,'warning ')
div_class = 'warning'
elif pri%8 == 5:
date = date.replace(level,'notice ')
elif pri%8 == 6:
date = date.replace(level,'info ')
elif pri%8 == 7:
date = date.replace(level,'debug ')
return date,div_class s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
address = ('172.16.0.33',514)
s.bind(address)
while True:
date,address = s.recvfrom(10240)
date = date.decode(encoding='utf8')
date,div_class = syslog(date)
print(date)
with open ('/var/www/html/log.js','a') as f:
f.write(''' \n$('#log').prepend("<div class = '%s'>%s</div>")'''%(div_class,date.rstrip()))
前端 代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf8">
<meta http-equiv="Refresh" content="60" >
<title>syslog</title>
<script src="jquery-3.6.0.slim.min.js"></script>
<style>
*{margin:0; padding: 0;}
.debug{background-color: rgb(175, 175, 248);}
.warning{background-color:yellow;}
.error{background-color: red;}
</style>
</head>
<body>
<div id="log">
</div>
<script src="log.js">
</script>
</body>
</html>
使用python获取交换机syslog日志并使用jQuery在html上展示的更多相关文章
- 【Python】[技术博客] 一些使用Python编写获取手机App日志的操作
一些使用Python编写获取手机App日志的操作 如何获取手机当前打开的App的包名 如何获取当前App进程的PID 如何查看当前App的日志 如何将日志保存到文件 如何关闭进程 如何不显示命令行窗口 ...
- python中的第三方日志模块logging
基本上每个系统都有自己的日志系统,可以使自己写的,也可以是第三方的.下面来简单介绍一下python中第三方的日志模块,入手还是比较简单的,但是也很容易给自己埋雷. 下面是我参考的资料链接 入手demo ...
- Python入门之logging日志模块以及多进程日志
本篇文章主要对 python logging 的介绍加深理解.更主要是 讨论在多进程环境下如何使用logging 来输出日志, 如何安全地切分日志文件. 1. logging日志模块介绍 python ...
- syslog之一:Linux syslog日志系统详解
目录: <syslog之一:Linux syslog日志系统详解> <syslog之二:syslog协议及rsyslog服务全解析> <syslog之三:建立Window ...
- Python 3.0 写日志时出现乱码
问题描述 python 3.0启用日志, 在pycharm里打开.log文件时中文都显示乱码. 根本原因 默认日志编译用的是GBK, 而python 3.0写程序用的是UTF-8. 所以.log文件中 ...
- syslog日志
Syslog协议 系统日志(Syslog)协议是在一个IP网络中转发系统日志信息的标准,它是在美国加州大学伯克利软件分布研究中心(BSD)的TCP/IP系统实施中开发的,目前已成为工业标准协议,可用它 ...
- 演示:配置日志发送到syslog日志服务器
演示目标:配置网络环境中的交换机和路由器将日志发送到syslog日志服务器. 演示环境:如下图10.54所示的演示环境. 演示背景:要求部署网络中的syslog服务器,集中的收集交换机S1和路由器R1 ...
- Python获取时光网电影数据
Python获取时光网电影数据 一.前言 有时候觉得电影真是人类有史以来最伟大的发明,我喜欢看电影,看电影可以让我们增长见闻,学习知识.从某种角度上而言,电影凭借自身独有的魅力大大延长了人类的&quo ...
- 使用shell/python获取hostname/fqdn释疑
一直以来被Linux的hostname和fqdn(Fully Qualified Domain Name)困惑了好久,今天专门抽时间把它们的使用细节弄清了. 一.设置hostname/fqdn 在Li ...
随机推荐
- MM32F0140 UART1硬件自动波特率校准功能的使用
目录: 1.MM32F0140简介 2.UART自动波特率校准应用场景 3.MM32F0140 UART自动波特率校准原理简介 4.MM32F0140 UART1 NVIC硬件自动波特率配置以及初始化 ...
- JavaScript的取值小技巧之“中括号[]取值法”
一.简介 做下记录,今天看了一篇很有意思的文章,学到了这个取值的小技巧 正常的话我们一般都是用对象直接去'.'对应的属性名(也就是键值对的键)来获取对应的值 这里记录的是另一种取值方式,他是采用中括号 ...
- Python中 No module named解决方法
对于pycharm安装包失败的原因借解决办法 在pycharm中安装包安装失败:Non-zero exit code (1) 可能是在库中找不到对应版本.解决:cmd中使用命令:pip install ...
- 前馈控制+PID
参考来源: 北京交通大学 硕士学位论文 基于脉冲串控制的含位置反馈和前馈补偿的位置控制算法的研究 赵旺升
- ionic的checkbox分析
之前分析了一个原生的checkbox,趁热打铁分析ionic的自带checkbox. html <label class="checkbox"> <input t ...
- A Beginner’s Introduction to CSS Animation中文版
现在越来越多的网站正在使用动画,无论是以GIF,SVG,WebGL,背景视频等形式. 当正确使用时,网络上的动画带来生机和交互性,为用户增添了额外的反馈和体验. 在本教程中,我将向您介绍CSS动画; ...
- VueJs项目笔记
======================知识点总结=========================== 一.keep-alive(实现页面的缓存) 二. 移动端固定定位的解决方案 三. Vue表 ...
- CSS:两端对齐原理(text-align:justify)
我是一个小白我是一个小白我是一个小白喷我吧,哈哈 写样式的是时候经常会碰到字体两端对齐的效果,一般就网上找端css样式复制下就结束了,没有考虑过原理是啥贴下代码 <head> <me ...
- IETF 官网
IETF 官网 https://www.ietf.org/ IETF数据追踪网站: https://datatracker.ietf.org/
- Go 1.18泛型的局限性初探
前言 Go 1.18 版本之后正式引入泛型,它被称作类型参数(type parameters),本文初步介绍 Go 中泛型的使用.长期以来 go 都没有泛型的概念,只有接口 interface 偶尔类 ...