从 Nagios 监控 PHP 会话大小有哪些选项?我想识别超过特定阈值的会话,因为它们中存储了太多数据。
我能想到的一个选择是列出文件的大小/var/lib/php/session
并计算超过一定阈值的文件数量。
免责声明:我甚至不使用 PHP - 此文件夹中文件的大小是否是会话大小的合适且足够准确的指标?还有其他方法吗?
答案1
这取决于 - 如果您使用基于文件的会话处理程序并且这是路径使用,那么这将使您对序列化会话数据的大小有一个大致的了解 - 但它对每个 PHP 实例的内存使用量的影响会高得多(并且不一定可预测)。
但具体怎么做取决于你想要实现什么。更好的解决方案可能是编写自己的会话处理程序并在其中包含日志记录 - 可能使用一些额外的逻辑,例如仅在超过阈值时才向 nagios 报告,或者将大小记录到临时聚合器。
答案2
每个文件(文本文件)都是一个 PHP 会话。会话的路径如您所写(在我的计算机上是 /var/lib/php5/*)。每个会话都有以下名称:
sess_IDsession
我认为会话文件的大小是会话大小的合适指标,因为一个文件中存储了应用程序一个 PHP 会话的所有数据。因此,最好的方法是编写一个脚本,按大小列出会话文件,并在某些文件达到特定阈值时提醒您。