Configuração de registração para um bucket
Funções
Quando um bucket é criado, a função de registração não é ativada por padrão. Para gerar operações de registro de registrações em buckets, você precisa ativar a função de registro para o bucket. Depois que a função de registração é ativada, um registração é gerado para cada operação em um bucket e vários registrações são empacotados em um arquivo de registração. Ao ativar a função de registro, você precisa especificar um local onde os arquivos de registro são armazenados. Eles podem ser armazenados no bucket para o qual o registração está ativado ou em outros buckets que você tem as permissões necessárias. No entanto, o bucket onde os arquivos de registração são armazenados e o bucket para o qual o registro está ativado deve estar na mesma região.
Os arquivos de registração são gerados pelo OBS e carregados no bucket onde os registrações são armazenados. Portanto, o OBS precisa ser autorizado a carregar arquivos de registração gerados. Antes de configurar a função de registração, você precisa criar uma agência para o OBS no IAM, o nome da agência é configurado como um parâmetro do bucket e a função de registração deve ser configurada sob a tag LoggingEnabled no arquivo XML. Você só precisa autorizar a agência com as permissões de upload para o bucket de destino.
Exemplo de permissões de agência
{ "Version": "1.1", "Statement": [ { "Action": [ "obs:object:PutObject" ], "Resource": [ "OBS:*:*:object:mybucketlogs/*" ], "Effect": "Allow" } ] }
Para desativar a função de registro de bucket, carregue um arquivo de registro com uma tag BucketLoggingStatus vazia.
Os buckets das classes de armazenamento Acesso infrequente e Arquivo não podem ser usados para armazenar arquivos de registração. Arquivos de registração armazenados ocupam espaço de armazenamento em um bucket. Portanto, os usuários são cobrados pelo serviço de registração com base no preço do armazenamento de dados.
Sintaxe da solicitação
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
PUT /?logging HTTP/1.1 Host: bucketname.obs.region.myhuaweicloud.com Date: date Authorization: signatureValue <?xml version="1.0" encoding="UTF-8"?> <BucketLoggingStatus> <Agency>agency-name</Agency> <LoggingEnabled> <TargetBucket>mybucketlogs</TargetBucket> <TargetPrefix>mybucket-access_log-/</TargetPrefix> <TargetGrants> <Grant> <Grantee> <ID>domainID</ID> </Grantee> <Permission>READ</Permission> </Grant> </TargetGrants> </LoggingEnabled> </BucketLoggingStatus> |
Parâmetros de solicitação
Esta solicitação não contém nenhum parâmetro.
Cabeçalhos de solicitação
Essa solicitação usa cabeçalhos comuns. Para mais detalhes, consulte Tabela 3.
Elementos de solicitação
Elemento |
Descrição |
Obrigatório |
---|---|---|
BucketLoggingStatus |
Contêiner para registrar informações de status Tipo: recipiente |
Sim |
Agency |
Nome da agência do IAM criada pelo proprietário do bucket de destino no IAM. Tipo: string |
Você deve definir este parâmetro ao ativar a função de registro. Não defina este parâmetro ao desativar a função de registro. |
LoggingEnabled |
Container para informações de registro. Apresente este elemento ao ativar a função de registro. Caso contrário, ausente. Você pode adicionar informações de registro específicas neste elemento. Tipo: recipiente |
Você deve definir este parâmetro ao ativar a função de registro. Não defina este parâmetro ao desativar a função de registro. |
Grant |
Contêiner para as permissões de registro do beneficiário e do beneficiário. Ele descreve quem tem permissão para acessar os arquivos de registração gerados. Tipo: recipiente |
Não |
Grantee |
Contêiner para o usuário que é concedido com a permissão de registração. Tipo: recipiente |
Não |
ID |
ID da conta do usuário autorizado, que é globalmente exclusivo. Tipo: string |
Não |
Permission |
Permissões do beneficiário para os registrações gerados. Tipo: string Opções de valor: FULL_CONTROL | READ | WRITE |
Não |
TargetBucket |
Ao ativar a função de registração, o proprietário do bucket que está sendo registrado pode especificar um bucket de destino para armazenar os arquivos de registração gerados. Certifique-se de que o proprietário do bucket que configura a função de registro tenha a permissão FULL_CONTROL para o bucket que armazena os arquivos de registro. Os arquivos de registração gerados para vários buckets podem ser armazenados no mesmo bucket de destino. Se você fizer isso, precisará especificar TargetPrefixes diferentes para classificar registrações para buckets diferentes. Tipo: string |
Você deve definir este parâmetro ao ativar a função de registro. Não defina este parâmetro ao desativar a função de registro. |
TargetPrefix |
Você pode especificar um prefixo usando este elemento para que os arquivos de registração sejam nomeados com este prefixo. Tipo: string |
Você deve definir este parâmetro ao ativar a função de registro. Não defina este parâmetro ao desativar a função de registro. |
TargetGrants |
Container para concessão de informações. Tipo: recipiente |
Não |
Regras de nomenclatura para registrações de acesso
1
|
<TargetPrefix>YYYY-mm-DD-HH-MM-SS-<UniqueString> |
- <TargetPrefix> é o prefixo de nome de registração especificado pelo usuário.
- YYYY-mm-DD-HH-MM-SS indica a data e a hora em que o registração é gerado.
- <UniqueString> indica uma cadeia de caracteres gerada pelo OBS.
Segue-se um exemplo de um nome de ficheiro de registo:
1
|
bucket-log2015-06-29-12-22-07-N7MXLAF1BDG7MPDV |
- bucket-log é o prefixo de destino especificado pelo usuário.
- 2015-06-29-12-22-07 indica a hora em que o registração é gerado.
- N7MXLAF1BDG7MPDV é uma string gerada automaticamente pelo OBS
Formato dos registrações de acesso ao bucket
A seguir, mostra um registração de acesso entregue ao bucket de destino:
1
|
787f2f92b20943998a4fe2ab75eb09b8 bucket [13/Aug/2015:01:43:42 +0000] xx.xx.xx.xx 787f2f92b20943998a4fe2ab75eb09b8 281599BACAD9376ECE141B842B94535B REST.GET.BUCKET.LOCATION - "GET /bucket?location HTTP/1.1" 200 - 211 - 6 6 "-" "HttpClient" - - |
Cada registração de acesso contém as seguintes informações:
Parâmetro |
Exemplo |
Descrição |
---|---|---|
BucketOwner |
787f2f92b20943998a4fe2ab75eb09b8 |
ID do proprietário do bucket |
Bucket |
bucket |
Nome do bucket |
Time |
[13/Aug/2015:01:43:42 +0000] |
Solicitação timestamp |
Remote IP |
xx.xx.xx.xx |
Solicitar endereço IP |
Requester |
787f2f92b20943998a4fe2ab75eb09b8 |
ID do solicitante |
RequestID |
281599BACAD9376ECE141B842B94535B |
ID de Solicitação |
Operation |
REST.GET.BUCKET.LOCATION |
Operação |
Key |
- |
Nome do Objeto |
Request-URI |
GET /bucket?location HTTP/1.1 |
URI de solicitação |
HTTPStatus |
200 |
Código de resposta |
ErrorCode |
- |
Código de erro |
BytesSent |
211 |
Tamanho da resposta HTTP, expresso em bytes |
ObjectSize |
- |
Tamanho do objeto |
TotalTime |
6 |
Tempo de processamento no servidor Unidade: ms |
Turn-AroundTime |
6 |
Tempo total de processamento da solicitação Unidade: ms |
Referer |
- |
Cabeçalho de referência da solicitação |
User-Agent |
HttpClient |
Cabeçalho User-Agent da solicitação |
VersionID |
- |
ID de versão contida em uma solicitação |
STSLogUrn |
- |
Autenticação federada e informações de agência |
StorageClass |
STANDARD_IA |
Classe atual de armazenamento de objetos |
TargetStorageClass |
GLACIER |
Classe de armazenamento para a qual o objeto será transferido |
DentryName |
12456/file.txt |
|
Sintaxe da resposta
1 2 3 |
HTTP/1.1 status_code Date: date Content-Length: length |
Cabeçalhos de resposta
A resposta à solicitação usa cabeçalhos comuns. Para mais detalhes, consulte Tabela 1.
Elementos de resposta
Esta resposta não envolve elementos.
Respostas de erro
Nenhuma resposta de erro especial está envolvida. Para obter detalhes sobre respostas de erro, consulte Tabela 2.
Solicitação de exemplo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
PUT /?logging HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 02:40:06 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:mCOjER/L4ZZUY9qr6AOnkEiwvVk= Content-Length: 528 <?xml version="1.0" encoding="UTF-8"?> <BucketLoggingStatus> <Agency>agencyGrantPutLogging</Agency> <LoggingEnabled> <TargetBucket>log-bucket</TargetBucket> <TargetPrefix>mybucket-access_log-/</TargetPrefix> <TargetGrants> <Grant> <Grantee> <ID>783fc6652cf246c096ea836694f71855</ID> </Grantee> <Permission>READ</Permission> </Grant> </TargetGrants> </LoggingEnabled> </BucketLoggingStatus> |
Resposta de exemplo
1 2 3 4 5 6 |
HTTP/1.1 200 OK Server: OBS x-obs-request-id: BF26000001643663CE53B6AF31C619FD x-obs-id-2: 32AAAQAAEAABSAAkpAIAABAAAQAAEAABCT9CjuOx8cETSRbqkm35s1dL/tLhRNdZ Date: WED, 01 Jul 2015 02:40:06 GMT Content-Length: 0 |