일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 |
- akka 강좌
- 스칼라 강좌
- Play2
- Golang
- 플레이프레임워크
- 블록체인
- Adapter 패턴
- play 강좌
- 스칼라 동시성
- 하이퍼레저 패브릭
- 파이썬 동시성
- play2 강좌
- 이더리움
- 주키퍼
- 스칼라
- 안드로이드 웹뷰
- Hyperledger fabric gossip protocol
- Play2 로 웹 개발
- 파이썬 강좌
- Actor
- 그라파나
- 파이썬
- 파이썬 데이터분석
- 엔터프라이즈 블록체인
- CORDA
- 스위프트
- Akka
- 파이썬 머신러닝
- 하이브리드앱
- hyperledger fabric
- Today
- 581
- Total
- 2,493,943
HAMA 블로그
InfluxDB , Telegraf, Grafana 모니터링 설치 (2021년 3월기준) 본문
InfluxDB , Telegraf, Grafana 모니터링 설치 (2021년 3월기준)
[하마] 이승현 (wowlsh93@gmail.com) 2021. 3. 9. 10:58* 해당 글은 리눅스 기준 입니다. (CentOS 7버전, Ubuntu1.8에서 잘됨)
InfluxDB 2.x 설치
(docs.influxdata.com/influxdb/v2.0/get-started/?t=Linux)
아래 2가지 방식 중에 패키지로 서비스로 시작하는것을 추천한다.
파일로 받아서 실행 하기)
- curl -s https://repos.influxdata.com/influxdb2.key | gpg --import -
- wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.0.4-linux-amd64.tar.gz
3. tar xvzf influxdb2-2.0.4-linux-amd64.tar.gz
4. cd influxdb2-2.0.4-linux-amd64
5. influxd 로 시작한다.
패키지로 인스톨 및 서비스시작하기
- RedHat & CentOS (ARM 64-bit)
wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.0.4.arm64.rpm
sudo yum localinstall influxdb2-2.0.4.arm64.rpm
- Ubuntu & Debian (ARM 64-bit)
wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.0.4-arm64.deb
sudo dpkg -i influxdb2-2.0.4-arm64.deb
1. sudo service influxdb start
2. sudo service influxdb status
InfluxDB UI설정하기.
최신 InfluxDB는 UI도 수려하게 지원한다. 따라서 UI를 통한 셋업방법을 알아보자.
1. localhost:8086 으로 접속하면 UI에 접근할수있다.
2. 아래 설정을 넣는다. (매우 중요하다.)
- Username 넣어준다.
- Password 넣어준다.
- Organization 이름 넣어준다. <-- 이전버전에는 없는 것이다.
- Bucket 이름 생성한다. <-- 이전버전에는 없는 것이다.
- Click Continue.
InfluxDB에 데이터 넣기
대략 아래와 같이 코딩하자.
module github.com/wowlsh93/monitoring
go 1.14
require (
....
github.com/influxdata/influxdb-client-go/v2 v2.2.2
)
- influxdb 클라이언트 의존성은 v2.2.2
//DBPATH: http://localhost:8086
//AUTHTOKEN: zYR-2G5BRmb5SDIkbKRUe2DXyon4rbXEzjoTwsSDHMUWeO3hTjasWBIGw8W7Dy_QxipDNWOj2g5MMD9le8-B3Q==
db := influxdb.Influxdb{
Client : influxdb2.NewClient(conf.DBPATH, conf.AUTHTOKEN),
}
- influxdb를 접근하기위해서는 db 경로와 auth 토큰이 필요하다.
auth token 발급법은 docs.influxdata.com/influxdb/v2.0/security/tokens/create-token/ 링크에서 알수있다.
간략히 설명하면 UI에서 Data -> Tokens를 가면 발급받을 수 있다. (아래 빨간색 사각형)
package influxdb
import (
"context"
"github.com/influxdata/influxdb-client-go/v2"
"time"
)
type Influxdb struct {
Client influxdb2.Client
}
func (db* Influxdb) AddData(measurement string, curSize int64) {
writeAPI := db.Client.WriteAPIBlocking("opusm", "monitoring")
p := influxdb2.NewPointWithMeasurement(measurement).
AddTag("storage", "total").
AddField("size", curSize).
SetTime(time.Now())
writeAPI.WritePoint(context.Background(), p)
}
func (db* Influxdb) Close() {
db.Client.Close()
}
- 위와 같이 influxdb에 값을 넣을 수 있다.
- "opusm" 은 조직이고
- "monitoring" 은 버켓이고 (참고로 이건 데이타베이스라고 생각하자.)
- Measurement 도 지정하자. (참고로 이건 테이블과 비슷하다고 보면 된다)
- Tag, Field 도 넣어주자 (참고로 Tag는 인덱스, Field는 컬럼들이라고 생각하자)
Influxdb의 ui를 통해 위와 같이 나오는 것을 볼 수 있다. (메뉴얼없어도 직관적으로 다룰 수 있을 것이다)
Telegraf 1.17 (influxdb2 용)
(docs.influxdata.com/telegraf/v1.17/introduction/getting-started/)
1. 설치하기
Ubuntu & Debian
wget https://dl.influxdata.com/telegraf/releases/telegraf_1.17.3-1_amd64.deb sudo dpkg -i telegraf_1.17.3-1_amd64.deb
RedHat & CentOS
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.17.3-1.x86_64.rpm
sudo yum localinstall telegraf-1.17.3-1.x86_64.rpm
Linux Binaries (64-bit)
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.17.3_linux_amd64.tar.gz
tar xf telegraf-1.17.3_linux_amd64.tar.gz
2. 기본설정하기
2-1)
vi /etc/telegraf/telegraf.conf 에서
[[outputs.influxdb_v2]]
urls = ["$INFLUX_HOST"]
token = "$INFLUX_TOKEN"
organization = "$INFLUX_ORG"
bucket = "telegraf"
을 해주면 influxdb2로 출력해준다.
2-2))
telegraf -sample-config --input-filter cpu:mem --output-filter influxdb > telegraf.conf
cpu 사용량 및 메모리 사용량에 대한 메트릭을 읽게한다. 아래의 output출력으로 정보를 보낼 수 있다.
3. 시작하기
systemctl start telegraf <-- 시작하기
sudo systemctl status telegraf <-- 확인하기
UI의 telegraf 버킷에 각종 system 값들이 들어온것을 볼 수 있다.
4. 특정폴더사이즈 감시
4-1)
#!/usr/bin/env bash
du -bs "${1}" | awk '{print "[ { \"bytes\": "$1", \"dudir\": \""$2"\" } ]";}'
를 metrics-exec_du.sh 이름으로 만든다.
4-2) 아래를 telegraf.conf파일에 추가한다.
[[inputs.exec]]
commands = [ "YOUR_PATH/metrics-exec_du.sh /var/lib/influxdb/data" ]
timeout = "10s"
name_override = "quorum-test"
name_suffix = ""
data_format = "json"
tag_keys = [ "dudir" ]
4-3) systemctl restart telegraf 로 다시 시작한다.
Grafana 7.4.3
1. 설치하기 grafana.com/grafana/download
Red Hat, CentOS, RHEL, and Fedora(64 Bit)
wget https://dl.grafana.com/oss/release/grafana-7.4.3-1.x86_64.rpm
sudo yum install grafana-7.4.3-1.x86_64.rpm
Ubuntu and Debian(64 Bit)
sudo apt-get install -y adduser libfontconfig1
wget https://dl.grafana.com/oss/release/grafana_7.4.3_amd64.deb
sudo dpkg -i grafana_7.4.3_amd64.deb
2. 실행하기 grafana.com/docs/grafana/latest/installation/rpm/#2-start-the-server
sudo systemctl daemon-reload
sudo systemctl start grafana-server
sudo systemctl status grafana-server
sudo systemctl enable grafana-server
* 방화벽 해제 (centos에서 외부에서 3000포트로 접근하려는데 방화벽이 실행중이라면)
sudo systemctl stop firewalld
3. GUI 접근하기 grafana.com/docs/grafana/latest/getting-started/getting-started/
http://ip:3000/
admin/admin 으로 들어간후에 비밀번호 바꿔준다.
4. Data Source 추가하기
* 이전버전 InfluxDB 데이타소스 방식과 확실히 달라졌다. 99%의 관련 블로그글들과는 다를것이다.
- 이름은 아무거나 만들어주고
- 여기선 Query Language 를 Flux로 한다. 이게 새로 추가된 방식이다.
- HTTP에 URL을 http://your ip address:8086
나머지는 건드리지 않았다.
- 조직은 influxdb 설정에서 만든것을 넣어준다.
- 토큰은 influxdb 에서 만든 auth token 문자열을 넣어준다.
- 버킷에는 influxdb 설정에서 만든 것을 넣어준다.
나머지는 건드리지 않았다.
Save& Test를 해주며 끝마친다.
5. 데시보드 추가하기
이것 역시 이전 버전들과는 굉장히 많은 차이가 있다.
- Flux language syntax 를 이용하여 쿼리하여 데이터를 보여준다.
- bucket 으로 부터 3시간 이전 데이터부터 2시간 이전데이터까지를 보여준다.
- 새로 만들어진 Flux 스크립트 기반으로 모니터링 환경을 꾸미려면 관련 학습이 선행되어야 할 것 같다.
이로써 기초적인 설치와 세팅이 끝났다.
'데이터 가시화 (d3.js , Plotly, Grafana, Kibana 등)' 카테고리의 다른 글
InfluxDB , Telegraf, Grafana 모니터링 설치 (2021년 3월기준) (0) | 2021.03.09 |
---|---|
밑바닥 부터 시작하는 d3.js (version 4) 와 Typescript 를 이용한 데이터 가시화 (0) | 2018.02.19 |
Grafana 삭제하기 (0) | 2017.12.11 |
Grafana 사용자 관리 정책 정리 (0) | 2017.12.11 |
Grafana 에서 Telegram 으로 메세지 전송 하기 (0) | 2017.12.01 |
Plotly 랑 Bokeh 공부하기 귀찮다. 그냥 matplotlib 를 사용해서 웹서비스하자. (0) | 2017.06.12 |