InfluxDB와 Grafana로 Geth 모니터링하기
이 튜토리얼은 Geth 노드의 모니터링을 설정하여 성능을 더 잘 이해하고 잠재적인 문제를 식별하는 데 도움을 줍니다.
전제 조건
- 이미 Geth 인스턴스를 실행 중이어야 합니다.
- 대부분의 단계와 예제는 Linux 환경을 위한 것이므로 기본적인 터미널 지식이 있으면 도움이 됩니다.
- Geth의 메트릭 제품군에 대한 이 비디오 개요를 확인해 보세요: Péter Szilágyi의 이더리움 인프라 모니터링(Monitoring an Ethereum infrastructure) (opens in a new tab).
모니터링 스택
이더리움 클라이언트는 연대기적 데이터베이스 형태로 읽을 수 있는 많은 데이터를 수집합니다. 모니터링을 더 쉽게 하기 위해 이 데이터를 데이터 시각화 소프트웨어에 입력할 수 있습니다. 사용 가능한 여러 옵션이 있습니다:
- Prometheus (opens in a new tab) (풀 모델)
- InfluxDB (opens in a new tab) (푸시 모델)
- Telegraf (opens in a new tab)
- Grafana (opens in a new tab)
- Datadog (opens in a new tab)
- Chronograf (opens in a new tab)
InfluxDB 및 Grafana와 함께 사전 구성된 옵션인 Geth Prometheus Exporter (opens in a new tab)도 있습니다.
이 튜토리얼에서는 Geth 클라이언트가 InfluxDB로 데이터를 푸시하여 데이터베이스를 생성하고, Grafana를 통해 데이터의 그래프 시각화를 생성하도록 설정할 것입니다. 이 과정을 수동으로 진행하면 프로세스를 더 잘 이해하고, 수정하며, 다양한 환경에 배포하는 데 도움이 됩니다.
InfluxDB 설정하기
먼저 InfluxDB를 다운로드하고 설치해 보겠습니다. 다양한 다운로드 옵션은 Influxdata 릴리스 페이지 (opens in a new tab)에서 찾을 수 있습니다. 사용 중인 환경에 맞는 것을 선택하세요. 저장소 (opens in a new tab)에서 설치할 수도 있습니다. 예를 들어 데비안(Debian) 기반 배포판의 경우 다음과 같습니다:
curl -tlsv1.3 --proto =https -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add
source /etc/lsb-release
echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
sudo apt update
sudo apt install influxdb -y
sudo systemctl enable influxdb
sudo systemctl start influxdb
sudo apt install influxdb-client
InfluxDB를 성공적으로 설치한 후, 백그라운드에서 실행 중인지 확인하세요. 기본적으로 localhost:8086에서 접속할 수 있습니다.
influx 클라이언트를 사용하기 전에 관리자 권한을 가진 새 사용자를 생성해야 합니다. 이 사용자는 데이터베이스 및 사용자 생성과 같은 상위 수준의 관리를 담당하게 됩니다.
curl -XPOST "http://localhost:8086/query" --data-urlencode "q=CREATE USER username WITH PASSWORD 'password' WITH ALL PRIVILEGES"
이제 influx 클라이언트를 사용하여 이 사용자로 InfluxDB 셸 (opens in a new tab)에 접속할 수 있습니다.
influx -username 'username' -password 'password'
InfluxDB 셸에서 직접 통신하여 Geth 메트릭을 위한 데이터베이스와 사용자를 생성할 수 있습니다.
create database geth
create user geth with password choosepassword
다음 명령어로 생성된 항목을 확인하세요:
show databases
show users
InfluxDB 셸을 종료합니다.
exit
InfluxDB가 실행 중이며 Geth의 메트릭을 저장하도록 구성되었습니다.
Geth 준비하기
데이터베이스를 설정한 후, Geth에서 메트릭 수집을 활성화해야 합니다. geth --help의 METRICS AND STATS OPTIONS에 주의하세요. 여기에서 여러 옵션을 찾을 수 있으며, 이 경우 Geth가 InfluxDB로 데이터를 푸시하도록 설정하려고 합니다.
기본 설정은 InfluxDB에 접속할 수 있는 엔드포인트와 데이터베이스 인증을 지정합니다.
geth --metrics --metrics.influxdb --metrics.influxdb.endpoint "http://0.0.0.0:8086" --metrics.influxdb.username "geth" --metrics.influxdb.password "chosenpassword"
이 플래그들은 클라이언트를 시작하는 명령어에 추가하거나 구성 파일에 저장할 수 있습니다.
예를 들어 데이터베이스의 메트릭을 나열하여 Geth가 데이터를 성공적으로 푸시하고 있는지 확인할 수 있습니다. InfluxDB 셸에서 다음을 실행하세요:
use geth
show measurements
Grafana 설정하기
다음 단계는 데이터를 그래픽으로 해석할 Grafana를 설치하는 것입니다. Grafana 문서에서 사용 중인 환경에 맞는 설치 과정을 따르세요. 다른 버전을 원하지 않는다면 OSS 버전을 설치해야 합니다. 저장소를 사용하는 데비안 배포판의 설치 단계 예시:
curl -tlsv1.3 --proto =https -sL https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt update
sudo apt install grafana
sudo systemctl enable grafana-server
sudo systemctl start grafana-server
Grafana가 실행되면 localhost:3000에서 접속할 수 있습니다.
선호하는 브라우저를 사용하여 이 경로에 접속한 다음, 기본 자격 증명(사용자: admin, 비밀번호: admin)으로 로그인하세요. 메시지가 표시되면 기본 비밀번호를 변경하고 저장합니다.
Grafana 홈페이지로 리디렉션됩니다. 먼저 소스 데이터를 설정하세요. 왼쪽 막대의 구성 아이콘을 클릭하고 "Data sources(데이터 소스)"를 선택합니다.
아직 생성된 데이터 소스가 없으므로 "Add data source(데이터 소스 추가)"를 클릭하여 정의합니다.
이 설정에서는 "InfluxDB"를 선택하고 진행합니다.
동일한 머신에서 도구를 실행하는 경우 데이터 소스 구성은 매우 간단합니다. InfluxDB 주소와 데이터베이스 접속 세부 정보를 설정해야 합니다. 아래 사진을 참조하세요.
모든 설정이 완료되고 InfluxDB에 접속할 수 있다면 "Save and test(저장 및 테스트)"를 클릭하고 확인 메시지가 뜰 때까지 기다립니다.
이제 Grafana가 InfluxDB에서 데이터를 읽어오도록 설정되었습니다. 다음으로 데이터를 해석하고 표시할 대시보드를 생성해야 합니다. 대시보드 속성은 누구나 생성하고 쉽게 가져올 수 있는 JSON 파일로 인코딩됩니다. 왼쪽 막대에서 "Create and Import(생성 및 가져오기)"를 클릭하세요.
Geth 모니터링 대시보드의 경우, 이 대시보드 (opens in a new tab)의 ID를 복사하여 Grafana의 "Import(가져오기) 페이지"에 붙여넣으세요. 대시보드를 저장한 후의 모습은 다음과 같습니다:
대시보드를 수정할 수 있습니다. 각 패널은 편집, 이동, 제거 또는 추가할 수 있습니다. 구성을 변경할 수도 있습니다. 모든 것은 여러분의 선택에 달려 있습니다! 대시보드 작동 방식에 대해 자세히 알아보려면 Grafana 문서 (opens in a new tab)를 참조하세요. 알림(Alerting) (opens in a new tab) 기능에도 관심이 있을 수 있습니다. 이 기능을 사용하면 메트릭이 특정 값에 도달했을 때 알림을 설정할 수 있습니다. 다양한 통신 채널이 지원됩니다.







