SQL Server Monitoring

Database/SQL Server / /
728x90

1.    기본 구조

1)      수집 형태


 

2)      제품 선택 (EMK vs ITG)

A.     저장 데이터베이스

I.       ElasticSearch

(ㄱ)  장점 : 현재 회사에서 사용 중, 시간 단위로 데이터를 저장에 적합

(ㄴ)  단점 : Kibana MS-SQL 계열의 템플릿 중 x-pack(사용버전)만 지원하는 하는 내용이 있음

II.      InfluxDB

(ㄱ)  장점 : 시계열 데이터베이스로서 가장 많이 사용되고 있는 DB로 모니터링에 적합

(ㄴ)  단점 : 시계열 데이터베이스 자체의 사용이 적어 기술적 레퍼런스 적음

B.      데이터 수집

I.       Metricbeat

(ㄱ)  장점 : 수집, 저장, 출력 이 모두 같은 업체 제품으로 가능하여 템플릿 구성이 잘되어 있음

(ㄴ)  단점 : windows 6 버전, MS-SQL7버전부터 지원하고 아직 다양한 정보를 가져오지 못함

II.      telegraf

(ㄱ)  장점 : influxData 제품으로 influxDB와 템플릿으로 호환되며 windows Perfmon에서 지원하는 내용을 대부분 가져옴

(ㄴ)  단점 : influxDB와만 대부분 호환 가능

C.      데이터 디스플레이

I.       Kibana

(ㄱ)  장점 : 다양한 템플릿을 elastic에서 직접 공유하여 편히 사용가능

(ㄴ)  단점 : 아직 windows MS-SQL 지표는 템플릿 부족

II.      grafana

(ㄱ)  grafana vs Chronograf : influxData에서 자체적으로 지원하는 출력 툴인 Chronograf가 있으나 아직 초기 개발단계라 다양한 시작적 효과 미비, grafanainfluxDB를 지원함으로 이용 가능함

(ㄴ)  장점 : 현재 회사에서 사용 중, 다양한 그래프 및 문자 출력 용이

(ㄷ)  단점 : 그래프 변수 전달 시 알람 기능 사용불가

D.     결정 : windows MS-SQL 데이터를 더 다양하게 가져올 수 있는 제품으로 생각하여 ITG 선택


 

2.    설치

1)      telegraf

A.     다운로드 : https://portal.influxdata.com/downloads/

B.      설정

I.       https://github.com/influxdata/telegraf/blob/master/docs/CONFIGURATION.md

II.      주요 설정 값 :

(ㄱ)  flush_jitter : 설정한값으로 가지고 있는 값을 flush
설정 값 - 5s(5)

(ㄴ)  logfile : 로그파일의 위치와 파일 설정
설정 값 : ./logs/telegraf.log

(ㄷ)  hostname : 서버호스트명으로 셋팅

(ㄹ)  [[outputs.influxdb]] 셋팅

     urls : influxDB 주소
설정 값 : urls = ["http://127.0.0.1:10000"]

     database : 저장 데이터베이스명
설정 값 : database = "telegraf"

(ㅁ)  windows 버전을 받으면 기본적으로 inputwindows 시스템으로 구성되어 있음
아래 값을 추가적으로 수집
[[inputs.win_perf_counters]]
  [[inputs.win_perf_counters.object]]
    # Process metrics, in this case for IIS only
    ObjectName = "Process"
    Counters = ["% Processor Time","Handle Count","Private Bytes","Thread Count","Virtual Bytes","Working Set"]
    Instances = ["*"]
    Measurement = "win_proc"
    #IncludeTotal=false #Set to true to include _Total instance when querying for all (*).

(ㅂ)  [[inputs.sqlserver]] 추가

     MS-SQL 정보 input 받기 위해서 값 추가

     MS-SQL 연결 정보 셋팅
설정 값 : servers = ["Server=127.0.0.1;Port=1433;User Id=admin_dba;Password=shr#lsghd0ks;app name=telegraf;log=1;",]

     query_version 버전이 2개 존재하는 데 최신 버전인 사용
설정 값 : query_version = 2

2)      influxDB

A.     다운로드 : https://portal.influxdata.com/downloads/

B.      설정

I.       https://docs.gitlab.com/ee/administration/monitoring/performance/influxdb_configuration.html

II.      메타 정보 저장 위치 설정
설정 값 : dir = "D:\\MONITORING\\influxdb\\meta"

III.    데이터 파일 저장 위치 설정
설정 값 : dir = "D:\\MONITORING\\influxdb\\data"

IV.    wal(로그) 파일 저장 위치 설정
설정 값 : wal-dir = "D:\\ influxdb-1.7.2-1\\influxdb\\wal"

V.      디비 연결 포트 설정 : (포트값 4자리까지만 인지)
설정 값 : bind-address = ":8001"

3)      grafana

A.     다운로드 : https://grafana.com/get

B.      설정

I.       defaut.ini 를 복사하여 custom.ini 생성

II.      custom.ini의 연결 포트 변경
설정 값 : http_port = 3001

4)      테스트

A.     influxDB 실행

I.       설치 폴더로 이동

II.      influxd.exe --config=influxdb.conf

B.      telegraf 실행

I.       설치 폴더로 이동

II.      telegraf --config=telegraf-dw.conf

C.      grafana 실행

I.       설치 폴더의 bin 폴더로 이동

II.      grafana-server.exe

D.     웹 브라우저로 grafana 접근


3.    대쉬보드 셋팅

1)      DB 등록

A.     Grafana > Configuration 이동


 

B.      Add data source 클릭 -> InfluxDB 선택


 

C.      DB 연결 정보 입력

HTTP – URL : 접속 셋팅한 URL (http://localhost:8001)

InfluxDB Detail : 

-   Database : telegraf

-   user : admin

-   password : admin

 

2)      대쉬보드 import

A.     대쉬보드 템플릿 다운로드

I.       MSSQL : https://grafana.com/dashboards/9386 (sql-servers_rev2.json)

II.      Windows Server : https://grafana.com/dashboards/1902 (sql-server-telegraf_rev1.json)

III.    저장한 경로 : DW 장비 > D:\MONITORING\grafana\public\dashboards

B.      pie 그래프를 사용하기 위한 plugin 설치

I.       설치 폴더로 이동

II.      grafana-cli plugins install grafana-piechart-panel 로 설치

C.      Grafna > Create > import

D.     Upload .json File > 다운로드한 json 선택

I.       Name 설정

II.      influxdb-telgraf 설정 : 등록한 DB 선택


 

4.    Windows Service 등록

1)      윈도우 서비스 등록 프로그램

A.     https://nssm.cc/download

B.      간단한 명령어

I.       서비스 설치(윈도우 서비스 관리에 등록)
nssm install <servicename>
nssm install <servicename> <program>
nssm install <servicename> <program> [<arguments>]
nssm set <servicename> AppDirectory <path>

II.      서비스 삭제(윈도우 서비스 관리에서 제거)
nssm remove
nssm remove <servicename>
nssm remove <servicename>confirm

III.    서비스 시작과 중지
nssm start <servicename>
nssm stop <servicename>
nssm restart <servicename>

IV.    서비스 상태 질의
nssm status <servicename>

V.      서비스 제어 전송
nssm pause <servicename>
nssm continue <servicename>
nssm rotate <servicename>

C.      출처:
https://gafani.tistory.com/entry/
윈도우에서-서비스-등록하는-프로그램
https://bigdatalab.tistory.com/9

2)      Grafana service 등록

A.     nssm 설치 경로 > 64bit 이동

B.      서비스 등록

cmd  > nssm install Grafana

 


 

Install service

 


 

Grafana > 마우스 오른쪽 버튼 > 시작

 

3)      InfluxDB 서비스 등록

A.     nssm 설치 경로 > 64bit 이동

B.      서비스 등록

cmd > nssm install InfluxDB

 


 

Install service

 


 

InfluxDB > 마우스 오른쪽 버튼 > 시작

 

C.      데이터 보관 기간 설정

설치 경로로 이동 > influx.exe 실행

> show retention policies on telegraf (보관 기간 확인 0s 무제한)

alter retention policy augen on telegraf duration 5w(5주로 변경)

 

4)      Telegraf 서비스 등록

A.     https://github.com/influxdata/telegraf/blob/master/docs/WINDOWS_SERVICE.md

B.       서비스 등록

cmd  관리자 권한으로 실행 > telefgraf 설치 폴더로 이동

telegraf --service install --service-name=Telegraf_DW --config "D:\MONITORING\telegraf\telegraf_dw.conf"

 


 

Telegraf Data Colletot Serviec > 마우스 오른쪽 버튼 > 실행

 

728x90

'Database > SQL Server' 카테고리의 다른 글

확장 이벤트를 통한 Dead Lock 캡처  (0) 2021.04.22
Lock 과 DeadLock  (0) 2021.04.22
Flyway 이용한 형상관리  (0) 2021.04.16
SQL Server 및 OS 성능 지표 정리  (0) 2021.04.16
SQL Server Graph DB 간단한 테스트  (0) 2021.04.15
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기