런타임 설정 업데이트

런타임 설정 업데이트 (Settings updates at runtime)

이 기능은 Grafana 서버를 재시작하지 않고도 설정을 업데이트할 수 있게 해 줘요. 단, 지금은 auth.saml 섹션만 지원하며, 이 기능은 곧 제거될 예정이라는 점(비권장)을 꼭 알아두세요. SAML 인증 구성은 새 SSO 설정 API를 쓰는 것이 권장돼요.

출처: Settings updates at runtime

본문

참고: 이 기능은 비권장(deprecated)이며 향후 릴리스에서 제거될 예정이에요. SAML 인증을 구성하려면 새 SSO 설정 API를 사용하세요.

런타임 설정 업데이트로 Grafana 서버를 재시작하지 않고도 Grafana 설정을 업데이트할 수 있어요. 런타임에 발생한 업데이트는 데이터베이스에 저장되며 다른 소스(인자, 환경 변수, 설정 파일 등)의 설정을 덮어써요. 따라서 런타임에서 특정 설정 키가 제거될 때마다 그 키에 사용되는 값은 다른 소스에서 우선순위 역순(인자 > 환경 변수 > 설정 파일)으로 상속받아요. 어떤 옵션으로도 값이 제공되지 않으면 애플리케이션 기본값이 사용돼요.

현재는 auth.saml 섹션의 업데이트만 지원해요.

API로 설정 업데이트 (Update settings via the API)

Admin API를 통해 설정을 업데이트할 수 있어요. API로 설정 업데이트를 제출하면 Grafana는 주어진 설정 업데이트가 허용되고 유효한지 확인해요. 유효하다면 설정을 데이터베이스에 저장하고 인스턴스를 재시작하지 않고도 Grafana 서비스를 다시 로드해요.

설정 업데이트 엔드포인트(/api/admin/settings)에 대한 PUT 요청의 페이로드는 다음 중 하나 또는 둘 모두를 포함해야 해요.

  • updates: 설정하려는 각 섹션의 키-값.
  • removals 리스트: 설정 해제하려는 각 섹션의 키 목록.

예를 들어 다음 updates를 제공하면:

{
  "updates": {
    "auth.saml": {
      "enabled": "true",
      "single_logout": "false"
    }
  }
}

SAML을 활성화하고 single logout을 비활성화해요. 그리고 다음 removals를 제공하면:

{
  "removals": {
    "auth.saml": ["allow_idp_initiated"]
  }
}

auth.saml 안의 allow_idp_initiated 키/값 설정을 제거해요. SAML 서비스가 다시 로드되고, 그 값은 다른 소스(settings.ini 파일, 환경 변수, 명령줄 인자 또는 기타 허용된 구성 제공 메커니즘)에서 상속돼요.

따라서 완전한 HTTP 페이로드는 다음과 같아요.

{
  "updates": {
    "auth.saml": {
      "enabled": "true",
      "single_logout": "false"
    }
  },
  "removals": {
    "auth.saml": ["allow_idp_initiated"]
  }
}

이러한 설정 중 어느 하나라도 덮어쓰거나 검증할 수 없으면 오류를 반환하고, 그 설정들은 데이터베이스에 저장되지 않아요.

백그라운드 작업 (고가용성 구성)

Grafana Enterprise에는 1분마다 데이터베이스에서 설정 업데이트를 확인하는 내장 스케줄 백그라운드 작업이 있어요. 업데이트가 있으면 감지된 변경에 영향받는 Grafana 서비스를 다시 로드해요. 이 백그라운드 작업은 고가용성 구성에서 인스턴스 간 설정을 동기화해요. HTTP API로 변경한 뒤에는 다른 인스턴스들이 데이터베이스와 백그라운드 작업을 통해 동기화돼요.

RBAC로 접근 제어 (Control access with role-based access control)

RBAC(역할 기반 접근 제어)가 활성화되어 있으면 누가 설정을 읽거나 업데이트할 수 있는지 제어할 수 있어요. 자세한 내용은 Admin API 문서를 참고하세요.

더 알아보기 (Learn more)