需求

  现网有部分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>

最新文章

  1. Convert PLY to VTK Using PCL 1.6.0 使用PCL库将PLY格式转为VTK格式
  2. 3.Android 优化布局(解决TextView布局)
  3. iOS基础篇(十五)——UIScrollView的基本用法
  4. Hibernate核心思想—ORM机制(一)
  5. SSIS包配置动态配置数据库连接
  6. 如何使上层的div遮住的链接可以点击
  7. P1024 外星人的密码数字
  8. [AngularJS] ngAnimate angular way !!
  9. C语言获取网页源代码的学习所得
  10. 以非root权限安装nginx及运行
  11. &lt;转&gt; 纸牌屋1-4集分析
  12. JPA 中文乱码问题
  13. 禁被ping 软件漏洞升级
  14. 文字分列 CSS属性
  15. java虚拟机 之 垃圾回收机制
  16. 【洛谷】【计数原理+Floyed】P1037 产生数
  17. Python学习笔记第四周
  18. sp_executesql 或者 EXECUTE 执行动态sql的权限问题
  19. 将网桥的配置写进去/etc/sysconfig/network-scripts/ifcfg-xxx
  20. django-插件django REST framework,返回序列化的数据

热门文章

  1. Spring与Web项目整合的原理
  2. idea常见设置一
  3. 快速注册service服务
  4. Microservices
  5. 前端调试利器 - Charles
  6. 解决使用 swiper 常见的问题
  7. java中什么是局部内部类Local inner class?
  8. 小程序picker的使用
  9. Python接入企业微信 - 推送信息到内部群里
  10. 进程的概念及multiprocess模块的使用