从Python监控和控制Apache网络服务器工作进程
项目描述
apache-manager软件包有助于收集关于Apache网络服务器的监控指标,并终止超出资源阈限的工作进程。它通过解析Apache的mod_status模块生成的纯文本和HTML状态页面来工作。它目前在cPython 2.7、3.5、3.6、3.7、3.8和PyPy上进行了测试。它是为Linux系统开发的,并预期在Linux系统上运行。
状态
一方面,apache-manager软件包是在使用Apache自身提供的接口(mod_status)以及Linux操作系统接口(/proc)与(Apache网络服务器)交互(和监控)多年经验的基础上开发的。
另一方面,Python软件包本身相当新:它是在2015年6月至9月期间开发的。
然后,我非常重视测试覆盖率,所以还有那个 :-).
尽管整个包已经通过自动化测试覆盖,但我(目前)还没有承诺向后兼容性,因为我首先想在一个生产(类似)环境中运行这个包一段时间,以了解其鲁棒性。我还需要评估将当前解决方案集成到监控系统中的难易程度(这是一个目标,但我不总是能在一开始就实现我的目标 :-))。
安装
《apache-manager》包可在PyPI上找到,这意味着安装应该非常简单。
$ pip install apache-manager
实际上,安装Python包有多种方式(例如,使用按用户站点包目录、虚拟环境或仅安装到系统中),我无意在这里深入讨论这个问题,所以如果你感到害怕,请在返回这些说明之前先了解你的选项 ;-)。
使用
使用《apache-manager》包有两种方式:作为命令行程序apache-manager,以及作为Python API。有关Python API的详细信息,请参阅Read the Docs上的API文档。以下是命令行界面的说明。
命令行
用法: apache-manager [OPTIONS]
命令行界面用于监控Apache网络服务器并杀死超过资源阈值的工人进程。如果没有提供任何选项,则将打印服务器指标和工人内存使用情况到终端。
支持选项
选项 |
描述 |
---|---|
-c, --collect-metrics |
收集监控指标并将它们存储在文本文件中,以便由Zabbix等监控系统集成。有关详细信息,请参阅--data-file选项。 |
-k, --kill-workers |
杀死超过--max-memory-active、--max-memory-idle和--max-time提供的阈值的Apache工人。这些阈值也可以在配置文件中定义,有关详细信息,请参阅在线文档。有关--dry-run选项,请参阅。 |
-w, --watch |
此选项会导致Apache管理器以类似于“top”的界面每10秒重绘一次收集到的指标,直到使用“q”(代表安静)或Control-C中断。 |
-a, --max-memory-active=SIZE |
杀死使用比由SIZE参数指定的更多内存的活跃Apache工人。SIZE预期为一个人类可读的内存大小,如50K(50千字节)、42M(42兆字节)、2G(2千兆字节)等。 |
-i, --max-memory-idle=SIZE |
杀死使用比由SIZE参数指定的更多内存的Apache工人(有关SIZE的可接受值,请参阅--max-memory-active)。 |
-t, --max-ss, --max-time=TIMESPAN |
杀死“自最近请求开始以来经过的时间”大于由TIMESPAN参数指定的Apache工人。TIMESPAN预期为一个人类可读的时间段,如2s(2秒)、3m(3分钟)、5h(5小时)、2d(2天)等。 |
-T, --hanging-worker-threshold=TIMESPAN |
将活跃工作进程被认为是挂起的秒数更改为 |
-f, --data-file=PATH |
更改Apache管理器在每次运行后将监控指标存储的文件路径。默认为“/tmp/apache-manager.txt”。 |
-z, --zabbix-discovery |
生成一个与Zabbix监控系统低级发现支持兼容的JSON片段。如果有合适的模板,这可以使Zabbix服务器发现任何服务器上活动的WSGI进程组的名称。这使得收集和分析特定WSGI进程组的内存使用成为可能。 |
-n, --dry-run, --simulate |
实际上不要杀死任何Apache工作进程。 |
-v, --verbose |
增加详细程度(可重复)。 |
-q, --quiet |
减少详细程度(可重复)。 |
-h, --help |
显示此信息并退出。 |
联系方式
apache-manager的最新版本可在PyPI和GitHub上获得。文档托管在Read the Docs上,包括变更日志。有关错误报告,请GitHub上创建一个问题。如果您有任何问题、建议等,请随时通过peter@peterodding.com发邮件给我。
许可
此软件受MIT许可证许可。
© 2020 Peter Odding。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定要选择哪一个,请了解更多关于安装包的信息。
源分布
构建分布
apache-manager-2.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | eeeddf882704814b3eb70def6ed6081e77e33c85ccb45d9f0336ca6d7c53cdcc |
|
MD5 | e62d35ddee61ba15e25916bce54633d5 |
|
BLAKE2b-256 | 194a35950445e4a7566572f39a4e7280cc7c2be9947da45f0cbb1bc41e397806 |
apache_manager-2.2-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c8b0215534c83a9afc2cf9f42408169d1f43dcbc5301a75acfe2c28d0912e842 |
|
MD5 | 3957c48e7f559555a36995666a7fbce5 |
|
BLAKE2b-256 | bb5d783a89a88acd1bad1bc1ec97dd257eb348f7e345b24331b855fe3952e548 |