IBM Cloud Application Performance Management

配置 Python 代理程序

您必须配置 Monitoring Agent for Python,以便代理程序可从正受监视的 Python 应用程序收集数据。

开始之前

配置代理程序之前,确保 Apache HTTPD 服务器已启动。

打开 Apache HTTPD 服务器 httpd.conf 配置文件并确保 mod_status 已装入。

确保在不对 httpd.conf 配置文件进行任何代码更改的情况下,命令 apachectl status 在受监视的 Apache 服务器中工作正常。 如果它工作不正常,您可能无法在仪表板中看到某些度量,例如,“繁忙的工作程序”和“空闲的工作程序”。
注: 必须安装 Lynx,命令 apachectl status 才能正常工作。 有关启用命令的更多信息,请参阅 apachectl - Apache HTTP Server Control Interface
如果这不是您第一次配置代理程序实例,请遵循下列步骤:
  1. 停止代理程序实例。
  2. 遵循以下某个过程以配置代理程序实例:
  3. 确保将新的中间件部署到 Django 设置文件夹。 要执行该操作,请确保更新 Django 设置文件夹中的 kpg_numeric_string.py 文件。
  4. 重新启动 Apache 服务器。

关于此任务

为避免在配置代理程序时发生权限问题,请确保使用用于安装代理程序的相同 root 用户或非 root 用户标识。 如果以一个选中的用户身份安装了代理程序,并且想要以其他用户身份配置代理程序,请参阅以非 root 用户身份配置代理程序。 如果以一个选中的用户身份安装和配置了代理程序,并且想要以其他用户身份启动代理程序,请参阅以非 root 用户身份启动代理程序

Python 代理程序是一个多实例代理程序;必须手动创建第一个实例并启动代理程序。 “受管系统名称”包含指定的实例名称,例如,instance_name:host_name:pc,其中,pc 是两字符产品代码。 “受管系统名称”限制为 32 个字符。 指定的实例名称限制为 28 个字符(减去主机名长度后)。 例如,如果指定 Python2 作为实例名称,那么受管系统名称为 Python2:hostname:PG
要点: 如果指定长实例名称,那么会截断“受管系统名称”,并且代理程序代码无法正确显示。

过程

下一步做什么

启动代理程序实例后,将在临时目录中生成并提供用于定制监视中间件的注入脚本。

代理程序启动后,注入 shell 脚本会自动运行。 如果希望确保正确执行此步骤,那么可确保存在以下文件:
  • install_dir/tmp/kpg/inject_numeric_string.sh
  • Django_setting_folder/kpg_numeric_string.py
要点: 后缀数字字符串标识 Django 应用程序。 如果在该临时文件夹中生成了多个注入脚本,那么会看到相同数目的 kpg_numeric_string.py 文件。
通常,注入脚本执行以下作业:
  • 为每个 Django 应用程序备份原始 WSGI 设置文件。
  • 复制定制 WSGI 设置文件以覆盖原始文件
  • 将定制中间件移动到 Django 应用程序文件夹。
  • 为 Apache 服务器启用模块状态。
注入脚本还会生成卸载脚本,以帮助您从每个 Django 应用程序卸载中间件。
注: 多个注入脚本可能会包含启用 Apache 状态模块,但执行脚本时,模块只添加一次。
为了方便参考,可以对 Apache 服务器使用以下 stop 和 restart 命令:
  • Stop:apache_bin_directory/httpd -k graceful-stop
  • Restart:apache_bin_directory/httpd -k graceful