print(f'configured two router {area_config},{interfaces[0]},{network_config}')
复制代码
2.信心采集状态
import paramiko
import os
import time
import random
import datetime
import pandas as pd
import re
import numpy as np
from sqlalchemy import text, create_engine
import psycopg2
from psycopg2 import sql
from sqlalchemy.orm import sessionmaker
from sqlalchemy.dialects.postgresql import insert as pg_insert
from sqlalchemy import create_engine, MetaData, Table, inspect
import schedule
import telnetlib
import threading
import time
def get_info_telnet(host_ip, username, password):
`
3.故障数据分析
`
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib as mpl
import os
import numpy as np
import math
import random
import threading
from datetime import datetime, timedelta
import pandas as pd
from sqlalchemy import create_engine, text
from sqlalchemy.orm import sessionmaker
from datetime import datetime
import json
import re
import time
import itertools
import warnings
warnings.filterwarnings("ignore")
if name == 'main':
try:
engine = create_engine('postgresql://5ga-cmcc:5ga-cmcc@localhost:5432/postgres')
Session = sessionmaker(bind=engine)
query = """
SELECT * FROM traffic_table where port_name = 'xgei-0/2/0/24' ORDER BY time desc LIMIT 200;
"""
with Session() as session:
result = session.execute(text(query))
data = pd.DataFrame(result.fetchall(), columns=result.keys())
data['time'] = pd.to_datetime(data['time'], format='%Y-%m-%d %H%M%S')
data.sort_values('time', inplace=True)
data.reset_index(level=None, drop=True, inplace=True)
session.close()
# 转换结果为列表
data['rx_bytes'] = data['rx_bytes'].diff(1)
data['tx_bytes'] = data['tx_bytes'].diff(1)
# data.index = pd.DatetimeIndex(data['time'])
# data = data.resample('10s',closed='right').max()
5.信息采集
import os
import time
import datetime
import pandas as pd
import schedule
import telnetlib
import paramiko
from sqlalchemy import create_engine, MetaData, Table, inspect
from sqlalchemy.orm import sessionmaker
from sqlalchemy.dialects.postgresql import insert as pg_insert
获取情况变量中的根据
primary_keys = [key.name for key in inspect(table).primary_key]
stmt = stmt.on_conflict_do_update(
index_elements=primary_keys,
set_={key: value for key, value in stmt.excluded.items()}
)
session.execute(stmt, dict_rows)
session.commit()
except Exception as e:
session.rollback()
print(f"Error saving data to database: {e}")
finally:
session.close()
复制代码
def monitor_task():
pd_output = get_info_telnet(TELNET_HOST, TELNET_USERNAME, TELNET_PASSWORD)
if pd_output is not None:
database_write(pd_output)
if name == 'main':
schedule.every(10).seconds.do(monitor_task)
while True:
schedule.run_pending()
time.sleep(1)
6.信息采集——多远
import os
import time
import pandas as pd
import re
import glob
import numpy as np
import telnetlib
import threading
def do_telnet(host_ip, path, username, password):