本文介绍如何创建外部存储,建立日志服务与MySQL数据库的关联。

前提条件

  • 已采集数据到日志服务。具体操作,请参见数据采集
  • 已存储数据到MySQL数据库。

背景信息

日志服务外部存储功能支持日志服务与阿里云RDS MySQL数据库、在阿里云ECS上自建的MySQL数据库或其他场景下自建的MySQL数据库关联,您还可以将查询分析结果写入MySQL数据库中,便于进一步处理结果。创建外部MySQL存储的最佳实践,请参见关联Logstore与MySQL数据库进行查询分析

操作步骤

  1. 设置白名单。
    • 如果是RDS MySQL数据库,需添加白名单地址100.104.0.0/16、11.194.0.0/16和11.201.0.0/16。更多信息,请参见设置IP白名单
    • 如果是专有网络下ECS上自建的MySQL数据库且ECS上设置了安全组,需设置安全组规则,允许100.104.0.0/16、11.194.0.0/16和11.201.0.0/16网段访问。具体操作,请参见添加安全组规则
    • 如果是自建的MySQL数据库,需添加白名单地址100.104.0.0/16、11.194.0.0/16和11.201.0.0/16到MySQL数据库的安全组。
  2. 创建ExternalStore。
    1. 安装日志服务CLI。更多信息,请参见概述
    2. 创建配置文件/root/config.json
    3. /root/config.json文件中添加如下脚本,并根据实际情况替换参数配置。
      {
      "externalStoreName":"storename",
      "storeType":"rds-vpc",
      "parameter":
         {
         "region":"cn-qingdao",
         "vpc-id":"vpc-m5eq4irc1pucp*******",
         "instance-id":"i-m5eeo2whsn*******",
         "host":"localhost",
         "port":"3306",
         "username":"root",
         "password":"****",
         "db":"scmc",
         "table":"join_meta"
         }
      }
      参数 说明
      externalStoreName ExternalStore名称,必须小写。
      storeType 数据源类型,固定为rds-vpc。
      region 地域。详细说明如下:
      • 如果是RDS MySQL数据库,则配置region为RDS实例所在地域。
      • 如果是专有网络下ECS上自建的MySQL数据库,则配置region为ECS实例所在地域。
      • 如果是其他场景下自建的MySQL数据库,则配置region为空字符串,即"region": ""
      vpc-id VPC ID。详细说明如下:
      • 如果是专有网络下的RDS MySQL数据库,则配置vpc-id为RDS实例所属专有网络的ID。
      • 如果是专有网络下ECS上自建的MySQL数据库,则配置vpc-id为ECS实例所属专有网络的ID。
      • 如果是经典网络下的RDS MySQL数据库或其他场景下自建的MySQL数据库,则配置vpc-id空字符串,即"vpc-id": ""
      instance-id 实例ID。详细说明如下:
      • 如果是RDS MySQL数据库,则配置instance-id为RDS实例的VpcCloudInstanceId。

        您需要通过调用DescribeDBInstanceAttribute接口获取VpcCloudInstanceId。具体操作,请参见获取RDS实例的VpcCloudInstanceId

      • 如果是专有网络下ECS上自建的MySQL数据库,则配置instance-id为ECS实例ID。
      • 如果是其他场景下自建的MySQL数据库,则配置instance-id为空字符串,即"instance-id": ""
      host 数据库地址。详细说明如下:
      • 如果是专有网络下的RDS MySQL数据库,则配置host为RDS实例的内网地址。
      • 如果是专有网络下ECS上自建的MySQL数据库,则配置host为ECS的私网IP地址。
      • 如果是其他场景下自建的MySQL数据库,则配置host为其可访问的host地址。
      port 端口号。详细说明如下:
      • 如果是RDS MySQL数据库,则配置port为RDS实例的端口号。
      • 如果是专有网络下ECS上自建的MySQL数据库,则配置port为ECS上MySQL的服务端口。
      • 如果是其他场景下自建的MySQL数据库,则配置port为MySQL的服务端口。
      username 数据库用户名。
      password 数据库密码。
      db 数据库。
      table 数据库表。
    4. 创建ExternalStore。
      其中project_name为日志服务Project名称,请根据实际情况替换。
      aliyunlog log create_external_store --project_name="log-rds-demo" --config="file:///root/config.json" 

相关操作

  • 更新MySQL外部存储。
    aliyunlog log update_external_store --project_name="log-rds-demo" --config="file:///root/config.json" 
  • 删除MySQL外部存储。
    aliyunlog log delete_external_store --project_name="log-rds-demo" --store_name=abc
  • 获取RDS实例的VpcCloudInstanceId。
    1. 使用RDS实例所在的阿里云账号登录RDS控制台。
    2. 打开DescribeDBInstanceAttribute调试页面。
    3. 配置DBInstanceId,然后单击发起调用
    4. 在返回结果中,获取VpcCloudInstanceId。

后续步骤

Logstore和MySQL联合查询