6.6. systemd units 和 pmlogger

当您部署 pmlogger 服务时,可以作为一个单一主机监控自身或 pmlogger farm,且单个主机从多个远程主机收集指标,则代表自动部署几个关联的 systemd 服务和计时器单元。这些服务和计时器提供了常规检查,以确保 pmlogger 实例正在运行,重启任何缺少的实例,并执行存档管理,如文件压缩。

pmlogger 通常部署的检查和内务服务有:

pmlogger_daily.service
默认情况下,在午夜后马上运行,以聚合、压缩和轮转一个或多个 PCP 存档集合。另外,剔除比限制旧的存档,默认为 2 周。由 pmlogger_daily.timer 单元触发,pmlogger.service 单元需要该单元。
pmlogger_check
执行半小时检查 pmlogger 实例是否正在运行。重启任何缺少的实例并执行任何所需的压缩任务。由 pmlogger_check.timer 单元触发,pmlogger.service 单元需要该单元。
pmlogger_farm_check
检查所有配置的 pmlogger 实例的状态。重启任何缺少的实例。将所有非主实例迁移到 pmlogger_farm 服务。由 pmlogger_farm_check.timer 触发,pmlogger_farm.service 单元需要它,而 pmlogger.service 单元需要这个单元。

这些服务通过一系列正依赖项进行管理,这意味着在激活主 pmlogger 实例时都启用了这些服务。请注意,虽然 pmlogger_daily.service 默认被禁用,但 pmlogger_daily.timer 通过 pmlogger.service 的依赖项处于活跃状态时,将触发 pmlogger_daily.service 运行。

pmlogger_daily 也与 pmlogrewrite 集成,以便在合并前自动重写存档。这有助于确保元数据一致性将更改的生产环境和 PMDA。例如,如果在日志记录间隔期间更新一个监控主机上的 pmcd,则可能会更新主机上一些指标的语义,从而使新存档与来自该主机记录的存档不兼容。如需更多信息,请参阅 pmlogrewrite (1) man page。

管理 pmlogger触发的 systemd 服务

您可以为 pmlogger 实例收集的数据创建一个自动自定义归档管理系统。这可以通过控制文件来完成。这些控制文件是:

  • 对于主 pmlogger 实例:

    • etc/pcp/pmlogger/control
    • /etc/pcp/pmlogger/control.d/local
  • 对于远程主机:

    • `/etc/pcp/pmlogger/control.d/remote

      remote 替换为您的所需文件名。

      注意
      pmlogger 实例必须与它连接到的 pmcd 在同一主机上运行。如果一个中央主机正在收集数据到远程主机上运行的 pmcd 实例,则不需要主实例。

文件应包含要记录的每个主机的一行。自动创建的主日志记录器实例的默认格式类似如下:

# === LOGGER CONTROL SPECIFICATIONS ===
#
#Host   	 P?  S?    directory   		 args

# local primary logger
LOCALHOSTNAME    y   n    PCP_ARCHIVE_DIR/LOCALHOSTNAME    -r -T24h10m -c config.default -v 100Mb

这些字段包括:

主机
要记录的主机的名称
P?
代表"主要" 此字段指示主机是主日志记录器实例 y,或不是 n。您配置中的所有文件只能有一个主日志记录器,它必须与它连接到的 pmcd 在同一个主机上运行。
S?
代表"Socks?" 此字段指示此日志记录器实例是否需要使用 SOCKS 协议来通过防火墙、yn 连接到 pmcd
目录
与此行关联的所有存档都会在此目录中创建。
args

传递给 pmlogger 的参数。

args 字段的默认值有:

-r
报告存档大小和增长率。
T24h10m
指定当天结束日志的时间。这通常是 pmlogger_daily.service 运行时的时间。默认值为 24h10m,表示日志记录应当在最新的 24 小时和 10 分钟后结束。
-c config.default
指定要使用的配置文件。这实际上定义了要记录什么指标。
-v 100Mb
指定将一个数据卷被填充并创建了另一个数据的大小。切换到新存档后,之前记录的存档将由 pmlogger_dailypmlogger_check 压缩。

其他资源

  • pmlogger (1) man page
  • pmlogger_daily(1) man page
  • pmlogger_check(1) man page
  • pmlogger.control(5) man page
  • pmlogrewrite (1) man page