Crie um projeto e um Logstore, grave logs e consulte-os com o SDK do Simple Log Service para Python.
Pré-requisitos
Um usuário RAM com as permissões necessárias. Criar um usuário RAM e conceder permissões.
-
Variáveis de ambiente ALIBABA_CLOUD_ACCESS_KEY_ID e ALIBABA_CLOUD_ACCESS_KEY_SECRET configuradas. Configurar variáveis de ambiente no Linux, macOS e Windows.
ImportanteO par de AccessKey de uma conta Alibaba Cloud concede permissões totais para todas as operações de API. Utilize o par de AccessKey de um usuário RAM para chamadas de API ou operações rotineiras de O&M.
Não codifique seu AccessKey ID e AccessKey Secret diretamente no código do projeto. A codificação fixa de credenciais pode resultar em exposição acidental e comprometer a segurança de todos os recursos da sua conta.
SDK do Simple Log Service para Python instalado. Instalar o SDK do Simple Log Service para Python.
Exemplos
-
Escreva código Python para coletar logs
Crie o arquivo SLSQuickStart.py. Este script cria um projeto, um Logstore e um índice, grava logs e executa uma consulta:
from aliyun.log import LogClient, PutLogsRequest, LogItem, GetLogsRequest, IndexConfig import time import os # This example retrieves the AccessKey ID and AccessKey Secret from environment variables. accessKeyId = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '') accessKey = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '') # The endpoint for Simple Log Service. This example uses the endpoint for the China (Hangzhou) region. Replace it with your actual endpoint. endpoint = "cn-hangzhou.log.aliyuncs.com" # Create a Simple Log Service client. client = LogClient(endpoint, accessKeyId, accessKey) # The name of the project. project_name = "aliyun-test-project" # The name of the Logstore. logstore_name = "aliyun-test-logstore" # The query statement. query = "*| select dev,id from " + logstore_name # The index configuration. logstore_index = {'line': { 'token': [',', ' ', "'", '"', ';', '=', '(', ')', '[', ']', '{', '}', '?', '@', '&', '<', '>', '/', ':', '\n', '\t', '\r'], 'caseSensitive': False, 'chn': False}, 'keys': {'dev': {'type': 'text', 'token': [',', ' ', "'", '"', ';', '=', '(', ')', '[', ']', '{', '}', '?', '@', '&', '<', '>', '/', ':', '\n', '\t', '\r'], 'caseSensitive': False, 'alias': '', 'doc_value': True, 'chn': False}, 'id': {'type': 'long', 'alias': '', 'doc_value': True}}, 'log_reduce': False, 'max_text_len': 2048} # The from_time and to_time parameters specify the time range for the query, in Unix timestamp format. from_time = int(time.time()) - 3600 to_time = time.time() + 3600 # Create a project. def create_project(): print("ready to create project %s" % project_name) client.create_project(project_name, project_des="") print("create project %s success " % project_name) time.sleep(60) # Create a Logstore. def create_logstore(): print("ready to create logstore %s" % logstore_name) client.create_logstore(project_name, logstore_name, ttl=3, shard_count=2) print("create logstore %s success " % project_name) time.sleep(30) # Create an index. def create_index(): print("ready to create index for %s" % logstore_name) index_config = IndexConfig() index_config.from_json(logstore_index) client.create_index(project_name, logstore_name, index_config) print("create index for %s success " % logstore_name) time.sleep(60 * 2) # Write data to the Logstore. def put_logs(): print("ready to put logs for %s" % logstore_name) log_group = [] for i in range(0, 100): log_item = LogItem() contents = [ ('dev', 'test_put'), ('id', str(i)) ] log_item.set_contents(contents) log_group.append(log_item) request = PutLogsRequest(project_name, logstore_name, "", "", log_group, compress=False) client.put_logs(request) print("put logs for %s success " % logstore_name) time.sleep(60) # Query logs. def get_logs(): print("ready to query logs from logstore %s" % logstore_name) request = GetLogsRequest(project_name, logstore_name, from_time, to_time, query=query) response = client.get_logs(request) for log in response.get_logs(): for k, v in log.contents.items(): print("%s : %s" % (k, v)) print("*********************") if __name__ == '__main__': # Create a project. create_project() # Create a Logstore. create_logstore() # Create an index. create_index() # Write data to the Logstore. put_logs() # Query logs. get_logs()Saída de exemplo:
ready to create project aliyun-test-project create project aliyun-test-project success ready to create logstore aliyun-test-logstore create logstore aliyun-test-project success ready to create index for aliyun-test-logstore create index for aliyun-test-logstore success ready to put logs for aliyun-test-logstore put logs for aliyun-test-logstore success ready to query logs from logstore aliyun-test-logstore dev : test_put id : 0 ********************* dev : test_put id : 1 ********************* dev : test_put id : 2 ********************* dev : test_put id : 3 ********************* ........O repositório GitHub aliyun-log-python-sdk contém mais exemplos.
-
Use o Logtail para coletar logs Python
Colete logs do módulo de logging do Python com o Logtail. Coletar logs Python.
Referências
Solucione problemas de falhas em chamadas de API usando os códigos de erro retornados pelo servidor. Códigos de erro da API.
O Simple Log Service oferece suporte tanto aos SDKs proprietários quanto aos comuns da Alibaba Cloud. Simple Log Service SDK Center - Alibaba Cloud OpenAPI Developer Portal.
Automatize o gerenciamento de configurações com a CLI do Simple Log Service.