Grafana 소개 — 메트릭·로그·트레이스를 한 화면에 모으는 관찰성 도구
Grafana 소개 — 메트릭·로그·트레이스를 한 화면에 모으는 관찰성 도구
Grafana는 오픈소스 소프트웨어로, 어디에 저장돼 있든 메트릭·로그·트레이스를 쿼리하고 시각화하고 알림으로 연결해 주는 도구예요. 시계열 데이터베이스(TSDB)에 담긴 데이터를 그래프와 시각화로 바꿔 주고, 플러그인 프레임워크 덕분에 NoSQL/SQL 데이터베이스, Jira·ServiceNow 같은 티켓 도구, GitLab 같은 CI/CD 도구까지 이어 붙일 수 있어요. 이제 이 도구가 어떤 그림을 그리는지 하나씩 살펴볼게요.
출처: About Grafana
본문
왜 Grafana인가요? Grafana OSS는 무료로 다운받아 스스로 호스팅할 수 있고, 같은 핵심 위에 두 가지 상용 에디션이 얹혀 있어요. 스스로 관리하는 Grafana Enterprise는 엔터프라이즈 플러그인·리포팅·강화된 접근 제어·공식 지원을 더하고, Grafana Cloud는 Grafana Labs가 완전히 관리하는 서비스로 메트릭·로그·트레이스 백엔드까지 묶어 주며 무료 티어를 포함해요. 처음엔 OSS로 시작했다가 필요에 따라 Enterprise나 Cloud로 옮기면 됩니다.
메트릭·로그·트레이스 탐색하기. Explore에서는 임시(ad-hoc) 쿼리와 동적 드릴다운으로 데이터를 살펴볼 수 있어요. 분할 화면(Split view)을 쓰면 서로 다른 시간 범위·쿼리·데이터 소스를 나란히 비교하는 것도 가능해요.
알림(Alerting). Grafana Alerting을 쓰면 PagerDuty, SMS, 이메일, VictorOps, OpsGenie, Slack 등 다양한 알림 채널로 경보를 보낼 수 있어요. 채널을 직접 골라 쓰고 싶다면 Alert hook으로 조금의 코드를 얹어 나만의 노티파이어를 만들 수도 있죠. 중요한 메트릭은 알림 규칙(alert rules)으로 시각적으로 정의해요.
애노테이션(Annotations). 서로 다른 데이터 소스에서 온 이벤트로 그래프에 애노테이션을 달 수 있어요. 이벤트 위에 마우스를 올리면 전체 메타데이터와 태그를 볼 수 있죠. 그래프에 표시되는 마커 역할을 해서, 문제가 생길 때 데이터를 상관관계로 묶어 보기에 아주 유용해요. 그래프를 컨트롤-클릭해서 텍스트를 넣는 식으로 직접 만들 수도 있고, 데이터 소스에서 이벤트를 가져오는 것도 가능해요.
대시보드와 플러그인 가져오기. 공식 라이브러리에서 수백 개의 대시보드와 플러그인을 찾을 수 있어요. 커뮤니티 멤버들의 열정 덕분에 매주 새로운 것들이 추가돼요.
대시보드 변수(Template variables). 변수를 쓰면 하나의 대시보드를 여러 용도로 재사용할 수 있어요. 값이 하드코딩되지 않으니, 예를 들어 프로덕션 서버와 테스트 서버가 있다면 같은 대시보드를 둘 다에서 그대로 쓸 수 있죠. 템플릿을 쓰면 모든 데이터 → 북미 데이터 → 텍사스 데이터처럼 단계별로 드릴다운할 수도 있고, 잘 만든 템플릿은 팀끼리 공유하거나 커뮤니티에 기여하는 것도 가능해요.
Grafana 구성하기. Grafana 관리자라면 구성 옵션과 Grafana CLI에 익숙해져야 해요. 구성은 설정 파일과 환경변수 두 갈래로 나뉘고, 기본 포트·로그 레벨·이메일 IP·보안 등을 여기서 다룰 수 있어요.
프로비저닝(Provisioning). 대시보드를 하나 만들 때는 클릭·드래그·드롭으로 충분하지만, 대시보드가 많아지면 스크립트로 설정을 자동화하고 싶어져요. Grafana는 거의 모든 것을 스크립트로 만들 수 있어요. 예를 들어 새 Kubernetes 클러스터를 띄울 때 올바른 서버·IP·데이터 소스를 미리 박아 둔 Grafana를 자동으로 띄울 수도 있고, 사용자가 그 설정을 바꾸지 못하도록 잠글 수도 있어요. 수많은 대시보드를 한 번에 통제하는 방법이기도 하죠.
인증(Authentication). Grafana는 LDAP, OAuth 같은 다양한 인증 방식을 지원하고, 사용자를 조직에 매핑할 수 있어요. Grafana Enterprise에서는 사용자를 팀에 매핑할 수도 있어요. 회사 자체 인증 시스템이 있다면 내부 시스템의 팀을 Grafana 팀에 연결해서, 팀 전용 대시보드에 자동으로 접근 권한을 줄 수 있죠. 조직 하나에 여러 팀이 있을 때는 팀을 만들고 폴더·대시보드 권한, 그리고 Enterprise에서는 데이터 소스 수준까지 권한을 설정해 분리와 공유를 함께 달성할 수 있어요.
Grafana Labs의 다른 오픈소스 프로젝트. Grafana 외에도 로깅 스택 Loki, 분산 트레이싱 백엔드 Tempo, Prometheus용 스케일러블 장기 저장소 Mimir, 연속 프로파일링 Pyroscope, RUM 데이터를 모으는 자바스크립트 에이전트 Faro, eBPF 기반 자동 계측 도구 Beyla, OpenTelemetry(OTel) Collector 배포판 Alloy, 부하 테스트 도구 k6, 인시던트 관리 OnCall 등이 있어요. 이들을 Grafana와 묶으면 LGTM(Loki·Grafana·Tempo·Mimir) 스택으로 관찰성을 한 곳에 모을 수 있습니다.