0. 현재 Grafana 릴리즈된 버전 확인하기
https://grafana.com/grafana/download/9.4.3?edition=oss
2023.03.16 기준, 9.4.3 버전이 최신 버전이므로, 아래 설치 과정도 9.4.3 버전(OSS) 로 진행하겠다.
1. Grafana 설치
# 그라파나 다운로드
# cd ~
# wget https://dl.grafana.com/oss/release/grafana-9.4.3-1.x86_64.rpm
# 위 다운로드 링크는 설치하려는 그라파나의 버전, OS 버전에 따라 달라진다.
# 다운로드 받은 그라파나 rpm파일을 yum으로 설치 진행
# 추후 취약성 등의 보안 패치 등을 수월하게 하기 위해 yum 으로 수행
# yum install ~/grafana-9.4.3-1.x86_64.rpm
# 'grafana' 유저 추가는 선택 사항. (yum으로 설치 시, /sbin/nologin 으로 grafana 계정 생성된다.)
# useradd -m -s /bin/bash grafana
# 'grafana' 유저로 전환 (yum으로 진행 시 X)
# su - grafana
2. yum 으로 설치 된 Grafana의 각종 디렉토리 및 파일 확인
Grafana 엔진(GRAFANA_HOME) 디렉토리
# Grafana 엔진 디렉토리 확인하기
# ls -al /usr/share/grafana
/usr/share/grafana
┖ bin/
┖ conf/
┖ plugins-bundled/
┖ public/
┖ VERSION
Grafana의 환경변수
# Grafana의 환경변수 확인하기
# vi /etc/sysconfig/grafana-server
GRAFANA_USER=grafana
GRAFANA_GROUP=grafana
GRAFANA_HOME=/usr/share/grafana
LOG_DIR=/var/log/grafana
DATA_DIR=/var/lib/grafana
MAX_OPEN_FILES=10000
CONF_DIR=/etc/grafana
CONF_FILE=/etc/grafana/grafana.ini
RESTART_ON_UPGRADE=true
PLUGINS_DIR=/var/lib/grafana/plugins
PROVISIONING_CFG_DIR=/etc/grafana/provisioning
# Only used on systemd systems
PID_FILE_DIR=/var/run/grafana
Grafana의 서비스 파일(grafana-server.service) 확인
# Grafana의 service 파일 확인하기
# vi /usr/lib/systemd/system/grafana-server.service
[Unit]
Description=Grafana instance
Documentation=http://docs.grafana.org
Wants=network-online.target
After=network-online.target
After=postgresql.service mariadb.service mysqld.service
[Service]
EnvironmentFile=/etc/sysconfig/grafana-server
User=grafana
Group=grafana
Type=notify
Restart=on-failure
WorkingDirectory=/usr/share/grafana
RuntimeDirectory=grafana
RuntimeDirectoryMode=0750
ExecStart=/usr/share/grafana/bin/grafana server \
--config=${CONF_FILE} \
--pidfile=${PID_FILE_DIR}/grafana-server.pid \
--packaging=rpm \
cfg:default.paths.logs=${LOG_DIR} \
cfg:default.paths.data=${DATA_DIR} \
cfg:default.paths.plugins=${PLUGINS_DIR} \
cfg:default.paths.provisioning=${PROVISIONING_CFG_DIR}
LimitNOFILE=10000
TimeoutStopSec=20
CapabilityBoundingSet=
DeviceAllow=
LockPersonality=true
MemoryDenyWriteExecute=false
NoNewPrivileges=true
PrivateDevices=true
PrivateTmp=true
ProtectClock=true
ProtectControlGroups=true
ProtectHome=true
ProtectHostname=true
ProtectKernelLogs=true
ProtectKernelModules=true
ProtectKernelTunables=true
ProtectProc=invisible
ProtectSystem=full
RemoveIPC=true
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
RestrictNamespaces=true
RestrictRealtime=true
RestrictSUIDSGID=true
SystemCallArchitectures=native
UMask=0027
[Install]
WantedBy=multi-user.target
3. Grafana 실행
Grafana 서버 실행
# 그라파나 서버 실행
# systemctl start grafana-server.service
# 그라파나 서버 실행 상태 확인
# systemctl status grafana-server
Grafana 웹 콘솔 접속
{그라파나가 설치된 IP}:3000/
-> 기본 포트는 3000이다.
접속하면 ID와 PW를 입력하라는 창이 나타나는데, Grafana를 설치한 후, 아무것도 설정하지 않은 채 바로 웹 콘솔에 접속하였다면, 초기 ID와 PW 는 'admin' / 'admin' 이다.
위와 같은 웹 콘솔 화면이 보인다면, grafana-server 실행은 정상적으로 잘 된 것이다.
4. Grafana 데이터 소스 추가
설치한 그라파나가 프로메테우스 서버의 metric 들을 가져오기 위해서는, 그라파나에 프로메테우스 Datasource 를 추가해주어야 한다.
추가 화면은 아래와 같다.
'Add data source' 를 클릭하면 아래 그림처럼 추가할 수 있는 데이터소스 목록이 나오는데, 우리는 여기에서 'Prometheus'를 선택한다.
그럼 아래 그림처럼 해당 데이터소스를 통해 어떤 서버를 바라볼 것인지부터 Scrape interval 등 다양한 옵션들을 지정해 줄 수 있는데, 적절히 선택 후에 'Save & test' 버튼을 클릭하면 된다.
5. Grafana에 Node_Exporter Metric 기반의 유용한 대시보드 구성 - 'Node Exporter Full'
그라파나 공식 사이트에는 여러 사람들이 커스터마이징 해놓은 대시보드들이 공유되어 있다.
대시보드의 내용은 datasource를 제외하고는 모두 json 으로 설정이 유지된다. 이 말인 즉슨, json 설정만 export 또는 import 하게 되면 그라파나 서버가 어디에 있든, 쉽게 해당 대시보드의 설정 및 패널을 공유하여 재사용성을 높일 수 있다!
이 포스팅에서는 Node_Exporter 메트릭에서 서버 모니터링을 수월하게 하도록 의미있는 정보들로 대시보드를 만들어놓은, 대표적인 대시보드인 'Node Exporter Full' 을 기준으로 살펴본다.
'Node Exporter Full' 대시보드 템플릿(?) 사이트
https://grafana.com/grafana/dashboards/1860-node-exporter-full
JSON 형태로도 다운 받을 수 있는데, 그라파나에 쉽게 바로 적용하기 위해 'Copy ID to clipboard' 로 이 대시보드의 ID만 복사해서 사용하자!
그라파나에 대시보드 ID로 대시보드 Import 하기
그라파나 웹 콘솔에서 왼쪽 메뉴의 [Dashboards] - [+ Import] 를 클릭하자!
복사한 대시보드 ID를 입력하고 'Load' 버튼을 클릭하자!
그럼 아래 그림처럼 이 대시보드를 어떤 이름으로, 어떤 폴더에 저장할 것이고, 어떤 데이터소스를 기반으로 할 것인지를 선택할 수 있다. 우리는 프로메테우스 서버의 데이터를 시각화하여 대시보드를 만드는 것이므로, 데이터 소스를 프로메테우스로 설정한 데이터소스로 잡아주자. 그리고 'Import' 버튼을 클릭하면 된다!
Import 된 'Node Exporter Full' 대시보드 확인
참고
패스트캠퍼스 - '한 번에 끝내는 데이터 엔지니어링 초격차 패키지 Online' 중 Part.5 Observability - Ch 04_01. / Ch 04_02.
'Observability' 카테고리의 다른 글
[Prometheus] node_exporter와 Windows_exporter 에 적용시키는 샘플 rules.yml (0) | 2023.03.31 |
---|---|
[Prometheus] Metric의 Threshold를 지정하고 AlertManager로 메일 통해 알람 받기 (0) | 2023.03.18 |
[Prometheus] Node Exporter 를 CentOS 7 서버에 설치하기 (0) | 2023.03.16 |
[Prometheus] CentOS 7 에서 프로메테우스(Prometheus) 설치 및 기본 설정, 실행 (0) | 2023.03.14 |
최근댓글