python+influxdb+shell编写区域网络状况表


Posted in Python onJuly 27, 2018

本文为大家分享了python+influxdb+shell写一个区域网络状况表,供大家参考,具体内容如下

shell脚本部分:

python+influxdb+shell编写区域网络状况表

ex:就是ping 各个目的ip10个包,然后获取丢包率和平均延迟时间,在Linux上设置为定时任务,每分钟执行一次。他会把数据写到influxdb服务器上面去,表示hk_vnloss和hk_vn01rtt,字段是loss和rtt,其他各区域的都是类似。

python代码部分:

1、在Django项目的setting里面,配置influxdb数据库连接;

ALLOWED_HOSTS = ['*']

# Application definition

INSTALLED_APPS = [
  'django.contrib.admin',
  'django.contrib.auth',
  'django.contrib.contenttypes',
  'django.contrib.sessions',
  'django.contrib.messages',
  'django.contrib.staticfiles',
  'network_ping.apps.NetworkPingConfig',
  'influxdb_metrics',
]

##influxdb
INFLUXDB_HOST = 'influxdb服务器ip'
INFLUXDB_PORT = 'influxdb port'
INFLUXDB_USER = 'influxdb username'
INFLUXDB_PASSWORD = 'influxdb passwd'
INFLUXDB_DATABASE = 'influxdb database'
INFLUXDB_TIMEOUT = 36000

2、从influxdb数据库查询保存的loss和rtt数据;

from influxdb_metrics.utils import query


def get_loss(tab_name):
  loss_res = query('SELECT * FROM %s ORDER BY time DESC limit 1' % tab_name)
  loss = [res for res in loss_res]
  return loss

3、把数据传到web页面;

##network ping loss
def network_ping(request):
  # vn01 ping vn01
  vnloss01 = get_loss('vnloss')
  # vn01 ping vn02
  vnloss02 = get_loss('vn02loss')
  # vn01 ping th
  thloss = get_loss('thloss')
  # vn01 ping id
  idloss = get_loss('idloss')
  # vn01 ping sg
  sgloss = get_loss('sgloss')
  # vn01 ping tw
  twloss = get_loss('twloss')
  # vn01 ping hk
  hkloss = get_loss('hkloss')
  # vn01 ping sh
  shloss = get_loss('shloss')
  return render(request, 'net_ping.html',
         {'vn01': {
           'vnloss01': vnloss01,
           'vnloss02': vnloss02,
           'thloss': thloss,
           'hkloss': hkloss,
           'idloss': idloss,
           'sgloss': sgloss,
           'twloss': twloss,
           'shloss': shloss
         },...)

4、在web页面获取进行展示;

<tr>
  <td bgcolor="#f0f8ff" class="titlestyle">VN-01<br/>45.119.241.249</td>
  <td tloss={{ vn01.vnloss01.0.0.loss }}></td>
  <td tloss={{ vn01.vnloss02.0.0.loss }}></td>
  <td tloss={{ vn01.thloss.0.0.loss }}></td>
  <td tloss={{ vn01.idloss.0.0.loss }}></td>
  <td tloss={{ vn01.sgloss.0.0.loss }}></td>
  <td tloss={{ vn01.twloss.0.0.loss }}></td>
  <td tloss={{ vn01.hkloss.0.0.loss }}></td>
  <td tloss={{ vn01.shloss.0.0.loss }}></td>
</tr>

5、js定时刷新页面;

$(function () {
    $("[tloss]").each(function () {
      var loss_res = $(this).attr('tloss');
      if (loss_res < 10) {
        $(this).html('<span class="greentyle"></span><br/>loss: <span bg>' + loss_res);
      } else if (loss_res <= 20) {
        $(this).html('<span class="yellowstyle"></span><br/>loss: ' + loss_res);
      } else {
        $(this).html('<span class="redstyle"></span><br/>loss: ' + loss_res);
      }
    });
    setTimeout("self.location.reload();", 60000);
  })

6、最后的效果展示;

python+influxdb+shell编写区域网络状况表

最后:页面是每分钟定时刷新一次,但这个都是当前ping的loss和rtt值,要想看历史的ping情况,可以搭建一个Grafana,然后Grafana配置数据源为influxdb,就可以查看历史曲线等等,例如:

python+influxdb+shell编写区域网络状况表

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Django验证码的生成与使用示例
May 20 Python
python3实现公众号每日定时发送日报和图片
Feb 24 Python
selenium+python 对输入框的输入处理方法
Oct 11 Python
python 构造三维全零数组的方法
Nov 12 Python
浅谈pycharm使用及设置方法
Sep 09 Python
python使用正则表达式(Regular Expression)方法超详细
Dec 30 Python
Matplotlib scatter绘制散点图的方法实现
Jan 02 Python
如何通过Django使用本地css/js文件
Jan 20 Python
Scrapy框架实现的登录网站操作示例
Feb 06 Python
Matplotlib自定义坐标轴刻度的实现示例
Jun 18 Python
python实现邮件循环自动发件功能
Sep 11 Python
python实现Nao机器人的单目测距
Sep 04 Python
TensorFlow 合并/连接数组的方法
Jul 27 #Python
pytorch训练imagenet分类的方法
Jul 27 #Python
使用pytorch进行图像的顺序读取方法
Jul 27 #Python
PyTorch读取Cifar数据集并显示图片的实例讲解
Jul 27 #Python
pytorch 数据集图片显示方法
Jul 26 #Python
mac安装pytorch及系统的numpy更新方法
Jul 26 #Python
浅谈pytorch和Numpy的区别以及相互转换方法
Jul 26 #Python
You might like
php adodb介绍
2009/03/19 PHP
php中操作memcached缓存进行增删改查数据的实现代码
2014/08/15 PHP
Zend Framework实现多文件上传功能实例
2016/03/21 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
防止浏览器记住用户名及密码的简单实用方法
2013/04/22 Javascript
appendChild() 或 insertBefore()使用与区别介绍
2013/10/11 Javascript
showModelDialog弹出文件下载窗口的使用示例
2013/11/19 Javascript
jquery根据属性和index来查找属性值并操作
2014/07/25 Javascript
JavaScript动态修改网页元素内容的方法
2015/03/21 Javascript
浅谈JavaScript中指针和地址
2015/07/26 Javascript
js实现仿爱微网两级导航菜单效果代码
2015/08/31 Javascript
layui获取多选框中的值方法
2018/08/15 Javascript
Python下的常用下载安装工具pip的安装方法
2015/11/13 Python
python实现多线程行情抓取工具的方法
2018/02/28 Python
对Python3中的input函数详解
2018/04/22 Python
python tkinter控件布局项目实例
2019/11/04 Python
解决springboot yml配置 logging.level 报错问题
2020/02/21 Python
python实现网页录音效果
2020/10/26 Python
Ubuntu配置Pytorch on Graph (PoG)环境过程图解
2020/11/19 Python
Jmeter调用Python脚本实现参数互相传递的实现
2021/01/22 Python
关于HTML5语义标签的实践(blog页面)
2016/07/12 HTML / CSS
南非最大的花卉和送礼服务:NetFlorist
2017/09/13 全球购物
捷克家电和家具购物网站:OKAY.cz
2020/07/23 全球购物
护士实习自我鉴定
2013/10/22 职场文书
财务经理岗位职责
2013/11/09 职场文书
财务出纳员岗位职责
2013/11/26 职场文书
小学校园之星事迹材料
2014/05/16 职场文书
夏季药店促销方案
2014/08/22 职场文书
会计人员演讲稿
2014/09/11 职场文书
公司财务人员岗位职责
2015/04/14 职场文书
中标通知书格式
2015/04/17 职场文书
2015年信贷员工作总结
2015/04/28 职场文书
民间借贷借条范本
2015/05/25 职场文书
公司酒会主持词
2015/07/02 职场文书
Redis基本数据类型Zset有序集合常用操作
2022/06/01 Redis