全部产品
Search
文档中心

日志服务:关联MySQL数据源

更新时间:Feb 26, 2024

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

前提条件

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

  • 已存储数据到MySQL数据库。

  • MySQL数据库在阿里云VPC内网域内。

背景信息

日志服务外部存储功能支持日志服务与阿里云RDS MySQL数据库、在阿里云ECS上自建的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网段访问。具体操作,请参见添加安全组规则

  2. 创建ExternalStore。

    1. 安装日志服务CLI。更多信息,请参见CLI概述

    2. 创建配置文件/home/config.json

    3. /home/config.json文件中添加如下脚本,并根据实际情况替换参数配置。

      {
          "externalStoreName":"sls_join_meta_store",
          "storeType":"rds-vpc",
          "parameter":{
              "region":"cn-qingdao",
              "vpc-id":"vpc-m5eq4irc1pucp*******",
              "host":"localhost",
              "port":"3306",
              "username":"user",
              "password":"****",
              "db":"scmc",
              "table":"join_meta"
          }
      }

      参数

      说明

      externalStoreName

      ExternalStore名称,必须小写。

      storeType

      数据源类型,固定为rds-vpc。

      region

      地域。详细说明如下:

      • 如果是RDS MySQL数据库,则配置region为RDS实例所在地域。

      • 如果是专有网络下ECS上自建的MySQL数据库,则配置region为ECS实例所在地域。

      重要

      RDS实例或ECS实例必须与日志服务Project处于同一地域。

      vpc-id

      VPC ID。详细说明如下:

      • 如果是专有网络下的RDS MySQL数据库,则配置vpc-id为RDS实例所属专有网络的ID。

      • 如果是专有网络下的ADB MySQL数据库,则配置vpc-id为ADB实例所属专有网络的ID。

      • 如果是专有网络下ECS上自建的MySQL数据库,则配置vpc-id为ECS实例所属专有网络的ID。

      • 如果数据库host可以通过公网访问,则vpc-id无需提供

      host

      数据库地址。详细说明如下:

      • 如果是专有网络下的RDS MySQL数据库,则配置host为RDS实例的内网地址(内网域名或内网IP地址)。

      • 如果是专有网络下的ADB MySQL数据库,则配置host为ADB实例的内网地址(内网域名或内网IP地址)。

      • 如果是专有网络下ECS上自建的MySQL数据库,则配置host为ECS的私网IP地址。

      • 如果数据库通过公网可以访问,则配置对应的公网域名或公网IP地址。

      port

      端口号。详细说明如下:

      • 如果是RDS MySQL数据库,则配置port为RDS实例的端口号。

      • 如果是专有网络下ECS上自建的MySQL数据库,则配置port为ECS上MySQL的服务端口。

      username

      数据库用户名。

      password

      数据库密码。

      db

      数据库。

      table

      数据库表。

    4. 创建ExternalStore。

      其中project_name为日志服务Project名称,请根据实际情况替换。

      aliyunlog log create_external_store --project_name="log-rds-demo" --config="file://./home/config.json" 
    5. 查询ExternalStore信息

      命令执行成功后,无响应消息。您可以执行aliyunlog log get_external_store --project_name="log-rds-demo" --store_name="sls_join_meta_store" --format-output=json查询RDS MySQL外部数据源详细信息。

      {
       "externalStoreName": "sls_join_meta_store",
       "parameter": {
       "db": "scmc",
       "host": "rm-bp1******rm76.mysql.rds.aliyuncs.com",
       "instance-id": "",
       "port": "3306",
       "region": "cn-qingdao",
       "table": "join_meta",
       "timezone": "",
       "username": "user",
       "vpc-id": "vpc-m5eq4irc1pucp*******"
       },
       "storeType": "rds-vpc"
      }
  3. 关联外部数据源后,您可以在日志服务控制台通过查询分析语句* | select * from sls_join_meta_store查询关联的RDS MySQL外部数据源数据。

相关操作

  • 更新MySQL外部存储。

    aliyunlog log update_external_store --project_name="log-rds-demo" --config="file://./home/config.json" 
  • 删除MySQL外部存储。

    aliyunlog log delete_external_store --project_name="log-rds-demo" --store_name=sls_join_meta_store

后续步骤

Logstore和MySQL联合查询