Grafana

Sonar0·2023년 3월 12일
0

Grafana란

모니터링을 위한 대시보드 도구

장점

  • OSS 버전은 무료이고, 기능이 좋다.

  • black background 에 시인성이 좋은 graph

  • 좋은 web UI 성능

  • 다양한 integration

    	datasource 로 다양한 database 를 연결할 수 있다.
  • server-side rendering 으로 빠른 panel 그림

  • alert 설정의 고도화

    	policy, contact point, alert rule 의 구분
  • template 을 이용한 자동화

  • variable 을 이용한 재사용성

  • 다양한 graph style의 편의 설정

Grafana 설치하기

다운로드 및 설치

다운로드 & 압축 풀기 & 폴더 만들기 & 경로 저장

wget https://dl.grafana.com/oss/release/grafana-9.3.1.linux-amd64.tar.gz

tar -zxvf grafana-9.3.1.linux-amd64.tar.gz

mv grafana-9.3.1 grafana

cd grafana

export GRAFANA_HOME=$(pwd)

Grafana는 metadata 저장소로 다음 데이터베이스를 필요로한다.

다운로드 받은 패키지에 기본적으로 SQLite 를 쓰도록 되어있다.

SMTP 설치 및 앱 비밀번호 세팅

SMTP 설치 및 세팅

email noti 를 위해 ssmtp 설치

sudo apt install ssmtp -y

conf 파일 수정

sudo vi /etc/ssmtp/ssmtp.conf
user=noreply
root=$email_account
mailhub=smtp.gmail.com:587
hostname=$host_name
FromLineOverride=YES
AuthUser=$email_account
AuthPass=$app_password
UseTLS=YES
UseSTARTTLS=YES
  • $email_account : gmail 주소
  • $host_name : ubuntu
  • $app_password : gmail 앱 비밀번호를 발급받아 입력한다. → 발급방법

확인해보기

echo 'test' | ssmtp $email_account

아래와 같은 메일이 왔다면 성공이다.

Grafana에 smtp 설정

default.ini 를 수정한다.

 vi conf/defaults.ini 
enabled = true
host = smtp.gmail.com:587
user = $your_account@gmail.com
# If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;"""
password = $your_app_password
;cert_file =
;key_file =
skip_verify = true
from_address = $your_account@gmail.com
from_name = Grafana # what you want
;ehlo_identity =
;startTLS_policy =
  • ; 세미콜론은 사용하지 않는 설정이다.
  • $email_account, $app_password 는 위(SMTP 설치 및 세팅)에서 세팅한 주소를 넣는다.

Grafana 실행

./bin/grafana-server

localhost:3000 (3000번이 기본 포트 설정, defaults.ini 에서 변경 가능)에서 확인할 수 있다.
초기 아이디, 비밀번호 : admin

systemctl 로 등록

sudo vi /etc/systemd/system/grafana.service
[Unit]
Description=Grafana instance
Documentation=http://docs.grafana.org
Wants=network-online.target
After=network-online.target
[Service]
User=$USER
Group=$USER
Type=simple
Restart=on-failure
WorkingDirectory=$GRAFANA_HOME
ExecStart=$GRAFANA_HOME/bin/grafana-server \
	--config=$GRAFANA_HOME/conf/defaults.ini \
	--pidfile=$GRAFANA_HOME/grafana-server.pid

LimitNOFILE=10000
UMask=0027
[Install]
WantedBy=multi-user.target

-$USER : ubuntu

  • $GRAFANA_HOME : /home/ubuntu/grafana

등록

sudo systemctl daemon-reload
sudo systemctl enable grafana.service

systemctl로 Grafana 시작

sudo systemctl start grafana.service

프로세스 확인

ps -ef | grep grafana

Grafana로 대시보드 구성하기

Grafana에서 대시보드를 구성하기 위해서는 다음 과정을 거친다. 매뉴얼

  1. Datasource 추가하기

  2. Create Dashboard

  3. Create Panel in Dashboard

Alert 받기 위해서는 다음 과정이 필요하다. 매뉴얼

  1. Create contact point

  2. Create policy

  3. Create alert rule (from panel)

Data Source 설정

[Configration] → [Data Scources] 에서 설정 가능하다.

프로토콜을 공유하고 있는 옵션들이 등록되어 있어서 쉽게 사용할 수 있다.
등록되어 있지 않은 도구들은 API콜이나 전용 HTTP나 TCP 기반의 프로토콜로 설정할 수 있다.

[Prometheus] 선택 → URL 설정 (나머지 옵션은 Default값으로 진행했음)

  • Alerting supported : Data source가 Alerting 기능을 지원함
  • Data Source에서 Alerting을 하기 때문에 Grafana 서버의 부하가 줄어든다.

맨 하단 [Save & test] 클릭 후 제대로 연결 되는지 확인

생성 확인

Dashborad

[Dashboards] → [Browse] → [New] → [New Dashborad] → [Add a new panel]

Prometheus metric 중 go_goroutines 데이터를 조회

Panel 이름 지정 (단위를 써주는걸 권장)

옵션 지정

  • short : 값의 범위가 넓을 때 그래프를 축약형으로 나타내줌

[Save dashboard]

Legend 설정

이외에도 여러 옵션들로 대쉬보드를 구성할 수 있음

Panel 추가

Memory 사용량 대쉬보드

단위(Unit) : [Data] → [Bytes]

Alerting

[Alerting] → [Contact points]

[Contact points] → [Edit contact point]

이메일에서 Test 메일을 확인할 수 있다.

[Notification Policies]에서 Noti 옵션을 줄 수 있다.

  • 특정 라벨이 들어왔을 때 특정 이메일로 Noti를 보내기
  • 특정 시간에 Noti 받지 않기 등
profile
초보 개발자

0개의 댓글

관련 채용 정보