events 스탠자

events 스탠자

events 스탠자는 Boundary가 감사(audit), 관찰(observation), 시스템(system), 텔레메트리(telemetry) 이벤트 중 어떤 것을 언제 어디로 보낼지 설정해요. 이벤트를 실제로 기록할지, 어느 목적지(sink)로 흘려보낼지를 이 한 블록에서 정리하는 거죠.

출처: HashiCorp Boundary docs

본문

events 스탠자는 Boundary가 발생시키는 감사·관찰·시스템·텔레메트리 이벤트를 설정하고, 이들이 전송될 위치를 정해요. 예시를 먼저 볼게요.

events
{
  observations_enabled = true
  sysevents_enabled = true
  telemetry_enabled = false

  sink "stderr" {
    name = "all-events"
    description = "All events sent to stderr"
    event_types = ["*"]
    format = "hclog-text"
  }

  sink {
    name = "obs-sink"
    description = "Observations sent to a file"
    event_types = ["observation"]
    format = "cloudevents-json"

    file {
      path = "/var/log/boundary"
      file_name = "events.ndjson"
    }
  }
}

사용할 수 있는 파라미터를 하나씩 볼게요.

  • audit_enabled — 감사 이벤트를 발생시킬지 여부를 지정해요.
  • observations_enabled — 관찰 이벤트를 발생시킬지 여부를 지정해요.
  • sysevents_enabled — 시스템 이벤트를 발생시킬지 여부를 지정해요.
  • telemetry_enabled — 텔레메트리 이벤트를 발생시킬지 여부를 지정해요. 텔레메트리 이벤트를 받으려면 observations_enabled도 true로 설정해야 해요.
  • sink — 이벤트 싱크의 구성을 지정해요. 현재 지원되는 싱크 종류는 두 가지인데, file과 stderr예요. 싱크를 하나도 설정하지 않으면 모든 이벤트가 기본 stderr 싱크로 보내져요. 이벤트는 여러 싱크로 보낼 수도 있어요. 모든 싱크 종류에 공통으로 적용되는 필드는 common sink parameters를 참고하세요.

로그 디렉터리 구성하기

파일 싱크를 설정하면 path 파라미터가 file_name으로 이름 지어진 파일을 Boundary가 기록하는 디렉터리를 지정해요. Boundary를 시작하기 전에 그 디렉터리를 만들고, Boundary 서비스 사용자에게 쓰기 권한을 줘야 해요.

예를 들어 다음 명령들은 /var/log/boundary 디렉터리를 만들고, boundary 사용자와 그룹으로 실행되는 Boundary 서비스를 위해 준비해요.

$ sudo mkdir -p /var/log/boundary
$ sudo chown boundary:boundary /var/log/boundary
$ sudo chmod 750 /var/log/boundary

이 명령들은 성공해도 출력이 없어요. boundary:boundary는 Boundary 서비스를 실행하는 사용자와 그룹으로 바꿔주세요. 자세한 내용은 Boundary Enterprise 배포 가이드의 Set logging permissions를 참고해요.

기본 events 스탠자

이벤트 스탠자를 지정하지 않으면 다음 기본값이 사용돼요.

events
{
  audit_enabled = false
  observations_enabled = true
  sysevents_enabled = true
  telemetry_enabled = false

  sink "stderr" {
    name = "default"
    event_types = ["*"]
    format = "cloudevents-json"
  }
}