Python/Python for Windows 37

윈도우 2012 NTP 서버 구축 (1) - 외부 인터넷 시간 동기화 설정

NTP서버를 만들기 위해서는 NTP서버가 외부 인터넷 타임서버와 주기적으로 동기화 되어야 한다. 기본적으로 인터넷 시간과 동기화 주기는 일주일(weekly)이다 일반적으로 일 1회는 동기화가 되야 NTP서버 노릇을 할 수 있다. 주기 변경은 레지스트리에 할 수 있는데, 경로는 아래와 같다. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient SpecialPollInterval 값을 보면, 기본적으로 604800초(일주일)로 되어있다. 이제 일 단위인 86400으로 변경하겠다. Windows Time 서비스를 재시작 하고, 다시 설정을 보면 일 단위로 변경됨을 알 수 있다. 방화벽 오픈이 필요하면 아웃바운드..

윈도우 2012 NTP 서버 구축 (3) - 모니터링결과 메일 받기

외부 타임서버과 NTP서버 와의 시간체크를 SMTP를 이용하여 메일로 송부하여 모니터링할 수 있다. 또한 결과를 웹이나 DB으로 송출하여 다양한 방법으로 모니터링이 가능하다. import ntplib from datetime import datetime import os from time import ctime import smtplib from email.mime.text import MIMEText timeServer = 'time.bora.net' c = ntplib.NTPClient() response = c.request(timeServer, version=3) boraTime = ctime(response.tx_time) localserverTime = datetime.now().ctime()..

윈도우 2012 NTP 서버 구축 (2) - 서버 시간 모니터링

NTP서버가 외부 타임서봐와 동기화가 잘 되는지 모니터링이 필요하다. 파이썬(Python)을 이용하여 간단하게 모니터링 프로그램을 만들겠다. 외부 타임서버는 'time.bora.net' 로 지정해보았다. import ntplib from datetime import datetime import os from time import ctime timeServer = 'time.bora.net' c = ntplib.NTPClient() response = c.request(timeServer, version=3) boraTime = ctime(response.tx_time) localserverTime = datetime.now().ctime() print(timeServer, ':', boraTime) pr..

python을 이용한 IIS web log 분석 (6) - 통계 분석

DB화가 되었으니 SQL쿼리문을 통해서 분석이 가능하다. # 2019년 6월 3일 9시 서버에서 보낸 용량 총합 import sqlite3 conn = sqlite3.connect(r'C:\log\weblog_sqlite3.db') c= conn.cursor() rows = c.execute('''select sum(scbytes) from weblog where logtime between '2019-06-03 09:00:00' and '2019-06-03 09:59:59' ''') for i in rows: print(i[0]) c.close() conn.close() ---------------------------------------------------------------------- 239..

python을 이용한 IIS web log 분석 (5) - DB화

(1) UTC시간 조정 (2) 국가식별 (3) 확장자 구분 (1) ~ (3) 까지 RAW로그를 이용해 추가로 분석할 데이터를 추출하는 방법을 알아보았다. 이제 Query를 이용해 분석할 수 있도록 몇개의 필드만 DB화 해보겠다. 변수 및 배열 필드 설명 logtime (logs[0] + logs[1]) logtime 시간 데이터 logs[12] useragent 응답코드 (200 / 404 / 500 등 분석) logs[16] scstatus 용량 (용랑 큰 컨텐츠 검색) logs[19] scbytes 인입 에이전트 검색 logs[21] timetaken 응답시간 (웹 사이트 응답시간) extention extention 확장자 (통계 및 불필요한 접근 검색) country country 국가식별 (국내..

python을 이용한 IIS web log 분석 (4) - 파일 확장자

cs-uri-stem 필드를 이용해 파일의 확장자를 분리할 수 있다. 확장자를 추출하여 할 수 있는 일은 1. 확장자 통계를 이용하여 IIS MIME에서 필요한 확장자만 식별 2. bak, sql, db, conf 와 같이 웹에서 노출되면 않되는 확장자들이 노출되는지 확인 fromdatetimeimportdatetime from datetime import timedelta import geoip2.database reader = geoip2.database.Reader('C:\DB\GeoLite2-city.mmdb') # path with open(r'C:\log\sample.log', encoding='utf-8', errors='replace') as f: lines = f.readlines() f..

python을 이용한 IIS web log 분석 (3) - 클라이언트 IP 국가식별

이번 포스팅은 웹 로그 중 CIP(클라이언트 IP)를 이`용하여 국가식별을 하려고 한다. 국가식별을 하는 이유는 크게 2가지로 볼 수 있는데, 1. 국가별 인입 통계 2. 해외IP인입을 확인 및 차단하는 데 활용. (국내 서비스 일경우) 우선 GeoLite2 라는 국가DB를 다운받아서, CIP를 DB에 대입하여 국가정보를 추출하겠다. https://dev.maxmind.com/geoip/geoip2/geolite2/ GeoLite2 Free Downloadable Databases « MaxMind Developer Site GeoLite2 Free Downloadable Databases GeoLite Legacy databases were discontinued on January 2, 2019. L..

윈도우 성능 데이터 분석 3부 - 사례를 이용한 grafana 시각화

3부에서는 Grafana를 이용하여 그래프를 표현해보겠다. grafana mariadb 연결 : https://pydole.tistory.com/217 한대의 웹서버나 7일간 데이터를 샘플로 CPU, Memory, Network 를 그래프로 표현해보자 1. Network Traffic (Rev + Send) - 인아웃바운드 총 트래픽이 초당 Peak 일때는 100M - 정기적으로 평일 오전에 트래픽이 많음을 알 수 있다. - 초당 100M면 서버를 증설하여 분산하거나 트래픽이 큰 컨텐츠를 발견하여 줄이거나 제거하는 것이 좋다. 2. process time - 대체적으로 CPU 사용율은 25%를 넘기지 않는다. - 20일 오전 CPU가 살짝 올라왔으나 정상범주이다. 프로세스별 CPU 점유 모니터링이나 작업..

[Python] 디렉토리(하위포함) 파일명 점검 하기

웹 서버를 운영하다 보면 웹 소스, 동영상 등 파일명을 고려해야 하는데, 시스템 명령어나 SQL쿼리문, 특문과 같은 파일명 들어가 있는 파일명은 보안장비에서 오탐으로 필터가 될 수 있다. 파이썬으로 특정폴더 이하에 있는 파일을 간단하게 점검할 수 있다. 파일명에 SQL 쿼리 명령어가 포함된 파일명 체크 sysCmd = {'select':'slct', 'update':'updt','insert':'inst'} for (path, dir, files) in os.walk(r'D:\test4'): for filename in files: for i in sysCmd: if i in filename: print('%s 파일에 %s 가 포함되어 있습니다. %s 로 변경을 권장드립니다.' %(filename,i,s..