본문 바로가기
BackEnd/Server

[InfluxDB + Grafana] System Metric Information Monitoring2

by 푸고배 2021. 8. 10.

Telegraf + InfluxDB 연결하기는 이전 글 참고하기

 

[Telegraf + InfluxDB] System Metric Information Monitoring1

서버에 있는 CPU/Memory/Disk 등과 같은 System Metric 정보를 모니터링하고자 한다. Telegraf를 이용해 서버의 각종 System 정보를 InfluxDB에 저장시켜 최종적으로 Grafana를 이용해 그래프 형태로 볼 수 있다...

doqtqu.tistory.com

 

 Grafana 

데이터를 시각화 하는데 가장 최적화된 대시보드를 제공해주는 오픈소스 툴킷으로, 주로 시계열 데이터베이스(Prometheus, Graphite, OpeneTSDB, InfluxDB)를 데이터소스로 사용한다. 시계열 데이터베이스 이외에도, Logging & document 데이터베이스, Distributed tracing, SQL, Cloud, Enterprise plugins 등을 데이터 소스로 사용하여 다양한 모니터링 기능을 제공한다.

 

 Grafana 장점 

  • 데이터베이스가 아닌 데이터 통합
    • Grafana에서는 백엔드 저장소 또는 공급업체 데이터베이스에서 데이터를 수집할 필요가 없다. 그 대신 Grafana는 위치에 관계없이 기존 데이터를 통합하여 "단일 창"을 제공하는 고유한 접근 방식을 취한다.
    • Grafana를 사용하면 Kubernetes 클러스터, raspberry pi, 다양한 클라우드 서비스 또는 Google Sheets에서 가져온 기존 데이터를 끌어와 단일 대시보드에서 원하는 대로 시각화할 수 있다.
  • 누구나 볼 수 있는 데이터
    • Grafana는 단일 Ops 담당자가 아니라 조직의 모든 사람이 데이터에 액세스할 수 있어야 한다는 원칙에 따라 구축되었다.
    • 데이터를 민주화함으로써 Grafana는 데이터를 필요로 하는 사람들이 데이터를 쉽게 사용하고 액세스할 수 있는 문화를 촉진하여 데이터 사일로를 허물고 팀의 역량을 강화하는 데 도움이 된다.
  • 누구나 사용할 수 있는 대시보드
    • Grafana 대시보드는 다양한 소스에서 수집된 데이터에 통찰력 있는 의미를 부여할 뿐만 아니라 생성한 대시보드를 다른 팀원과 공유하여 함께 데이터를 탐색할 수 있다.
    • Grafana를 사용하면 누구나 동적 대시보드를 만들고 공유하여 협업과 투명성을 높일 수 있다.
  • 유연성 및 다용성
    • 모든 데이터를 유연하고 다용도 대시보드로 변환한다. 다른 도구와 달리 Grafana를 사용하면 당신과 당신의 팀을 위해 특별히 대시보드를 구축할 수 있다.
    • 고급 쿼리 및 변환 기능을 사용하여 패널을 사용자 정의하여 실제로 도움이 되는 시각화를 생성할 수 있다.

 

 Download Grafana Docker Image 

아래 명령어를 이용해서 도커이미지 다운로드와 함께, [docekr_network] 도커 네트워크 환경에 3000번 포트로 grafana라는 이름의 컨테이너를 생성, 실행시킨다.

docker run -d -p 3000:3000 --net=[docker_network] --name grafana grafana/grafana

 

 Grafana Dashboard Setting 

에러없이 Docker 셋팅이 완료되면, localhost:3000으로 연결 시에 위와 같은 화면이 뜬다.

기본 username과 password는 둘 다 admin이다.

 

최초 로그인 후, 보안을 위해 비밀번호 변경 페이지가 뜨는데 새로운 비밀번호 작성 후 submit을 누르면 기본 비밀번호가 바뀌니 변경 후 잘 기억해두자. (Skip으로 비밀번호 변경과정을 생략할 수 있다.)

 

위의 과정을 거치면 Home 화면이 뜨는데 데이터소스 추가를 위해, 화면 가운데의 Data Sources(Add your first data source)를 클릭한다.

 

위에서 설명한 대로 데이터소스로는 다양한 타입을 지원하는데, 이 중 InfluxDB를 선택한다. 

 

Query Language에는 InfluxQL Flux 두 가지 종류가 있는데, InfluxQLInfluxDB 1.x, Flux InfluxDB 2.x and 1.8+(beta)에서 지원한다. (전 글에서 InfluxDB 2버전을 사용했기 때문에 여기서는 Flux를 선택한다.) 

 

Basic Auth Details에는 InfluxDB User 정보(Username, Password)를, InfluxDB Details에는 InfluxDBOrganization(Organization Name or ID), Token(Data Token, 지난 글에서는 Telegraf Token), Default Bucket(Bucket Name or ID) interval 최소타임과, series 최대값을 설정해준다.

 

해당 정보만 입력하고 Save&Test를 누르면 Error reading InfluxDB이 발생한다.

아래 커맨드로 Docker Log 정보를 조회해볼 수 있는데, 자주 발생하는 오류는 크게 두 가지가 있다.

 

docker logs -t [container_id or container_name]

 

  • 첫 번째 오류 메세지 :
    • msg="Flux query failed" logger=tsdb.influx_flux err="Post \"http://localhost:8086/api/v2/query?org=ex_organization\": dial tcp 127.0.0.1:8086: connect: connection refused" query=buckets()
    • Docker가 같은 네트워크 환경에 있지않아, connection refuse가 발생하는 경우이다.
    • InfluxDB와 Grafana를 같은 Docker 네트워크 환경에 셋팅해주면 해결된다.
  • 두 번째 오류 메세지 :
    • msg="Flux query failed" logger=tsdb.influx_flux err="not found: no buckets found in organization b76153707f17a8e3"
    • Flux QueryLanguage를 이용할 경우에는 Header로 User Token값을 함께 전송해야한다.
    • 아래를 참고한다.

InfluxDB(localhost:8086)에서 Data>Tokens에서 User의 Token을 복사해온다.

 

Add Header에 Authorization Header를 'Token [user_token]' Value로 추가한다.

 

다음과 같은 알림창이 뜨면 데이터소스 등록 성공이다.

 

 

 

Use Grafana with InfluxDB OSS | InfluxDB OSS 2.0 Documentation

When using InfluxQL to query InfluxDB, the query must specify a database and a retention policy. InfluxDB DBRP mappings associate database and retention policy combinations with InfluxDB 2.0 buckets. DBRP mappings do not affect the retention period of the

docs.influxdata.com

Influxdata Document에 설정 방법이 잘나와있다.

 

InfluxDB의 Explorer를 통해 데이터 구조를 파악 후 Sample Query를 이용하면, 위와 같이 간단한 메모리, CPU, 네트워크 사용량을 실시간으로 모니터링하는 대시보드를 만들 수 있다.

 

 

참고자료 :

 

Grafana® Features

Explore tracing in Grafana Grafana ships with built-in support for Tempo a high volume, minimal dependency trace storage, open source tracing solution.

grafana.com

 

반응형

댓글