除IP外,我们可以使用标签(userdefined-id)来动态定义机器组。

自定义标识在以下场景中具有明显优势:

  • VPC等自定义网络环境中,可能出现不同机器IP地址冲突的问题,导致服务端无法管理Logtail。使用自定义标识可以避免此类情况的发生。
  • 多台机器通过同一个标签实现机器组弹性伸缩。您只需为新增的机器配置相同的自定义标识,服务端可自动识别,并将其添加至机器组中。

操作步骤

使用自定义标识来动态定义机器组,需按以下流程配置:
  1. 开启userdefined-id。
    • Linux Logtail

      通过文件/etc/ilogtail/user_defined_id 来设置userdefined-id。

      例如,设置自定义机器标识如下:

      #cat /etc/ilogtail/user_defined_id
    • Windows Logtail

      通过文件C:\LogtailData\user_defined_id来设置userdefined-id。

      例如,设置自定义机器标识如下:

      C:\LogtailData>more user_defined_id
      aliyun-ecs-rs1e16355

      添加aliyun-ecs-rs1e16355 到机器组,1分钟之内即可生效。

      说明
      若目录 /etc/ilogtail/C:\LogtailData或文件/etc/ilogtail/user_defined_idC:\LogtailData\user_defined_id不存在,请手动创建。
  2. 创建机器组。
    1. 机器组列表页面单击右上角的创建机器组
    2. 填写机器组配置。
      • 机器组名称。填写自定义的机器组名称。
      • 机器组标识。选择用户自定义标识
      • 用户自定义标识。填写步骤一中配置的userdefined-id。
    3. 单击确认结束配置。需要扩容机器时,只需要在新服务器上开启userdefined-id即可。
  3. 查看机器组状态。

    机器组列表页面,单击目标机器组右侧的查看状态,可以查看使用相同自定义标识的机器列表及其心跳状态。

其他操作

禁用 userdefined-id

如果想恢复使用机器IP作为标识,请删除user_defined_id文件,1分钟之内即可生效。

rm -f /etc/ilogtail/user_defined_id
  • Linux系统
    rm -f /etc/ilogtail/user_defined_id
  • Windows系统
    del C:\LogtailData\user_defined_id

生效时间

新增、删除、修改user_defined_id文件后,默认情况下,1分钟之内即可生效。

如需立即生效,请执行以下命令重启Logtail:
/etc/init.d/ilogtaild stop
/etc/init.d/ilogtaild start
  • Linux系统
    /etc/init.d/ilogtaild stop
    /etc/init.d/ilogtaild start
  • Windows系统

    Windows控制面板 > 管理工具 > 服务,在服务列表中右键点击LogtailWorker服务,选择重新启动以使配置生效。

示例

系统通常由多个模块组成,每个模块可以包含多台机器,比如常见网站分为前端HTTP请求处理模块,缓存模块,逻辑处理模块和存储模块,每部分都可以进行单独的水平扩展,因此在新增机器时需要能够实时进行日志采集。

  1. 创建自定义标识。

    安装完成Logtail客户端后,为服务器开启userdefined-id。对于示例场景中的模块可以分别分成4类机器标识:http_module、cache_module、logic_module和store_module。

  2. 创建机器组。

    创建机器组时,用户自定义标识请填写机器组名称对应的自定义标识。http_module机器组如下图所示:

    图 1. 创建机器组


  3. 可以在机器组查看状态中查看使用相同自定义标识的机器列表及其心跳状态。
    图 2. 查看机器组状态


  4. 若前端模块增加机器10.1.1.3,只需在新服务器上开启userdefined-id。成功执行操作后可以在机器组查看状态中看到新增服务器。
    图 3. 查看新增服务器