帮助文档 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
帮助文档 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 日志服务
  4. 操作指南
  5. 数据采集
  6. Logtail采集
  7. Logtail进阶配置详解
  8. 输入配置
  9. 采集PostgreSQL查询结果

采集PostgreSQL查询结果

  • 输入配置
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

本文介绍如何通过日志服务控制台创建Logtail采集配置来采集PostgreSQL查询结果。

前提条件

  • 已在服务器上安装Linux Logtail 0.16.0及以上版本或Windows Logtail 1.0.0.8及以上版本。具体操作,请参见安装Logtail(Linux系统)或安装Logtail(Windows系统)。

    重要

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

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

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

原理

Logtail根据Logtail采集配置定期执行指定的SELECT语句,将查询结果作为数据上传到日志服务。

Logtail获取到查询结果时,会将结果中的CheckPoint字段保存到本地。当下次执行SELECT语句时,会将上一次保存的CheckPoint带入到SELECT语句中,以此实现增量数据采集。

重要

开启CheckPoint时,需要在SELECT语句中对CheckPoint字段进行排序,否则会造成数据重复或其他问题。

image

功能

  • 支持采集PostgreSQL数据库的查询结果。

  • 支持分页设置。

  • 支持时区设置。

  • 支持超时设置。

  • 支持保存CheckPoint状态。

  • 支持限制每次最大采集数量。

应用场景

  • 根据数据中的自增ID或时间等标识采集增量数据。

  • 根据筛选条件自定义同步。

操作步骤

  1. 登录日志服务控制台。

  2. 在接入数据区域,选择自定义数据插件。

  3. 选择目标Project和Logstore,单击下一步。
  4. 在机器组配置页面,配置机器组。

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

      重要

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

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

      已有机器组

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

      image

      没有可用机器组

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

      重要

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

  5. 在数据源设置页签中,设置配置名称和插件配置,单击下一步。

    • inputs为数据源配置,必选项。

      重要

      一个inputs中只允许配置一个类型的数据源。

    • processors为处理配置,用于解析数据。可选项,您可以配置一种或多种处理方式。

      如果当前的inputs配置无法满足日志解析需求,您可以在插件配置中添加processors配置,即添加Logtail插件处理数据。例如提取字段、提取日志时间、脱敏数据、过滤日志等。更多信息,请参见使用Logtail插件处理数据。

    {
      "inputs": [
        {
          "type": "service_pgsql",
          "detail": {
            "Address": "pgm-****.pg.rds.aliyuncs.com",
            "User": "****",
            "Password": "*******",
            "DataBase": "****",
            "Limit": true,
            "PageSize": 100,
            "StateMent": "select * from specialalarmtest where id > $1 order by id",
            "CheckPoint": true,
            "CheckPointColumn": "id",
            "CheckPointStart": "0",
            "CheckPointSavePerPage": true,
            "CheckPointColumnType": "int",
            "IntervalMs": 1000
          }
        }
      ]
    }

    参数

    类型

    是否必选

    说明

    type

    string

    是

    数据源类型,固定为service_pgsql。

    Address

    string

    否

    PostgreSQL地址。例如pgm-****.pg.rds.aliyuncs.com。

    不配置时,默认使用127.0.0.1:5432。

    User

    string

    否

    用于登录PostgreSQL数据库的账号名称。

    不配置时,默认使用root。

    Password

    string

    否

    用于登录PostgreSQL数据库的账号密码。不配置时,默认为空。

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

    重要

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

    DataBase

    string

    否

    PostgreSQL数据库名称。

    DialTimeOutMs

    int

    否

    连接PostgreSQL数据库超时时间,单位:ms。

    不配置时,默认使用5000 ms。

    ReadTimeOutMs

    int

    否

    读取PostgreSQL查询结果的超时时间,单位:ms。

    不配置时,默认使用5000 ms。

    StateMent

    string

    否

    SELECT语句。

    设置CheckPoint为true时,StateMent中SELECT语句的where条件中必须包含CheckPoint列(CheckPointColumn参数),并将该列的值设置为$1。例如:设置CheckPointColumn为id,设置StateMent为SELECT * from ... where id > $1。

    Limit

    boolean

    否

    是否使用Limit分页。

    不配置时,默认使用false,表示不使用Limit分页。

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

    PageSize

    int

    否

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

    MaxSyncSize

    int

    否

    每次同步最大记录数。

    不配置时,默认使用0,表示无限制。

    CheckPoint

    boolean

    否

    是否使用CheckPoint。

    不配置时,默认使用false,表示不使用CheckPoint。

    CheckPointColumn

    string

    否

    CheckPoint列名称。

    CheckPoint为true时必须配置。

    警告

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

    CheckPointColumnType

    string

    否

    CheckPoint列的数据类型,支持int和time。int类型的内部存储为int64,time类型支持PostgreSQL的时间类型。

    CheckPoint为true时必须配置。

    CheckPointStart

    string

    否

    CheckPoint列的初始值。

    CheckPoint为true时必须配置。

    CheckPointSavePerPage

    boolean

    否

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

    • true:每次分页时保存一次CheckPoint。

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

    IntervalMs

    int

    是

    同步间隔,单位:ms。

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

    重要

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

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

修改本地配置

如果您没有在插件配置中输入真实的Address、User、Password等信息,可以在采集配置下发到本地后进行手动修改。

Linux系统

  1. 登录Logtail所在服务器。

  2. 打开/usr/local/ilogtail/user_log_config.json文件,找到service_pgsql关键字,修改Address、User、Password等字段。

  3. 执行以下命令重启Logtail。

    sudo /etc/init.d/ilogtaild stop; sudo /etc/init.d/ilogtaild start

Windows系统

  1. 登录Logtail所在服务器。

  2. 打开C:\Program Files\Alibaba\Logtail\user_log_config.json文件,找到service_pgsql关键字,修改Address、User、Password等字段。

    Windows 64位操作系统和Windows 32位操作系统文件位置不同,具体请参见文件路径。

  3. 执行以下命令重启Logtail。

    1. 选择开始 > 控制面板 > 管理工具 > 服务。

    2. 在服务对话框中,选择对应的服务。

      • 如果是0.x.x.x版本,选择LogtailWorker服务。

      • 如果是1.0.0.0及以上版本,选择LogtailDaemon服务。

    3. 右键选择对应的操作,包括启动、停止或重新启动。

问题排查

使用Logtail采集日志后,如果预览页面或查询页面无数据,您可以参见Logtail采集日志失败的排查思路进行排查。

数据库表和日志样例

PostgreSQL数据库表结构样例和Logtail采集到的日志样例如下所示。

  • 表结构样例

    //创建表。
    CREATE TABLE IF NOT EXISTS specialalarmtest (
        id BIGSERIAL NOT NULL,
        time TIMESTAMP NOT NULL,
        alarmtype varchar(64) NOT NULL,
        ip varchar(16) NOT NULL,
        COUNT INT NOT NULL,
        PRIMARY KEY (id)
    );
    
    //插入数据。
    insert into specialalarmtest (time, alarmtype, ip, count) values(now(), 'NO_ALARM', '10.10.***.***', 0);
    insert into specialalarmtest (time, alarmtype, ip, count) values(now(), 'NO_ALARM', '10.10.***.***', 1);
    insert into specialalarmtest (time, alarmtype, ip, count) values(now(), 'NO_ALARM', '10.10.***.***', 2);
    insert into specialalarmtest (time, alarmtype, ip, count) values(now(), 'NO_ALARM', '10.10.***.***', 3);
                            
  • 日志样例 日志样例

相关文章

Kubernetes标准输出(新版) 2025-04-22 11:05

Logtail输入配置支持采集容器标准输出。本文主要介绍新版标准输出采集配置。 功能特点 Logtail支持采集容器内产生的标准输出,并附加容器的相关元数据信息一起上传到日志服务。Logtail具备以下功能特点。

文本输入插件 2025-04-22 11:05

Logtail输入配置支持采集文本日志,本文主要介绍其配置方法。 功能入口 采集主机文本日志: 主机文本日志采集(自动安装)

Kubernetes标准输出(旧版) 2025-04-22 11:05

Logtail输入配置支持采集容器标准输出。本文主要介绍旧版标准输出采集配置。 功能特点 Logtail支持采集容器内产生的标准输出,并附加容器的相关元数据信息一起上传到日志服务。Logtail具备以

通过DaemonSet方式采集Kubernetes容器文本日志 2025-04-22 11:05

如果需要只使用一个Logtail实例收集Kubernetes节点上所有容器的日志,可以使用DaemonSet方式在Kubernetes集群上部署Logtail。本文介绍DaemonSet方式采集容器文本日志的工作原理、使用限制、前提条件、操作步骤等信息。 工作原理

通过Sidecar方式采集Kubernetes容器文本日志 2025-04-22 11:05

如果需要每个Pod使用单独的Logtail实例来收集Pod内所有容器的日志,可以使用Sidecar方式在Kubernetes集群上部署Logtail。本文介绍Sidecar方式采集容器文本日志的工作原理、使用限制、前提条件、操作步骤等信息。 工作原理

通过DaemonSet方式采集Kubernetes容器标准输出(旧版) 2025-04-22 11:04

本文介绍如何通过控制台创建iLogtail采集配置,并以DaemonSet采集方式采集容器标准输出(旧版)。 前提条件

目录
Copyright © 2025 your company All Rights Reserved. Powered by 博智数字服务平台.
闽ICP备08105208号-1