본문으로 건너뛰기
로그인 둘러보기
개발·코딩·데이터베이스 · 윈도우즈 유틸

Prometheus Sql exporter

0

Prometheus SQL Exporter는 Prometheus 모니터링 시스템을 위해 데이터베이스에서 수집된 지표를 노출하는 설정 기반의 데이터베이스 무관 SQL 익스포터입니다.

데이터베이스 모니터링메트릭

소개

Prometheus SQL Exporter는 Prometheus 모니터링 시스템을 위해 데이터베이스에서 수집된 지표를 노출하는 설정 기반의 데이터베이스 무관 SQL 익스포터입니다. MySQL, PostgreSQL, Microsoft SQL Server 및 Clickhouse를 포함한 여러 DBMS를 지원하며, 사용자 정의 쿼리를 통해 메트릭을 수집하도록 설정할 수 있습니다. 이 도구는 Go 언어로 작성되었으며 오픈 소스 MIT 라이선스로 제공됩니다.

상세정보

데이터베이스 무관 지표 수집

SQL Exporter는 단일 설정 파일을 통해 여러 종류의 DBMS를 모니터링할 수 있습니다. 각각의 DBMS에 대해 별도의 복잡한 설정이나 도구 없이 하나의 구조화된 YAML 설정 파일로 지표 수집을 관리할 수 있습니다.

설정 기반 커스텀 콜렉터

수집되는 지표와 이를 생성하는 SQL 쿼리는 설정 파일에 의해 완전히 정의됩니다. SQL 쿼리는 ‘쿼리 통계’나 ‘I/O 통계’와 같은 논리적 그룹인 ‘콜렉터’로 묶이며, 해당 메트릭과 매핑됩니다. 콜렉터는 DBMS별로 구체화되거나(예: MySQL InnoDB 통계), 사용자 정의된 배포별로(예: 가격 데이터 신선도) 설정될 수 있어, 사용자의 특정 요구에 맞는 데이터 품질을 측정할 수 있습니다.

동기화된 스크래프 및 캐싱

Prometheus의 철학에 따라 스크래프는 동기식으로 수행되며, 메트릭은 모든 /metrics 폴링 시 수집됩니다. 시스템 부하를 합리적인 수준으로 유지하기 위해 콜렉터별로 최소 수집 간격을 선택적으로 설정할 수 있으며, 설정된 간격보다 자주 쿼리될 경우 캐시된 메트릭을 생성합니다.

다운로드·설치 방법

Prometheus SQL Exporter는 여러 방법으로 설치할 수 있습니다.

  • GitHub 릴리스 페이지에서 패키지된 릴리스를 다운로드합니다.
  • Docker 이미지를 사용할 수 있습니다.
  • Go 언어를 사용하여 직접 빌드할 수 있습니다. 기본적인 빌드 명령어는 다음과 같습니다: go install github.com/free/sql_exporter/cmd/sql_exporter

기본 사용법/명령어

설치 후 다음과 같은 명령어로 프로그램을 실행할 수 있습니다.

sql_exporter

도움말을 확인하려면 -help 플래그를 사용합니다. 주요 명령줄 옵션은 다음과 같습니다:

  • -config.file string: SQL Exporter 설정 파일 이름을 지정합니다. 기본값은 “sql_exporter.yml”입니다.
  • -web.listen-address string: 웹 인터페이스 및 텔레메트리를 위해 수신할 주소를 지정합니다. 기본값은 “:9399″입니다.
  • -web.metrics-path string: 지표를 노출할 경로를 지정합니다. 기본값은 “/metrics”입니다.

이런 경우에 유용합니다

  • 여러 종류의 데이터베이스(MySQL, PostgreSQL, MSSQL 등)를 통합적으로 모니터링해야 할 때
  • Prometheus 모니터링 시스템을 사용하여 데이터베이스 성능 지표를 수집하고 시각화할 때
  • 데이터베이스 쿼리 실행 시간, 연결 수, 특정 테이블의 데이터 업데이트 시간 등 사용자 정의된 메트릭이 필요할 때

지원 환경·시스템 요구사항

SQL Exporter 자체는 Go 언어로 작성되어 크로스 플랫폼이지만, 모니터링 대상인 데이터베이스 서버와 통신해야 합니다. 기본적으로 MySQL, PostgreSQL, Microsoft SQL Server, Clickhouse 드라이버가 포함되어 있으나, 다른 DBMS를 모니터링하려면 해당 Go 드라이버를 포함하여 바이너리를 다시 빌드해야 합니다.

제한 사항·확인 사항

  • MySQL 및 Clickhouse의 경우, SQL Exporter가 사용하는 DSN(Data Source Name) 형식이 표준 Go 드라이버 형식과 약간 다릅니다. 설정 시 공식 문서의 예시를 참조해야 합니다.
  • 기본 빌드에 포함되지 않은 다른 DBMS를 모니터링하려면 소스 코드에서 관련 드라이버를 추가하고 바이너리를 다시 빌드하는 과정이 필요합니다.

시스템 요구사항

MySQL, PostgreSQL, Microsoft SQL Server, Clickhouse 등 지원되는 DBMS에 대한 연결 정보가 필요합니다.