跳转到主要内容

从Python监控和控制Apache网络服务器工作进程

项目描述

https://travis-ci.org/xolox/python-apache-manager.svg?branch=master https://coveralls.io/repos/xolox/python-apache-manager/badge.svg?branch=master

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

将活跃工作进程被认为是挂起的秒数更改为(有关的合理值,请参阅<--max-time>)。

-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的最新版本可在PyPIGitHub上获得。文档托管在Read the Docs上,包括变更日志。有关错误报告,请GitHub上创建一个问题。如果您有任何问题、建议等,请随时通过peter@peterodding.com发邮件给我。

许可

此软件受MIT许可证许可。

© 2020 Peter Odding。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定要选择哪一个,请了解更多关于安装包的信息。

源分布

apache-manager-2.2.tar.gz (39.8 kB 查看哈希值)

上传时间

构建分布

apache_manager-2.2-py2.py3-none-any.whl (30.3 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者