클라우드 서비스 이탈 전략의 일환으로, 37signals는 10페타바이트 규모의 AWS S3 데이터를 Pure Storage FlashBlade 솔루션으로 이전하는 작업을 진행했습니다. Pure Storage FlashBlade는 고객 첨부 파일부터 Prometheus 장기 메트릭에 이르기까지 다양한 유형의 데이터를 저장할 수 있으며, 파일 시스템 기반 기능도 제공하여 데이터베이스 백업 저장소와 같은 추가적인 활용 사례를 가능하게 합니다. 이러한 다재다능함은 시스템을 관측 가능성(Observability) 측면에서 최우선 순위로 만듭니다. Pure FlashBlade는 뛰어난 신뢰성, 내장된 내부 경고 기능, 자율적인 티켓 생성 기능을 제공하지만, 문제 해결을 용이하게 하고 모든 중단이 우선순위에 따라 처리되도록 보장하기 위해 자체적인 메트릭과 경고 시스템을 구축하는 것이 필수적이었습니다. 이 글은 Pure FlashBlade의 Prometheus 및 Grafana 통합 과정을 상세히 설명합니다.
Pure Storage FlashBlade의 모니터링을 위해 pure-fb-openmetrics-exporter
를 활용했습니다. 이 익스포터는 설치가 간단하며, Chef 레시피를 통해 바이너리 설치 및 기본 인증 설정이 이루어졌습니다. Chef는 pure-fb-openmetrics-exporter
바이너리를 /opt/pure_exporter
경로에 설치하고, API 토큰을 tokens.yml
파일로 관리하며, pure-exporter.service
라는 systemd 유닛을 통해 서비스를 관리합니다. 버전 관리 및 토큰은 Chef 노드 메타데이터 및 암호화된 데이터 백을 활용하는 것이 일반적인 방식입니다.
Prometheus 메트릭 수집을 위해 초기에는 /metrics
경로를 사용하는 기본적인 잡 구성을 적용했습니다. 그러나 프로덕션 환경에서는 메트릭 풀링 오버헤드를 줄이기 위해 /metrics/array
, /metrics/clients
, /metrics/usage
, /metrics/policies
와 같이 특정 메트릭 경로를 분할하여 여러 Prometheus 잡을 구성하는 방식을 채택했습니다. 또한, metric_relabel_configs
를 사용하여 name
레이블에서 ch
, fb
, bay
와 같은 추가 레이블을 정규식을 통해 추출함으로써, 다양한 구성 요소별로 메트릭을 집계하는 쿼리의 복잡성을 효과적으로 줄였습니다.
경고(Alerts) 시스템은 Pure FlashBlade의 내장 경고와 자체적인 Prometheus 경고를 결합하여 구성되었습니다. 우선, purefb_alerts_open
메트릭을 활용하여 Pure 시스템에서 자동으로 생성되는 경고를 Prometheus에서 모니터링합니다. 이와 별도로, 하드웨어 장애에 대한 맞춤형 경고가 설정되었습니다. 단일 하드웨어 장애(purefb_hardware_health == 0
) 시에는 Basecamp 채팅으로 알림이 전송되며, 동일 유형의 다중 하드웨어 장애(예: 섀시 내 여러 개의 베이 장애) 발생 시에는 페이지 알림(severity: page
)이 트리거되어 즉각적인 대응을 유도합니다. 특히 섀시(type="ch"
) 및 XFM(type="xfm"
)과 같은 고수준 구성 요소의 장애에 대해서도 심각도 ‘page’ 경고가 설정되어 있습니다. 성능 지표인 지연 시간은 purefb_array_performance_latency_usec
메트릭을 통해 모니터링되며, 100ms
를 초과할 경우 채팅 알림이 발송됩니다. 저장 공간 포화도 감지를 위해 purefb_array_space_bytes
메트릭과 predict_linear
함수를 사용하여 한 달 내에 가용 공간이 10% 미만으로 예상될 때 경고가 발생하도록 설정했습니다. HTTP 모니터링은 BigIp 로드 밸런서 앞단에서 이루어지므로, 기존의 BigIp HTTP 프로필, 가상 서버, 풀에 대한 경고가 Pure 접근성까지 커버합니다.
시각화를 위해 Grafana 대시보드가 활용됩니다. Pure OpenMetrics Exporter 프로젝트의 GitHub 저장소에는 익스포터가 생성하는 메트릭을 기반으로 하는 Grafana 대시보드 JSON 파일이 포함되어 있습니다. 이러한 파일들은 각 환경에 맞게 간단히 조정하여 신속하게 Grafana로 가져올 수 있어, 시스템 상태를 한눈에 파악하는 데 큰 도움이 됩니다.
결론적으로, Pure Storage FlashBlade는 자체적인 강력한 기능과 신뢰성을 제공함에도 불구하고, Prometheus 및 Grafana와 같은 널리 사용되는 모니터링 도구와의 심층적인 통합 옵션을 제공합니다. 이러한 통합은 클러스터 관리 프로세스를 다른 인프라를 관리하는 방식과 동일하게 일관적이고 효율적으로 만듭니다. `pure-fb-openmetrics-exporter`를 통한 메트릭 수집, Prometheus 잡의 세분화된 구성, 그리고 하드웨어, 지연 시간, 포화도 등 핵심 지표에 대한 맞춤형 경고 설정은 시스템의 관측 가능성을 극대화하고 잠재적 문제를 사전에 감지하여 신속하게 대응할 수 있도록 지원합니다. 이 포스팅이 Pure Storage 솔루션 도입을 고려하는 다른 팀들에게 필요한 노력과 통합 과정에 대한 명확한 이해를 제공하여 성공적인 마이그레이션 및 모니터링 구축에 기여하기를 바랍니다.