Mattermost 로깅#

plans-img 모든 플랜 에서 사용 가능

deployment-img Cloudself-hosted 배포

기본적으로 모든 Mattermost 버전은 로그를 콘솔과 기계가 읽을 수 있는 JSON 형식의 mattermost.log 파일에 모두 기록합니다.

참고

Mattermost Enterprise 및 Professional 고객은 추가로 syslog 및 TCP 소켓 대상으로 직접 로깅할 수 있습니다.

시스템 관리자는 System Console > Environment > Logging 으로 이동하거나 config.json 파일을 직접 편집하여 비즈니스 관행과 요구 사항에 따라 다음 로깅 옵션을 사용자 지정할 수 있습니다.

콘솔 로그#

콘솔 로그는 표준 출력 스트림(stdout)을 사용하여 콘솔에 기록되는 상세한 디버그 수준의 로그 메시지를 제공합니다.

System Console > Environment > Logging 으로 이동하거나 config.json 파일을 직접 편집하여 다음 콘솔 로그를 사용자 지정할 수 있습니다:

파일 로그#

파일 로그는 시작 및 초기화 관련 오류와 정보, 웹훅 디버그 메시지를 포함한 정보 수준의 로그 메시지를 제공합니다. 파일은 ./logs/mattermost.log 에 저장되며, 100 MB에서 로테이션되고 동일한 디렉토리의 별도 파일로 보관됩니다.

System Console > Reporting > Server Logs 로 이동하여 Download Logs 를 선택하면 mattermost.log 파일을 로컬에 다운로드할 수 있습니다.

System Console > Environment > Logging 으로 이동하거나 config.json 파일을 직접 편집하여 다음 파일 로그를 사용자 지정할 수 있습니다:

console, local file, syslog, TCP socket 대상의 조합으로 로그 레코드를 선택적으로 출력할 수 있으며, 각각 추가 사용자 지정 기능을 제공합니다. 자세한 내용은 Advanced Logging 을 참조하세요.

로그 출력 정의#

Environment > Logging > Advanced Logging 으로 이동하거나 config.json 파일을 직접 편집하여 System Console에서 JSON 형식으로 로그 출력을 정의할 수 있습니다. 아래 샘플 JSON을 시작점으로 사용할 수 있습니다.

{
    "console1": {
        "type": "console",
        "format": "json",
        "levels": [
            {"id": 5, "name": "debug", "stacktrace": false},
            {"id": 4, "name": "info", "stacktrace": false, "color": 36},
            {"id": 3, "name": "warn", "stacktrace": false},
            {"id": 2, "name": "error", "stacktrace": true, "color": 31},
            {"id": 1, "name": "fatal", "stacktrace": true, "color": 31},
            {"id": 0, "name": "panic", "stacktrace": true, "color": 31},
            {"id": 10, "name": "stdlog", "stacktrace": false}
        ],
        "options": {
            "out": "stdout"
        },
        "maxqueuesize": 1000
    },
    "file1": {
        "type": "file",
        "format": "json",
        "levels": [
            {"id": 5, "name": "debug", "stacktrace": false},
            {"id": 4, "name": "info", "stacktrace": false},
            {"id": 3, "name": "warn", "stacktrace": false},
            {"id": 2, "name": "error", "stacktrace": true},
            {"id": 1, "name": "fatal", "stacktrace": true},
            {"id": 0, "name": "panic", "stacktrace": true}
        ],
        "options": {
            "filename": "mattermost_logging.log",
            "max_size": 100,
            "max_age": 1,
            "max_backups": 10,
            "compress": true
        },
        "maxqueuesize": 1000
    },
    "file2": {
        "type": "file",
        "format": "json",
        "levels": [
            {"id": 2, "name": "error", "stacktrace": true},
            {"id": 1, "name": "fatal", "stacktrace": true},
            {"id": 0, "name": "panic", "stacktrace": true}
        ],
        "options": {
            "filename": "mattermost_logging_errors.log",
            "max_size": 100,
            "max_age": 30,
            "max_backups": 10,
            "compress": true
        },
        "maxqueuesize": 1000
    }
}

감사 로깅 (베타)#

참고

plans-img-yellow Enterprise 플랜에서만 사용 가능

기본적으로 Mattermost는 감사 로그를 서버의 파일에 로컬로 기록하지 않습니다. Mattermost REST API 또는 mmctl에 대한 접근과 같은 Mattermost workspace 내에서 수행된 활동과 이벤트를 기록하기 위해 Mattermost에서 실험적 감사 로깅을 활성화하고 사용자 지정할 수 있습니다.

Mattermost v9.3부터 AD/LDAP 이벤트에 대한 고급 로깅을 다른 로깅과 별도로 활성화하고 사용자 지정할 수 있습니다.

  • 로그는 호출자에 대한 지연 시간을 줄이기 위해 비동기적으로 기록되며, 일반 로깅과 별도로 저장됩니다.

  • 대상에 쓰기를 할 수 없는 짧은 시간 동안 감사 레코드는 구성 가능한 최대 레코드 제한으로 메모리에 버퍼링됩니다. 일반적인 감사 레코드 볼륨을 기준으로 버퍼를 채우는 데 수 분이 걸릴 수 있습니다. 그 후 레코드는 삭제되고 레코드 삭제 이벤트가 기록됩니다.

파일에 쓰기 시 감사 이벤트를 파일로 출력할지 여부, 감사 로깅 파일의 이름과 경로, 각 파일의 최대 크기, 로테이션을 트리거하기 전의 최대 일수, 유지할 로테이션된 파일의 최대 수, GZIP을 사용하여 파일을 압축할지 여부, 파일에 쓰기 시 언제든지 대기/버퍼링할 수 있는 감사 레코드 수 를 정의할 수 있습니다.

또한 감사 로그 레코드를 console, local file, syslog, TCP socket 대상의 어떤 조합으로도 출력할 수 있으며, 각 대상은 추가 사용자 지정 기능을 제공합니다. 자세한 내용은 Advanced Logging 을 참조하세요.

경고

  • Mattermost v7.2부터 실험적 감사 로깅(Beta)은 새로운 형식으로 이전 감사 로그를 파싱하려는 고객의 경우 이전 릴리스와 호환되지 않는 변경사항입니다.

  • 감사 로그 레코드의 형식과 내용이 표준 JSON 스키마 를 사용하여 모든 이벤트에 대해 표준화되었습니다.

  • 감사 로그 레코드를 수집하거나 파싱하는 기존 도구는 수정이 필요할 수 있습니다.


고급 로깅#

참고

plans-img-yellow Enterprise 플랜에서만 사용 가능

시스템 관리자는 로그와 감사 레코드를 console, local file, syslog, TCP socket 대상의 어떤 조합으로도 출력할 수 있습니다. 각 출력 대상은 Mattermost 배포에 맞게 사용자 지정할 수 있는 추가 구성 옵션을 제공합니다.

  • Mattermost v9.11부터 시스템 관리자는 mmctl config set 명령을 사용하여 고급 로깅 JSON 옵션을 구성할 수 있습니다. 슬래시 명령 예제는 mmctl config set 문서를 참조하세요.

  • Mattermost v9.3부터 시스템 관리자는 Environment > Logging 으로 이동하여 다중 라인 JSON을 사용하여 시스템 콘솔에서 고급 로깅 옵션을 구성할 수 있습니다.

  • 또는 관리자는 다중 라인 JSON 또는 이스케이프된 JSON 문자열을 사용하여 config.json 파일의 AdvancedLoggingJSON 섹션 내에서 고급 로깅을 구성할 수 있습니다.

  • Mattermost Team Edition 고객은 감사 로그 레코드를 콘솔이나 파일로 출력할 수 있습니다.

고급 로깅 옵션은 다음과 같이 구성할 수 있습니다:

  • 인증 문제를 해결하기 위해 AD/LDAP에 대한 추적 로깅을 활성화합니다.

  • 경고를 트리거하는 별도의 모니터링 파일에 오류와 패닉을 캡처합니다.

  • 문제를 재현하기 위해 로그 파일 순환과 함께 별도의 파일에 프로덕션 디버그 및 오류 로그를 캡처하면서, 디버그 로그가 사용할 수 있는 디스크 공간의 양에 제한을 적용합니다.

  • 사용자 워크플로우 중에 액세스된 모든 API 엔드포인트를 감사합니다.

고급 로깅 구성에는 다음 단계가 포함됩니다:

고급 로그 출력 정의#

아래 예제에서 파일 출력은 일반 텍스트로 ./logs/audit.log 에 기록되며 모든 감사 로그 레벨과 이벤트를 포함합니다. 이전 로그는 1일 동안 보관되며 최대 10개의 백업 로그 파일이 한 번에 보관됩니다. 로그 파일의 최대 크기가 500MB에 도달하면 gzip을 사용하여 로그가 순환됩니다. 파일에 쓰는 동안 최대 1000개의 감사 레코드가 대기/버퍼링될 수 있습니다.

"AdvancedLoggingJSON": {
    "file_1": {
        "type": "file",
        "format": "plain",
        "levels": [
            { "id": 100, "name": "audit-api" },
            { "id": 101, "name": "audit-content" },
            { "id": 102, "name": "audit-permissions" },
            { "id": 103, "name": "audit-cli" }
        ],
        "options": {
            "compress": true,
            "filename": "./logs/audit.log",
            "max_age": 1,
            "max_backups": 10,
            "max_size": 500
        },
        "maxqueuesize": 1000
    }
}

config.json 파일을 깔끔하게 유지하기 위해 여러 줄의 JSON 대신 다른 구성 파일의 파일 지정을 가리키도록 고급 로깅 구성을 설정할 수 있습니다:

"AdvancedLoggingJSON": "/path/to/audit_log_config.json"

별도의 구성 파일에는 여러 줄의 JSON이 포함됩니다.

아래 예제에서 첫 번째 출력은 일반 텍스트로 콘솔에 기록되며 모든 감사 로그 레벨, 이벤트 및 명령 출력을 포함합니다. 필드 사이에는 파이프 | 구분자가 배치됩니다.

두 번째 출력은 기계가 읽을 수 있는 JSON 형식의 일반 텍스트로 ./logs/audit.log 에 기록되며 모든 감사 로그 레벨, 이벤트 및 명령 출력을 포함합니다. 이전 로그는 1일 동안 보관되며 최대 10개의 백업 로그 파일이 한 번에 보관됩니다. 로그 파일의 최대 크기가 500MB에 도달하면 GZIP을 사용하여 로그가 순환됩니다. 파일에 쓰는 동안 최대 1000개의 감사 레코드가 대기/버퍼링될 수 있습니다.

audit_log_config.json 파일의 내용:

{
    "sample-console": {
        "type": "console",
        "format": "plain",
        "format_options": {
            "delim": " | "
        },
        "levels": [
            {"id": 100, "name": "audit-api"},
            {"id": 101, "name": "audit-content"},
            {"id": 102, "name": "audit-permissions"},
            {"id": 103, "name": "audit-cli"}
        ],
        "options": {
            "out": "stdout"
        },
        "maxqueuesize": 1000
    },
    "sample-file": {
        "type": "file",
        "format": "json",
        "levels": [
            {"id": 100, "name": "audit-api"},
            {"id": 101, "name": "audit-content"},
            {"id": 102, "name": "audit-permissions"},
            {"id": 103, "name": "audit-cli"}
        ],
        "options": {
            "filename": "./logs/audit.log",
            "max_size": 500,
            "max_age": 1,
            "max_backups": 10,
            "compress": true
        },
        "maxqueuesize": 1000
    }
}

대상 지정#

로그 레코드는 콘솔, 로컬 파일, syslog, TCP 소켓 대상의 조합으로 전송될 수 있습니다. 로그 대상은 추가 소프트웨어 설치 없이도 대부분의 로그 집계기 및 기타 로그 분석 도구를 지원하도록 선택되었습니다.

시스템 관리자는 여러 로그 대상을 정의할 수 있습니다:

  • 중복을 위해 로그 출력을 파일과 로그 집계기에 미러링합니다.

  • 특정 항목을 특정 대상에 로깅합니다. 예를 들어, 모든 audit-content 레코드는 다른 레벨과 다른 대상으로 라우팅될 수 있습니다.

  • 관리자는 typenone 으로 설정하여 로그 대상을 일시적으로 비활성화할 수도 있습니다.

형식 기본 설정 구성#

시스템 관리자는 대상별로 로그 형식을 제어할 수 있습니다.

일반 로그 형식 구성 옵션#

유형

설명

disable_timestamp

불리언

타임스탬프 출력을 비활성화합니다. 기본값은 false 입니다.

disable_level

불리언

레벨 이름 출력을 비활성화합니다. 기본값은 false 입니다.

disable_msg

불리언

메시지 텍스트 출력을 비활성화합니다. 기본값은 false 입니다.

disable_fields

불리언

모든 필드 출력을 비활성화합니다. 기본값은 false 입니다.

disables_stacktrace

불리언

스택 트레이스 출력을 비활성화합니다. 기본값은 false 입니다.

enable_caller

문자열

로그 레코드를 생성한 파일과 줄 번호의 출력을 활성화합니다. 기본값은 false 입니다.

delim

문자열

필드 사이에 배치되는 구분자입니다. 기본값은 단일 공백입니다.

min_level_len

숫자

최소 레벨 이름 길이입니다. 레벨 이름이 최소값보다 작을 경우, 레벨 이름은 공백으로 채워집니다. 기본값은 0 입니다.

min_msg_len

숫자

최소 메시지 길이입니다. 메시지 텍스트가 최소값보다 작을 경우, 메시지 텍스트는 공백으로 채워집니다. 기본값은 0 입니다.

timestamp_format

문자열

타임스탬프 형식입니다. 기본값은 RFC3339 입니다.

line_end

문자열

대체 줄 끝 문자입니다. 기본값은 n 입니다.

enable_color

불리언

색상 출력을 지원하는 대상에 대해 색상을 활성화합니다. 기본값은 false 입니다.

JSON 로그 형식 구성 옵션#

유형

설명

disable_timestamp

불리언

타임스탬프 출력을 비활성화합니다. 기본값은 false 입니다.

disable_level

불리언

로그 레벨 표시 이름의 출력을 비활성화합니다. 기본값은 false 입니다.

disable_msg

불리언

메시지 텍스트 출력을 비활성화합니다. 기본값은 false 입니다.

disable_fields

불리언

모든 필드 출력을 비활성화합니다. 기본값은 false 입니다.

disables_stacktrace

불리언

스택 트레이스 출력을 비활성화합니다. 기본값은 false 입니다.

enable_caller

문자열

로그 레코드를 생성한 파일과 줄 번호의 출력을 활성화합니다. 기본값은 false 입니다.

timestamp_format

문자열

타임스탬프 형식입니다. 기본값은 RFC3339 입니다.

GELF 로그 형식 구성 옵션#

유형

설명

hostname

문자열

로그 레코드에 사용자 정의 호스트 이름을 출력합니다. 생략된 경우 호스트 이름은 운영 체제에서 가져옵니다.

enable_caller

문자열

로그 레코드를 생성한 파일과 줄 번호의 출력을 활성화합니다. 기본값은 false 입니다.

로그 레벨 및 이벤트 구성#

유형

설명

id

숫자

로그 레벨의 고유 식별자입니다.

name

문자열

로그 레벨의 이름입니다.

stacktrace

불리언

스택 추적을 출력합니다. 기본값은 false 입니다.

색상

숫자

로그 레코드의 일부를 출력하는 데 사용되는 ANSI 색상 코드입니다. 지원되는 값은 다음과 같습니다:

  • 검정: 30

  • 빨강: 31

  • 초록: 32

  • 노랑: 33

  • 파랑: 34

  • 자주: 35

  • 청록: 36

  • 흰색: 37

로그 레벨#

다음 로그 레벨은 감사 로그를 지원합니다:

ID

이름

설명

100

audit-api

API 이벤트

101

audit-content

콘텐츠 변경. 이 로그 레벨은 다른 감사 로그 레벨보다 상당히 더 많은 레코드를 생성할 수 있습니다.

102

audit-permissions

권한 변경

103

audit-cli

CLI 작업

다음 로그 레벨은 애플리케이션 로그를 지원합니다:

ID

이름

설명

140

LDAPError

AD/LDAP 인증 오류

141

LDAPWarn

AD/LDAP 인증 경고

142

LDAPInfo

AD/LDAP 인증 정보 로그

143

LDAPDebug

AD/LDAP 인증 디버그 로그

144

LDAPTrace

AD/LDAP 인증 추적 로그. Mattermost v9.3의 LdapSetings.trace 를 대체합니다.

대상별 설정 구성#

콘솔 대상 구성 옵션#

콘솔 대상은 stdout 또는 stderr 일 수 있습니다.

  • 표준 출력 스트림 stout 은 일반적으로 명령의 결과를 사용자에게 출력하는 명령 출력에 사용됩니다.

  • 표준 오류 스트림 sterr 은 일반적으로 프로그램 실행 중 발생하는 오류를 출력하는 데 사용됩니다.

파일 대상 구성 옵션#

파일 대상은 크기 및/또는 기간에 의해 트리거되는 회전 및 압축을 지원합니다.

유형

설명

filename

문자열

출력 파일의 전체 경로.

max_size

숫자

로그 파일이 회전되기 전에 증가할 수 있는 최대 크기(메가바이트(MB)). 기본값은 100 MB입니다.

max_age

숫자

파일 이름에 인코딩된 타임스탬프를 기준으로 오래된 로그 파일을 보관할 최대 일수. 기본값은 0 으로, 이는 오래된 로그 파일의 제거를 비활성화합니다.

max_backups

숫자

보관할 오래된 로그 파일의 최대 개수. 기본값은 0 으로, 모든 오래된 로그 파일을 보관합니다. 참고: max_age 를 구성하면 이 구성 값과 관계없이 오래된 로그 파일이 삭제될 수 있습니다.

compress

불리언

gzip 을 사용하여 회전된 로그 파일을 압축합니다. 기본값은 false 입니다.

Syslog 대상 구성 옵션#

참고

plans-img-yellow Enterprise 플랜에서만 사용 가능

Syslog 대상은 TLS 전송 유무와 관계없이 로컬 및 원격 syslog 서버를 지원합니다. Syslog 대상 지원에는 Mattermost Enterprise가 필요합니다.

유형

설명

host

문자열

로그 레코드를 수신하는 서버의 IP 또는 도메인 이름.

port

숫자

로그 레코드를 수신하는 서버의 포트 번호.

tls

불리언

로그 레코드를 수신하는 서버에 대한 TLS 연결을 생성합니다. 기본값은 false 입니다.

cert

문자열

서버에 대한 TLS 연결을 설정할 때 사용할 인증서 파일(.pem)의 경로.

insecure

불리언

서버가 제공하는 모든 인증서와 해당 인증서의 모든 호스트 이름을 Mattermost가 수락합니다. 기본값은 false 입니다. 참고: 테스트 환경에서만 사용해야 하며 프로덕션 환경에서는 사용하지 않아야 합니다.

tag

문자열

Syslog 태그 필드.

TCP 대상 구성 옵션#

참고

plans-img-yellow Enterprise 플랜에서만 사용 가능

TCP 소켓 대상은 IP 주소 또는 도메인 이름, 포트 및 선택적 TLS 인증서로 구성할 수 있습니다. TCP 소켓 대상 지원에는 Mattermost Enterprise가 필요합니다. 시작점으로 사용할 수 있도록 구성의 샘플 JSON 파일 을 다운로드할 수 있습니다.

유형

설명

host

문자열

로그 레코드를 수신하는 서버의 IP 또는 도메인 이름.

port

숫자

로그 레코드를 수신하는 서버의 포트 번호.

tls

불리언

로그 레코드를 수신하는 서버에 대한 TLS 연결을 생성합니다. 기본값은 false 입니다.

cert

문자열

서버에 대한 TLS 연결을 설정할 때 사용할 인증서 파일(.pem)의 경로.

insecure

불리언

서버가 제공하는 모든 인증서와 해당 인증서의 모든 호스트 이름을 Mattermost가 수락합니다. 기본값은 false 입니다. 참고: 테스트 환경에서만 사용해야 하며 프로덕션 환경에서는 사용하지 않아야 합니다.


자주 묻는 질문#

디버그 로깅을 어떻게 활성화하나요?#

Mattermost 시스템 관리자로 시스템 콘솔 > 환경 > 로깅 > 파일 로그 레벨 로 이동하여 DEBUG 로 설정한 후 변경사항을 저장하세요.

Mattermost 시스템 관리자가 디버그 로깅을 활성화하고 비활성화할 수 있는 시스템 콘솔 페이지의 스크린샷.

디버그 로깅은 로그 파일을 크게 확장할 수 있으며 서버 성능에 부정적인 영향을 미칠 수 있습니다. 서버 로그를 주의 깊게 모니터링하거나, 임시로만 활성화하거나, 개발 환경에서만 사용하고 프로덕션 환경에서는 사용하지 마세요.

Mattermost는 시스템 auditd 외에 감사 로그가 있나요?#

예. 자세한 내용은 감사 로깅 문서를 참조하세요.

syslog가 대상으로 구성된 경우, 데이터 발신자(즉, Mattermost 앱 노드)의 IP 주소가 포함되나요?#

네. 이는 syslog 데몬(수신자)의 기능입니다. 일반적으로 모든 로그 라인은 타임스탬프와 데이터를 전송하는 노드의 호스트명으로 시작됩니다. 예를 들어, 로그 라인은 다음과 같이 시작됩니다: Nov 28 10:56:59 tower kernel: [1072437.431123]  ...., 여기서 tower 는 로그 라인을 생성한 서버의 호스트명입니다.

감사 로그가 활성화되면, 관리자가 감사 로그 설정을 비활성화하거나 수정하는 이벤트를 감사 로깅이 추적할 수 있나요?#

네, 하지만 감사 로그 구성 방식에 따라 다릅니다. 감사 로그 구성은 REST API, mmctl, 시스템 콘솔, 디스크의 파일, 환경 변수를 통해 지정할 수 있습니다. REST API 또는 시스템 콘솔을 통해 변경이 이루어지면 감사 기록이 생성됩니다. 하지만 Mattermost 서버는 구성 파일이나 환경 변수를 통한 변경사항을 캡처할 수 없습니다.

감사가 비활성화될 때 서비스나 유사한 항목의 중지/업데이트에 대한 정보가 서버 로그에 표시되나요?#

네. REST API, mmctl 또는 시스템 콘솔을 통해 감사 로그 구성을 업데이트할 때, 감사 로그의 마지막 이벤트는 관리자 사용자가 서버 구성을 업데이트한 내용이어야 하며, 이는 보안 팀이 시스템에서 어떤 작업이 누구에 의해 수행되었는지 식별하는 데 도움이 됩니다.

로그에서 들어오는 웹훅 세부 정보를 어떻게 제외하나요?#

enable-webhook-debugging 를 참조하세요

최대 로그 필드 크기를 어떻게 조정하나요?#

maximum-field-size 를 참조하세요

환경 변수를 통해 고급 로깅을 어떻게 구성할 수 있나요?#

MM_LOGSETTINGS_ADVANCEDLOGGINGJSON 환경 변수는 고급 로깅을 구성하는 데 사용됩니다. JSON 페이로드를 생성하기 위해 jq 를 사용할 수 있습니다. 예:

export MM_LOGSETTINGS_ADVANCEDLOGGINGJSON=$(jq -n -c '{
    "console1": {
        "Type": "console",
        "Format": "json",
        "Levels": [
            {"ID": 5, "Name": "debug", "Stacktrace": false},
            {"ID": 4, "Name": "info", "Stacktrace": false, "color": 36},
            {"ID": 3, "Name": "warn", "Stacktrace": false},
            {"ID": 2, "Name": "error", "Stacktrace": true, "color": 31},
            {"ID": 1, "Name": "fatal", "Stacktrace": true, "color": 31},
            {"ID": 0, "Name": "panic", "Stacktrace": true, "color": 31},
            {"ID": 10, "Name": "stdlog", "Stacktrace": false}
        ],
        "Options": {
            "Out": "stdout"
        },
        "MaxQueueSize": 1000
    }
}')

LDAP의 추적 로깅을 어떻게 켤 수 있나요?#

LDAP의 추적 로깅을 활성화하기 위한 시작점으로 다음 JSON 구성을 사용하세요:

{
    "ldap-file": {
        "type": "file",
        "format": "plain",
        "levels": [
            {
                "id": 144,
                "name": "LDAPTrace"
            },
            {
                "id": 143,
                "name": "LDAPDebug"
            },
            {
                "id": 142,
                "name": "LDAPInfo"
            },
            {
                "id": 141,
                "name": "LDAPWarn",
                "stacktrace": true
            },
            {
                "id": 140,
                "name": "LDAPError",
                "stacktrace": true
            }
        ],
        "options": {
            "filename": "./logs/ldap.log",
            "max_size": 100,
            "max_age": 14,
            "max_backups": 3,
            "compress": false
        },
        "maxqueuesize": 1000
    }
}