详情页标题前

阿里云日志服务SLSPython SDK快速入门-云淘科技

详情页1

本文介绍如何快速使用日志服务Python SDK完成常见操作,包括创建项目(Project)、创建日志库(Logstore)、写入日志和查询日志等。

前提条件

  • 已创建RAM用户并完成授权。具体操作,请参见创建RAM用户并完成授权。

  • 已配置环境变量ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET。具体操作,请参见配置环境变量。

    重要

    • 阿里云账号的AccessKey拥有所有API的访问权限,建议您使用RAM用户的AccessKey进行API访问或日常运维。

    • 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。

  • 已完成Python SDK安装。更多信息,请参见安装Python SDK。

示例

  • 直接编写Python代码采集日志

    本示例中,创建一个SLSQuickStart.py文件,并调用接口分别完成创建Project、创建Logstore、创建索引、写入日志数据和查询日志数据。示例如下:

    from aliyun.log import LogClient, PutLogsRequest, LogItem, GetLogsRequest, IndexConfig
    import time
    import os
    
    # 本示例从环境变量中获取AccessKey ID和AccessKey Secret。
    accessKeyId = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '')
    accessKey = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '')
    # 日志服务的服务接入点。此处以杭州为例,其它地域请根据实际情况填写。
    endpoint = "cn-hangzhou.log.aliyuncs.com" 
    
    # 创建日志服务Client。 
    client = LogClient(endpoint, accessKeyId, accessKey)
    
    # Project名称。
    project_name = "aliyun-test-project"
    # Logstore名称
    logstore_name = "aliyun-test-logstore"
    # 查询语句。
    query = "*| select dev,id from " + logstore_name
    # 索引。
    logstore_index = {'line': {
        'token': [',', ' ', "'", '"', ';', '=', '(', ')', '[', ']', '{', '}', '?', '@', '&', '', '/', ':', '
    ', '	',
                  '\r'], 'caseSensitive': False, 'chn': False}, 'keys': {'dev': {'type': 'text',
                                                                                 'token': [',', ' ', "'", '"', ';', '=',
                                                                                           '(', ')', '[', ']', '{', '}',
                                                                                           '?', '@', '&', '', '/',
                                                                                           ':', '
    ', '	', '\r'],
                                                                                 'caseSensitive': False, 'alias': '',
                                                                                 'doc_value': True, 'chn': False},
                                                                         'id': {'type': 'long', 'alias': '',
                                                                                'doc_value': True}}, 'log_reduce': False,
        'max_text_len': 2048}
    
    # from_time和to_time表示查询日志的时间范围,Unix时间戳格式。
    from_time = int(time.time()) - 3600
    to_time = time.time() + 3600
    
    # 创建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)
    
    # 创建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)
    
    # 创建索引。
    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)
    
    # 向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)
    
    
    # 通过SQL查询日志。
    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__':
        # 创建Project。
        create_project()
        # 创建Logstore。
        create_logstore()
        # 创建索引。
        create_index()
        # 向Logstore写入数据。
        put_logs()
        # 通过SQL查询日志。
        get_logs()

    返回结果示例如下:

    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
    *********************
    ........

    更多示例代码,请参见Aliyun Log Python SDK。

  • 通过Logtail采集Python日志

    通过Logtail方式,以采集Python的logging模块日志为例,采集Python日志。更多信息,请参见采集Python日志。

相关文档

  • 在调用API接口过程中,若服务端返回结果中包含错误信息,则表示调用API接口失败。您可以参考API错误码对照表查找对应的解决方法。更多信息,请参见API错误处理对照表。
  • 阿里云OpenAPI开发者门户提供调试、SDK、示例和配套文档。通过OpenAPI,您无需手动封装请求和签名操作,就可以快速对日志服务API进行调试。更多信息,请参见OpenAPI开发者门户。
  • 为满足越来越多的自动化日志服务配置需求,日志服务提供命令行工具CLI(Command Line Interface)。更多信息,请参见日志服务命令行工具CLI。
  • 更多示例代码,请参见Aliyun Log Python On GitHub。

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/163069.html

(0)
上一篇 2023年12月10日 上午4:55
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云日志服务SLSupdate_logstore-云淘科技

    调用CLI命令修改Logstore基本信息。 注意事项 在使用CLI命令之前,您需要注意以下事项: 已开通日志服务。具体操作,请参见如何开始使用日志服务?。 已安装日志服务CLI,并完成配置。具体操作,请参见安装CLI和配置CLI。 已创建日志服务Project和Logstore。具体操作,请参见create_project和create_logstore。…

    阿里云日志服务SLS 2023年12月10日
  • 阿里云日志服务SLS开通平台操作日志功能-云淘科技

    本文介绍如何通过日志服务控制台采集平台操作日志。 前提条件 已提工单或联系您的销售经理获得平台操作日志功能(Inner-ActionTrail)使用权限。 已授权ActionTrail使用AliyunActionTrailDefaultRole角色投递日志到日志服务中。 单击云资源访问授权,根据提示完成授权。 该操作仅在首次配置时需要,且需要由阿里云账号完成…

    2023年12月10日
  • 阿里云日志服务SLSGetLogStore-云淘科技

    调用GetLogStore接口查看Logstore的详细信息。 接口说明 Host由Project名称和日志服务Endpoint构成,您需要在Host中指定Project。 已创建并获取AccessKey。更多信息,请参见访问密钥。 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维。RAM…

    阿里云日志服务SLS 2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云日志服务SLS服务日志仪表盘-云淘科技

    开通服务日志(详细日志、重要日志)功能后,您可以在CloudLens for SLS应用中查看对应的仪表盘。 具体操作,请参见查看数据报表。 日志类型 仪表盘分类 仪表盘名称 详细日志 访问监控 访问流量监控 访问监控 访问异常监控 重要日志 访问监控 消费组监控 采集监控 Logtail整体状态 采集监控 Logtail文件采集监控 采集监控 Logtai…

    阿里云日志服务SLS 2023年12月10日
  • 阿里云日志服务SLS为OSS投递任务(新版)设置告警-云淘科技

    日志服务已内置监控规则模板,您只需添加对应的告警实例即可实时监控OSS投递任务,并可通过钉钉等渠道接收到告警通知。本文介绍设置告警的相关操作。 前提条件 已创建OSS投递任务。具体操作,请参见创建OSS投递任务(新版)。步骤一:开启任务运行日志登录日志服务控制台。在Project列表区域,单击目标Project。该Project为OSS投递任务所在的Proj…

    阿里云日志服务SLS 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。