7.6. systemd 单元和 pmlogger
当您部署 pmlogger 服务时,无论是作为监控自身的单个主机,还是作为一个具有从多个远程主机收集指标的单个主机的 pmlogger 场,都会自动部署几个关联的 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) 手册页。
管理 pmlogger 触发的 systemd 服务
您可以为 pmlogger 实例收集的数据创建一个自动的自定义归档管理系统。这可以通过使用控制文件来完成。这些控制文件是:
对于主
pmlogger实例:-
etc/pcp/pmlogger/control -
/etc/pcp/pmlogger/control.d/local
-
对于远程主机:
/etc/pcp/pmlogger/control.d/remote将 remote 替换为您需要的文件名。
- 注意
-
主
pmlogger实例必须与它连接的pmcd运行在同一主机上。您不需要有一个主实例,如果一个中央主机正在连接到远程主机上运行的pmcd实例的几个pmlogger实例上收集数据,则在您的配置中可能也不需要它。
文件应为要记录的每个主机包含一行。自动创建的主记录器实例的默认格式类似如下:
这些字段包括:
Host- 要记录的主机的名称
P?-
代表"Primary?"此字段表示主机是否是主记录器实例,
y,或不是,n。在您配置中的所有文件中只能有一个主记录器,它必须与它连接的pmcd运行在同一个主机上。 S?-
代表"Socks?"此字段表示此记录器实例是否需要使用
SOCKS协议,通过防火墙连接到pmcd,y或不需要,n。 directory- 与此行关联的所有存档都会在此目录中创建。
args传递给
pmlogger的参数。args字段的默认值有:-r- 报告存档大小和增长率。
T24h10m-
指定每天何时结束记录日志。这通常是
pmlogger_daily.service运行时的时间。默认值24h10m表示日志记录最迟应当在开始后 24 小时 10 分钟结束。 -c config.default- 指定要使用哪个配置文件。这实际上定义了要记录哪个指标。
-v 100Mb-
指定一个数据卷被填充和另一个数据被创建的大小。切换到新存档后,之前记录的存档将被
pmlogger_daily或pmlogger_check压缩。