添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
采集MySQL查询结果

采集MySQL查询结果

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

本文介绍如何创建 Logtail 采集配置来采集 MySQL 查询结果。

前提条件

  • 已在服务器上安装 Linux Logtail 0.16.0 及以上版本或 Windows Logtail 1.0.0.8 及以上版本。具体操作,请参见 安装、运行、升级、卸载 Logtail

    重要

    请确保用于安装 Logtail 的服务器可连接目标 MySQL 数据库。

  • MySQL 数据库中,设置白名单为 Logtail 所在服务器的 IP 地址。

    例如 RDS MySQL 数据库的白名单设置,请参见 设置 IP 白名单

  • 使用 CRD-AliyunPipelineConfig 采集 MySQL 查询结果,需要确保集群已经安装 Logtail 组件。

    具体操作,请参见 安装 Logtail 组件

操作步骤

日志服务控制台

  1. 登录 日志服务控制台

  2. 单击控制台页面右侧的 快速接入数据 卡片。

    image

  3. 接入数据 页面,选择 MySQL 查询结果-插件

  4. 选择目标 Project Logstore,单击 下一步

  5. 机器组配置 页面,配置机器组。

    1. 根据实际需求,选择使用场景和安装环境。

      重要

      无论是否已有机器组,都必须根据实际需求正确选择使用场景和安装环境,这将影响后续的页面配置。

    2. 确认目标机器组已在 应用机器组 区域,单击 下一步

      已有机器组

      源机器组 列表选择目标机器组。

      image

      没有可用机器组

      单击 创建机器组 ,在 创建机器组 面板设置相关参数。机器组标识分为 IP 地址 用户自定义标识 ,更多信息请参见 创建用户自定义标识机器组(推荐) 创建 IP 地址机器组

      重要

      创建机器组后立刻应用,可能因为连接未生效,导致心跳为 FAIL ,您可单击 自动重试 。如果还未解决,请参见 Logtail 机器组无心跳 进行排查。

  6. 数据源设置 页签中,设置 配置名称 插件配置 ,然后单击 下一步

    您可以通过表单配置方式或编辑器配置(JSON 配置)方式完成数据源设置。详细配置,请参见 MySQL 输入插件

    image

  7. 创建索引和预览数据,然后单击 下一步 。日志服务默认开启全文索引。您也可以根据采集到的日志,手动创建字段索引,或者单击 自动生成索引 ,日志服务将自动生成字段索引。更多信息,请参见 创建索引

    重要

    如果需要查询日志中的所有字段,建议使用全文索引。如果只需查询部分字段、建议使用字段索引,减少索引流量。如果需要对字段进行分析(SELECT 语句),必须创建字段索引。

  8. 单击 查询日志 ,系统将跳转至 Logstore 查询分析页面。
    您需要等待 1 分钟左右,待索引生效后,才能在 原始日志 页签中,查看已采集到的日志。更多信息,请参见 查询与分析快速指引

CRD-AliyunPipelineConfig

本文以 ACK 集群为例,介绍如何创建采集配置。

  1. 登录 容器服务管理控制台 ,在左侧导航栏选择 集群列表

  2. 集群列表 页面中,单击目标集群 操作 列下的 更多 ,然后单击 管理集群

  3. 创建名为 example-k8s-file.yaml 的文件。

    参数说明

    示例

    apiVersion: telemetry.alibabacloud.com/v1alpha1
    # 创建一个 ClusterAliyunPipelineConfig
    kind: ClusterAliyunPipelineConfig
    metadata:
      # 设置资源名,在当前Kubernetes集群内唯一。该名称也是创建出的iLogtail采集配置名
      name: example-crd-mysql
    spec:
      # 指定目标project
      project:
        name: k8s-log-clusterid
      # 创建用于存储日志的 Logstore
      logstores:
        - name: crd-mysql-test
      # 定义iLogtail采集配置
      config:
        # 日志样例(可不填写)
        sample: ''
        inputs:
        - Type: service_mysql
          Address: "rm-*.mysql.rds.aliyuncs.com"
          CheckPoint: true
          CheckPointColumn: id
          CheckPointColumnType: int
          CheckPointSavePerPage: true
          CheckPointStart: "0"
          Database: ****
          IntervalMs: 1000
          Limit: true
          MaxSyncSize: 100
          PageSize: 100
          User: ****
          Password: *******
          StateMent: "select * from test where id > ? order by id"
        # 定义输出插件
        flushers:
          # 使用flusher_sls插件输出到指定Logstore。
          - Type: flusher_sls
            Logstore: crd-mysql-test
            Endpoint: cn-hangzhou.log.aliyuncs.com
            Region: cn-hangzhou
            TelemetryType: logs

    Type string (必选)

    数据源类型,固定为 service_mysql

    Address string (可选)

    MySQL 地址,例如 rm-****.mysql.rds.aliyuncs.com

    默认值为 127.0.0.1:3306

    地址类型:

    • 内网(专有网络):仅用于 VPC 下的实例(ECS、ACK 等阿里云实例)内网访问。

    • 外网地址:业务部署在其他 VPC 或本地机器上,需要通过外网地址访问实例,但您需提前手动申请外网地址。具体操作,请参见 申请或释放外网地址

    说明

    由于外网网络易波动,建议在业务中使用内网地址进行连接。

    User string (可选)

    用于登录 MySQL 数据库的用户名称。默认值为 root

    Password string (可选)

    登录 MySQL 数据库的用户密码。

    如果安全需求较高,建议将用户名称和密码配置为 xxx ,待采集配置同步至本地机器后,在本地文件 /usr/local/ilogtail/user_log_config.json 中找到对应配置进行修改。具体操作,请参见 采集 MySQL 查询结果

    重要

    如果您在控制台上修改了此参数,同步至本地后会覆盖本地的配置。

    DataBase string (可选)

    MySQL 数据库名称。

    DialTimeOutMs int (可选)

    连接 MySQL 数据库超时时间,默认值为 5000,单位:ms。

    ReadTimeOutMs int (可选)

    读取 MySQL 查询结果的超时时间,默认值为 5000,单位:ms。

    StateMent string (可选)

    SELECT 语句。

    设置 CheckPoint true 时, Statement SELECT 语句的 where 条件中必须包含 CheckPoint 列( CheckPointColumn )。支持使用半角问号(?)表示替换符,与 CheckPoint 列配合使用。

    例如设置 CheckPointColumn id ,设置 CheckPointStart 0 ,设置 StateMent SELECT * from ... where id > ? 。则每次采集后,系统会保存最后一条数据的 ID 作为 Checkpoint,下次采集时查询语句中的半角问号(?)将被替换为该 Checkpoint 对应的 ID。

    Limit boolean (可选)

    是否使用 Limit 分页。

    • true :使用。

    • false (默认值):不使用。

    建议使用 Limit 进行分页。设置 Limit true 后,进行 SQL 查询时,系统将自动在 SELECT 语句中追加 LIMIT 语句。

    PageSize int (可选)

    分页大小,Limit 为 true 时必须配置。

    MaxSyncSize int (可选)

    每次同步最大记录数。默认值为 0,表示无限制。

    CheckPoint boolean (可选)

    是否使用 CheckPoint。

    • true:使用。

    • false(默认值):不使用。

    CheckPoint 可作为下次采集数据的起点,实现数据增量采集。

    CheckPointColumn string (可选)

    CheckPoint 列名称。

    设置 CheckPoint true 时,需要配置。

    警告

    该列的值必须递增,否则可能会出现数据漏采集问题(每次查询结果中的最大值将作为下次查询的输入)。

    CheckPointColumnType string (可选)

    设置 CheckPoint true 时,需要配置。

    CheckPoint 列的数据类型,支持 int time。int 类型的内部存储为 int64,time 类型支持 MySQL date、datetime、time 类型。

    CheckPointStart string (可选)

    设置 CheckPoint true 时,需要配置。

    CheckPoint 列的初始值。

    CheckPointSavePerPage boolean (可选)

    设置 CheckPoint true 时,需要配置。

    是否每次分页时保存一次 CheckPoint。

    • true (默认值):每次分页时保存一次 CheckPoint。

    • false :每次同步完成后保存一次 CheckPoint。

    IntervalMs int (必选)

    同步间隔,默认值为 60000,单位:ms。

  4. 执行 kubectl apply -f example-k8s-file.yaml ,Logtail 开始采集 MySQL 数据。

  5. 登录 日志服务控制台 ,在 Project 列表 ,单击打开目标 Project。

  6. 在对应的日志库右侧的 图标 图标,选择 查询分析 ,查看查询日志。

    image