通过 PRTG EXE 高级监控脚本 + python 监控华为防火墙线路健康状态
背景
通过 SNMP 无法获取 华为 healthcheck 健康监测状态,本机建介绍PRTG脚本 通过 EXE 脚本自定义监控参数,该传感器可以接受 json 或者 xml 格式,下来来看看如何是先吧~~~
要监控的信息
环境及配置依赖
- 系统:win-11
- python : 3.10.7
pip install paramiko
pip install textfsm
编写脚本
python 脚本
import paramiko
import time
import textfsm
import json
import sys# 连接设备
def connect_device(ip, link_name):ip = iplink_name = link_namessh_client = paramiko.SSHClient()ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())# 替换你的账户及密码 'name', 'password'ssh_client.connect(ip, 22, 'name', 'password', look_for_keys=False)command = ssh_client.invoke_shell()time.sleep(0.5)command.send('screen-length 0 temporary \n')time.sleep(1)command.send('display healthcheck name {} \n'.format(link_name))time.sleep(1)command.send('display healthcheck name {} verbose \n'.format(link_name))time.sleep(1)command_result = command.recv(65535).decode(encoding='utf-8').lower()ssh_client.close()# 通过textfsm模块获取数据, textfsm建议使用绝对路径tex_temp = open(open('C:\Program Files (x86)\PRTG Network Monitor\Custom Sensors\EXEXML\huawei_health_check_temp.txt', encoding='utf-8'), encoding='utf-8')result = textfsm.TextFSM(tex_temp).ParseTextToDicts(command_result)return result# 传感器是从回显中获取信息的,将处理后的信息打印处理
def print_result(dev_result, data):# 获取health_check的状态dev_state = dev_result[0]link_state = {"Channel": "{} Statu".format(dev_state['line_Name']),"CustomUnit": "#","Mode": "Absolute"}# 定义状态信息,0 为正常,1 为部分地址探测异常,2 为healthcheck探测失败if dev_state['All_State'] == 'up' and dev_state['line_down'] == '0':link_state["Value"] = 0data['prtg']['text'] = "Link State: up"elif dev_state['All_State'] == 'up' and dev_state['line_down'] != '0':link_state["Value"] = 1data['prtg']['text'] = "Link State: Some lines are abnormal"data['prtg']['Warning'] = 1else:link_state["Value"] = 2data['prtg']['text'] = "Link State: down"data['prtg']['Error'] = 1data['prtg']['result'].append(link_state)# 处理每个目的地址监测状态for one_line in dev_result:one_link_state = {"Channel": "{} Check Statu".format(one_line['One_Destination']),"CustomUnit": "#","Mode": "Absolute",}if one_line['One_State'] == 'up':one_link_state['Value'] = 0else:one_link_state['Value'] = 2data['prtg']['result'].append(one_link_state)print(json.dumps(data, sort_keys=True, indent=2))def main():data = {"prtg": {"result": []}}try:# 通过sys接受外部数据,设备地址及接口名称device_ip = sys.argv[1]link_name = sys.argv[2]result = connect_device(device_ip, link_name)print_result(result, data)except Exception as e:data['prtg']['text'] = "Link State: {}".format(e)print(json.dumps(data, sort_keys=True, indent=2))if __name__ == '__main__':main()
Python 获取到的数据
{"prtg": {"Warning": 1,"result": [{"Channel": "telecom-china-check Statu","CustomUnit": "#","Mode": "Absolute","Value": 1},{"Channel": "59.36.211.193 Check Statu","CustomUnit": "#","Mode": "Absolute","Value": 0},{"Channel": "223.6.6.6 Check Statu","CustomUnit": "#","Mode": "Absolute","Value": 2},{"Channel": "8.8.8.8 Check Statu","CustomUnit": "#","Mode": "Absolute","Value": 0}],"text": "Link State: Some lines are abnormal"}
}
textfsm模板
Value Filldown line_Name (\S+)
Value Filldown line_member (\w+)
Value Filldown All_State (up|down)
Value Filldown line_init (\d+)
Value Filldown line_down (\d+)
Value Filldown line_up (\d+)
Value One_State (up|down)
Value Required One_Destination (\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})Start^${line_Name}\s+${line_member}\s+${All_State}\s+${line_up}\s+${line_down}\s+${line_init}^\s+state\s+:\s+${One_State}^\s+\w+\s+\S+\s+\w+\s+\S\s+ip\S${One_Destination} -> Record
bat文件
使用本地python环境调用脚本
@echo off
"C:\Users\quzq\AppData\Local\Programs\Python\Python310\python.exe" "C:\Program Files (x86)\PRTG Network Monitor\Custom Sensors\EXEXML\huawei_health_check.py" %1 %2
将文件放置PRTG探针
目录为:C:\Program Files (x86)\PRTG Network Monitor\Custom Sensors\EXEXML
配置监信息
点击添加探针选高级exe脚本
配置相关参数
定义告警信息
当探针有一个线路异常时探诊状态为警告
查看线路异常通道,值显示为2的为down状态
参考链接
传感器介绍 https://www.paessler.com/manuals/prtg/exe_script_advanced_sensor
传感器字段介绍 https://www.paessler.com/manuals/prtg/custom_sensors#command_line
通过 PRTG EXE 高级监控脚本 + python 监控华为防火墙线路健康状态相关推荐
- 编写监控脚本,监控集群内所有服务存活状态,内存、磁盘剩余率检测,异常则发送报警邮件...
发送邮件Python程序 #!/usr/bin/python # -*- coding: UTF-8 -*- import sys import smtplib import email.mime.m ...
- tomcat监控脚本(监控进程,测试接口,告警动作为发送邮件)
服务器环境:centos7.2 64位 tomcat8.5.6 tomcat 监控功能共需要两个脚本,如下: initMonitor.sh #!/bin/sh #初始化监控脚本相关变量 export ...
- python移动端内存、电量监控脚本
python移动端内存.电量监控脚本,自动输出到本地txt adb命令查电量 adb shell dumpsys battery 电量监控脚本 内存监控脚本,适用于监控内存泄漏 第一次写博客,大家凑合 ...
- 在python中使用linux命令写一个监控脚本
编写python监控脚本,监控/和/boot分区的使用率,/ 大于60%就告警,在屏幕上输出内容,具体自己定义 /boot分区大于50%就告警 脚本名monitor_partition.py 将磁盘的 ...
- shell监控脚本-监控mysql 主从复制
注意:请先参考 shell监控脚本-准备工作,监控脚本在 rhel5 下测试正常,其它版本的linux 系统请自行测试 #监控mysql 主从复制 cat chk_mysql_rep.sh #!/bi ...
- python监控进程状态_python监控进程脚本
本文实例为大家分享了python监控进程脚本的具体代码,供大家参考,具体内容如下 原理: 监控一个指定进程,每隔5秒钟获取其CPU.内存使用量超过60%即kill掉该进程,获取其句柄数,超过300也k ...
- 【逗老师带你学IT】PRTG监控通过Python+Modbus RTU获取温湿度传感器数据
前文[逗老师带你学IT]PRTG监控通过Python+TCP Modbus获取温湿度传感器数据中我们讲了如何通过Python读取支持TCP Modbus的传感器数据.本章我们讲解下如何读取Modbus ...
- 【逗老师带你学IT】PRTG监控通过Python通过串口监控UPS运行状态,PRTG值查询功能定义
本文主要介绍,如何通过串口获取UPS主机的运行状态,并通过PRTG统计监控和告警. 不同UPS主机厂的串口通信协议不同,但是市面上有一种比较通用的协议,如果你使用的是EATON,山特等等国产UPS,大 ...
- 【逗老师带你学IT】PRTG监控通过Python+TCP Modbus获取温湿度传感器数据
本文介绍,Python如何通过TCP Modbus协议获取温湿度传感器数据.并在PRTG监控系统中呈现. 本文主要涉及知识点: 1.Python的ModbusTCP客户端实现 2.常见温湿度传感器中, ...
最新文章
- 网页左下角蒲公英动画
- Linux学习笔记 -- 文本编辑器之 vi与vim
- 韦东山驱动视频笔记——3.字符设备驱动程序之poll机制
- 今天发现新大陆:haml和Emmet
- 运行yum时出现错误,缺失libsasl2.so.2文件
- opencv16-Sobel算子
- bzoj1211 [HNOI2004]树的计数 prufer序列+组合数
- 苹果首款自研芯片Mac成本可能上升 因设计改变
- SetLayeredWindowAttributes 设置窗口透明
- python字典长度可变吗_[python] 根据字典中的信息生成列表,每次都会额外变长。...
- Atitit 数据查询法 目录 1. 数据查询语言QL (推荐)	1 1.1. Sql	1 1.2. 对象查询语言(OQL)	1 1.3. Atitit QL查询语言总结Jpql Ongl
- 计算机组成原理(白中英) 第二章 课后题答案
- 保险公司智能运营系统——软件需求规格说明
- 『学习资料推荐』百家讲坛中国历史音频珍藏版
- Python 实现发送QQ邮件(可加附件)
- 图文结合带你搞懂InnoDB MVCC
- 2020最新版影评小程序搭建教程(附源码获取渠道)
- 华为:海思坚持研发尖端半导体,不会进行任何重组或裁员;百度网盘下线SVIP会员免第三方广告特权;一加宣布与OPPO合并...
- 不错的google搜索地址
- ICSharpCode.SharpZipLib压缩的文件不能解压的原因
热门文章
- collection集合 厂家_一篇搞定Java集合类原理-WEB资讯专栏-DMOZ中文网站分类目录
- 5-3 区块链与供应链金融
- python 画不同形状的曲线
- 计算机老是蓝屏需要重新启动3,电脑经常蓝屏,需要重启,怎么办?
- 读书笔记——极简算法史:从数学到机器的故事 - 吕克·德·布拉班迪尔
- 小程序预览加载不出图片
- 微擎url模式解读_微擎常用开发文档
- Openwrt编译feeds机制
- 基于小波的图像边缘检测,小波变换边缘检测原理
- Linux关于ssh: connect to host xxx.xxx.xxx.xxx port 22: Operation timed out问题