(※Bare Metal 서버 설치 시)
1. Grafana를 설치
-> Download the installer
1.1. admin 계정 변경
-> 설치가 완료되면 localhost:3000 으로 Grafana에 접속 가능합니다.
-> 초기 admin 계정 admin / admin 으로 로그인하여 암호를 변경합니다. 계정 이름도 함께 변경하는 것을 권장합니다.
그림. 계정>Preferences
1.2. Grafana 포트 오픈
-> 외부 네트워크에서 Grafana 접속을 위해 OS 방화벽 정책의 Grafana의 포트(기본:3000)를 인바운드 규칙 TCP:3000 으로 연결을 허용합니다.
그림. Windows 방화벽
<Grafana 설정 끝.>
2. InfluxDB2를 설치
-> 플랫폼에 맞는 패키지를 다운로드하여 임의의 장소에 압축을 해제합니다.
2.1. InfluxDB 실행
-> 압축을 해제한 폴더에서 관리자 권한으로 influxd.exe를 실행합니다. (nssm 등을 사용하여 서비스 등록 권장)
2.2. 초기 설정
-> localhost:8086에 접속합니다.
-> 초기 유저 정보를 생성하고 초기 버킷을 telegraf 이름으로 생성합니다.
2.3. INFLUX_TOKEN
-> OS 환경 변수에 INFLUX_TOKEN을 설정합니다. `> $env:INFLUX_TOKEN = "YourAuthenticationToken"`
-> 토큰 확인(대시보드). Data (Load Data) > Tokens
그림. [대시보드 > Data (Load Data) > Tokens]
-> 토큰 확인(CLI). `influx auth list`
<InfluxDB 설치 끝.>
3. Telegraf를 설치
-> 플랫폼에 맞는 패키지를 다운로드하여 임의의 장소에 압축을 해제합니다.
3.1. telegraf.conf
-> Telegraf의 모든 설정은 .conf 로 이루어집니다.
-> Telegraf는 output plugin과 input plugin의 조합입니다. 모든 plugin은 공식문서 Telegraf plugins에서 확인할 수 있습니다.
-> 다음은 시스템 메트릭 수집 및 전송의 예입니다.
3.1.1. 기본 .conf를 사용한다면
-> [[outputs.influxdb_v2]]의 주석을 해제하고 urls = ["
http://localhost:8086"], token="YOURAUTHTOKEN",organization="YOURORG",bucket="YOURBUCKET"을 설정한다.
-> [[inputs.cpu]], [[inputs.mem]] 주석을 해제한다(수집을 원하는 지표).
3.1.2. 기본 .conf를 사용하지 않는다면
-> InfluxDB 대시보드로부터 Telegraf 설정과 생성이 가능합니다.
-> 대시보드 > Data (Load Data) > Telegraf
그림. [대시보드 > Data (Load Data) > Telegraf]
-> Create Configuration
-> System
-> 수집을 원하는 지표만 선택하고 [Create and Verify] 합니다.
-> 이제 선택한 설정과 같이 생성된 telegraf.conf 를 다운로드 받을 수 있습니다.
3.2. telegraf 실행
-> 기본 telegraf.conf 설정이나 InfluxDB로부터 만든 telegraf.conf 를 사용하여 Telegraf를 실행합니다. `telegraf.exe --config ./my_telegraf.conf`
-> Telegraf Data가 InfluxDB로 입력되는지 확인합니다.
3.3. 서비스 등록(자동 실행)
-> OS가 실행될 때 Telegraf가 자동으로 실행되도록 서비스로 등록합니다.
`telegraf.exe --config <full_path_to_telegraf.conf> --service install`
* 참조
`telegraf.exe --service uninstall` 서비스 제거
`telegraf.exe --service start` 서비스 실행
`telegraf.exe --service stop` 서비스 중지
<Telegraf 설정 끝.>
4. Grafana에서 데이터 보여주기
4.1. Data Source 추가
-> [Configuration > Data Sources > add data source]
-> [InfluxDB] 선택
-> InfluxDB2는 Query Language로 Flux를 써야 합니다.
-> URL localhost:8086, 인증 정보(조직, 토큰)를 입력합니다.
-> [Save & test] (버킷을 찾았다고 표시되면 성공)
4.2. 대시보드 구성 & 쿼리
-> InfluxDB2 부터 Flux 문법을 이용하여 쿼리하는데 기존 쿼리와 굉장히 많이 바뀌었기 때문에 새로 배워야 합니다. 인터넷 상의 예제를 참조하여 대시보드를 구성합니다.
-> Flux 쿼리 예)
- example-bucket 이란 이름의 버킷에서 데이터를 가져온다.
- 1시간 전부터 시작하는 데이터를 가져온다.
- measurement 는 "cpu" 를 가져온다.
- tag 키가 cpu이고 tag 값이 "cpu-total" 인 포인트만 가져온다.
- 1분 간의 데이터를 평균(mean)하여 가져온다. (즉 그래프에는 1시간 전부터 시작하여 1분당 한개의 값만 나올 것이다.)
이제 기초적인 시스템 모니터링 구축이 끝났습니다.
<끝.>