8.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.service 的依赖项处于活跃状态的 pmlogger_daily.timer 将触发 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。 目录- 与此行关联的所有存档都在此目录下创建。
args传给
pmlogger的参数。args字段的默认值是:-r- 报告存档大小和增长率。
T24h10m-
指定每天何时结束记录日志。这通常是
pmlogger_daily.service运行时的时间。默认值为24h10m,表示日志记录最迟应在开始后 24 小时 10 分钟结束。 -c config.default- 指定要使用哪个配置文件。这实际上定义了要记录哪些指标。
-v 100Mb-
指定一个数据卷被填满后,创建另一个数据卷的大小。切换到新存档后,之前记录的存档将被
pmlogger_daily或pmlogger_check压缩。