-
[Python] Check ICMP using ping3 module, maria db and grafanaPython/Python for Windows 2019. 8. 25. 04:54
이번 포스팅은 1부에서 명령어기반으로 구현한 ICMP 체크를 grafana 오픈소스를 이용해 시각화
모니터링을 구현해보겠다.
- 모듈 : ping3
- 적재DB : mariadb
mariadb DB 테이블 만들기
- logtime : ICMP를 체크한 현재 시간 → (str(datetime.now())[:19],site[0])
- host : ICMP 체크 대상 IP 주소 → (Site[0])
- pingstatus : 정상(0), 실패(1) → (ping status 정상 : 0, ping fail : 1)
import time from datetime import datetime from ping3 import ping,verbose_ping import pymysql conn = pymysql.connect(host='host',user='user',password='password',db='database',charset='utf8') c = conn.cursor() def dbinsert(): c.execute('''insert into pingcheck VALUES('%s', '%s', '%s')''' %(str(datetime.now())[:19],site[0],pingstatus)) conn.commit() while True: with open(r'D:\python\pinglist.txt', 'r') as f: for line in f.readlines(): site = line.split('\t') if site[0][0] == '#': pass else: result = ping(site[0]) if result == None: pingstatus = 1 print(site[0] + '\t' + site[1][:-1] + '\t' + ' Ping Check Fail : '+ str(datetime.now())[:19]) dbinsert() else: pingstatus = 0 print(site[0]+'\t'+site[1][:-1]+'\t'+' Ping Check OK :', '[ Response Time %.2f ] : ' %result+str(datetime.now())[:19]) dbinsert() time.sleep(1) time.sleep(60) c.close() conn.close()
프로그램을 실행시키면, ICMP 체크상태를 mariadb에 적재한다.
grafana를 maria db와 연동하여 "Table" 형태로 대쉬보드를 만들고, ping fail시 비정상 상태인 1일 경우 주황색으로 임계치를 설정
이제 아래와 같이 간단한 ICMP 시각화 모니터링을 할 수 있다.
텍스트 추가
이상으로 가볍게 python으로 ICMP(ping) 상태를 체크하고, 시각화 할 수 있는 방법을 알아보았다.
'Python > Python for Windows' 카테고리의 다른 글
[Python] subprocess모듈과 Bandizip을 이용한 전일 로그 자동 압축 보관 (0) 2019.10.20 [Python] To send an attachment when mailing (0) 2019.09.30 [Python] pandas를 이용한 iis-ftp log 파싱 (0) 2019.09.16 [Python] psutil을 이용한 프로세스/로컬IP/로컬Port/리모트IP/리모트Port 모니터링 (0) 2019.09.08 [Python] winreg 모듈을 이용한 Windows 공유폴더 레지스트리 설정 점검 (0) 2019.08.24 [Python] check ICMP using ping3 module. (파이썬을 이용한 ping 체크) (0) 2019.08.19 윈도우 2012 NTP 서버 구축 (1) - 외부 인터넷 시간 동기화 설정 (0) 2019.08.07 윈도우 2012 NTP 서버 구축 (4) - NTP 서버 설정 (0) 2019.08.07