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 相关文章推荐
python使用any判断一个对象是否为空的方法
Nov 19 Python
Python网络爬虫与信息提取(实例讲解)
Aug 29 Python
python实现kMeans算法
Dec 21 Python
python实现Zabbix-API监控
Sep 17 Python
Python3.5面向对象与继承图文实例详解
Apr 24 Python
python获取Linux发行版名称
Aug 30 Python
Python selenium的基本使用方法分析
Dec 21 Python
pytorch下大型数据集(大型图片)的导入方式
Jan 08 Python
PyCharm无法引用自身项目解决方式
Feb 12 Python
python对一个数向上取整的实例方法
Jun 18 Python
python求解汉诺塔游戏
Jul 09 Python
使用Python Tkinter实现剪刀石头布小游戏功能
Oct 23 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开发工具之vs2005图解
2008/01/12 PHP
解析php curl_setopt 函数的相关应用及介绍
2013/06/17 PHP
php实现MD5加密16位(不要默认的32位)
2013/08/12 PHP
php解压文件代码实现php在线解压
2014/02/13 PHP
PHP的Socket通信之UDP通信实例
2015/07/02 PHP
php实现中文转数字
2016/02/18 PHP
总结PHP中DateTime的常用方法
2016/08/11 PHP
JS中style属性
2006/10/11 Javascript
Prototype使用指南之hash.js
2007/01/10 Javascript
JS支持带x身份证号码验证函数
2008/08/10 Javascript
通过jQuery源码学习javascript(一)
2012/12/27 Javascript
javascript获取网页中指定节点的父节点、子节点的方法小结
2013/04/24 Javascript
实现checkbox全选、反选、取消JavaScript小脚本异常
2014/04/10 Javascript
jQuery实现切换字体大小的方法
2015/03/10 Javascript
js设置document.domain实现跨域的注意点分析
2015/05/21 Javascript
jquery实现文本框textarea自适应高度
2016/03/09 Javascript
基于react框架使用的一些细节要点的思考
2017/05/31 Javascript
Vue 兄弟组件通信的方法(不使用Vuex)
2017/10/26 Javascript
vue2中使用less简易教程
2018/03/27 Javascript
JS关闭子窗口并且刷新上一个窗口的实现示例
2020/03/10 Javascript
Vue 实现v-for循环的时候更改 class的样式名称
2020/07/17 Javascript
Python实现的HTTP并发测试完整示例
2020/04/23 Python
利用python编写一个图片主色转换的脚本
2017/12/07 Python
python多进程中的内存复制(实例讲解)
2018/01/05 Python
Python使用sklearn库实现的各种分类算法简单应用小结
2019/07/04 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
2020/01/20 Python
django admin后管定制-显示字段的实例
2020/03/11 Python
python中线程和进程有何区别
2020/06/17 Python
python 操作excel表格的方法
2020/12/05 Python
Dillard’s百货官网:Dillards.com
2018/05/26 全球购物
Maison Lab荷兰:名牌Outlet购物
2018/08/10 全球购物
乌鸦喝水教学反思
2014/02/07 职场文书
《翻越远方的大山》教学反思
2014/04/13 职场文书
2015年学校体育工作总结
2015/04/22 职场文书
居委会工作总结2015
2015/05/18 职场文书
Python-OpenCV实现图像缺陷检测的实例
2021/06/11 Python