python+infuxdb+셸 작성 영역 네트워크 상황 표
셸 스 크 립 트 부분:
ex:ping 각 목적 의 ip 10 개의 가방 을 가 져 온 다음 에 버 림 률 과 평균 지연 시간 을 가 져 옵 니 다.Linux 에 서 는 정시 작업 으로 설정 하여 분당 한 번 씩 수행 합 니 다.그 는 데 이 터 를 inpuxdb 서버 에 써 서 hk 를 표시 할 것 이다.vnloss 와 hkvn01rtt,필드 는 loss 와 rtt 이 고 다른 각 지역 은 모두 유사 합 니 다.
python 코드 부분:
1.Django 프로젝트 의 setting 에서 inpuxdb 데이터베이스 연결 을 설정 합 니 다.
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.infuxdb 데이터베이스 에서 저 장 된 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.웹 페이지 에 데 이 터 를 전송 합 니 다.
##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.웹 페이지 에서 가 져 와 전시 하기;
<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.마지막 효과 전시;마지막:페이지 는 매 분 에 한 번 씩 갱신 되 지만 이것 은 현재 ping 의 loss 와 rtt 값 입 니 다.역사의 ping 상황 을 보 려 면 Grafana 를 만 들 수 있 습 니 다.그리고 Grafana 는 데이터 원본 을 infuxdb 로 설정 하면 역사 곡선 등 을 볼 수 있 습 니 다.예 를 들 어:
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.