Créez un projet et un Logstore, écrivez des journaux et interrogez-les à l'aide du SDK Python Simple Log Service.
Prérequis
Un utilisateur RAM disposant des autorisations requises. Créer un utilisateur RAM et lui accorder des autorisations.
-
Les variables d'environnement ALIBABA_CLOUD_ACCESS_KEY_ID et ALIBABA_CLOUD_ACCESS_KEY_SECRET sont configurées. Configurer les variables d'environnement sous Linux, macOS et Windows.
ImportantUne paire AccessKey associée à un compte Alibaba Cloud accorde des autorisations complètes pour toutes les opérations API. Utilisez la paire AccessKey d'un utilisateur RAM pour les appels API ou les tâches courantes d'exploitation et de maintenance.
Ne codez pas en dur votre AccessKey ID et votre AccessKey Secret dans le code de votre projet. Le codage en dur des identifiants peut entraîner une exposition accidentelle, compromettant ainsi la sécurité de toutes les ressources de votre compte.
Le SDK Python Simple Log Service est installé. Installer le SDK Simple Log Service pour Python.
Exemples
-
Écrire du code Python pour collecter des journaux
Créez le fichier SLSQuickStart.py. Ce script crée un projet, un Logstore et un index, écrit des journaux et exécute une requête :
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()Exemple de sortie :
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 ********************* ........Le dépôt GitHub aliyun-log-python-sdk contient davantage d'exemples.
-
Utiliser Logtail pour collecter des journaux Python
Collectez des journaux depuis le module de journalisation Python avec Logtail. Collecter des journaux Python.
Références
Dépannez les appels API ayant échoué à l'aide des codes d'erreur renvoyés par le serveur. Codes d'erreur API.
Simple Log Service prend en charge les SDK propriétaires et communs d'Alibaba Cloud. Centre SDK Simple Log Service - Portail développeur OpenAPI Alibaba Cloud.
Automatisez la gestion de la configuration avec l'CLI Simple Log Service.