跳转到主要内容

NetBox的PDU信息展示插件。

项目描述

Netbox PDU插件

Netbox的插件,用于获取配电单元信息。

axians-netbox-plugin-pdu 使用 Easy SNMPDjango-RQRQ-Scheduler 在Netbox内显示PDU信息。

安装

该插件作为Python包在PyPI上可用,可以使用pip安装

pip install axians-netbox-plugin-pdu

该插件与NetBox 2.9.1及以上版本兼容

安装后,需要在您的 configuration.py 中启用该插件

PLUGINS = ["axians_netbox_pdu"]

# PLUGINS_CONFIG = {
#   "axians_netbox_pdu": {
#     ADD YOUR SETTINGS HERE
#   }
# }

可以通过以下设置列表更改以下默认设置

  • schedule: 布尔型(默认True)。如果为True,这将启用对您的PDU设备的自动轮询。
  • schedule_interval: 整数(默认300秒)。每次计划轮询之间的时间长度。
  • snmp_read: 字符串(默认public)您的启用了SNMP的PDU的SNMP读取值。
  • snmp_write: 字符串(默认private)您的启用了SNMP的PDU的SNMP写入值。
  • rack_view_pdu_devices: 布尔型(默认True),如果为True,则每个PDU的功耗将在机架页面上显示。
  • rack_view_usage_summary: 布尔型(默认True),如果为True,则在机架页面中显示一个摘要信息瓷砖,以显示机架内的实际功耗。
  • rack_view_summary_unit: 字符串(默认为瓦特),选项可在机架摘要视图中显示瓦特/千瓦。如果使用“千瓦”,则功率使用摘要将显示为千瓦。

使用方法

准备

要使此插件工作,必须在您的Netbox安装中添加一个新的工作进程。新的工作进程是一个自定义调度器,它将安排PDU任务按间隔运行并利用django-rq库。

您可以通过通过axians_netbox_pdu API向Netbox提供功率使用信息来使用此库而无需自动任务。

默认环境

对于标准安装,请使用包含的netbox-pdu.service并使用标准Netbox文档进行安装。

Docker环境

要在Docker中使用,请确保运行以下命令的容器正在运行:python manage.py pduschedule

添加新的PDU配置

一旦安装并运行了pduscheduler,您可以将PDUConfig附加到DeviceType。为此,您必须配置具有PowerOutlets的DeviceType。您可以指定DeviceType、PDU SNMP OID和单位。这使插件能够知道针对每个DeviceType收集哪个SNMP OID。

现在已创建PDUConfig,必须创建具有管理IP的设备。一旦完成,插件可以通过SNMP轮询PDU并保存功率使用。

这也可以通过批量导入或通过API完成。

如果没有为DeviceType创建PDUConfig并且设备没有主IP,则不会收集数据。

API

插件包括多个端点来管理PDUConfig和PDUStatus。

GET       /api/plugins/pdu/pdu-config/         List PDUConfig
POST      /api/plugins/pdu/pdu-config/         Create PDUConfig
PATCH/PUT /api/plugins/pdu/pdu-config/{id}/    Edit a specific PDUConfig
DELETE /api/plugins/pdu/pdu-config/{id}/       Delete a specific PDUConfig

GET       /api/plugins/pdu/pdu-status/         List PDUStatus
POST      /api/plugins/pdu/pdu-status/         Create PDUStatus
PATCH/PUT /api/plugins/pdu/pdu-status/{id}/    Edit a specific PDUStatus
DELETE /api/plugins/pdu/pdu-status/{id}/       Delete a specific PDUStatus

屏幕截图

PDUConfig实例列表 PDUConfig List View

导入PDUConfig实例 PDUConfig Import View

编辑PDUConfig实例 PDUConfig Edit View

查看PDUStatus设备视图 PDUStatus Device View

查看PDUStatus机架视图 PDUStatus Rack View

贡献

欢迎Pull requests。

项目包含一个基于docker-compose的轻量级开发环境,以帮助项目的本地开发。

  • Black、Pylint、Bandit和pydockstyle用于Python代码检查和格式化。
  • Django单元测试以确保插件正常运行。

CLI辅助命令

项目包含一个基于invoke的CLI辅助工具,以帮助设置开发环境。命令分为以下3个类别:dev environmentutilitytesting

每个命令都可以使用invoke <command>执行。所有命令都支持--netbox-ver--python-ver参数,如果您想手动定义要使用的Python和Netbox版本。每个命令也都有自己的帮助信息invoke <command> --help

本地开发环境

  build            Build all docker images.
  debug            Start NetBox and its dependencies in debug mode.
  destroy          Destroy all containers and volumes.
  start            Start NetBox and its dependencies in detached mode.
  stop             Stop NetBox and its dependencies.

实用工具

  cli              Launch a bash shell inside the running NetBox container.
  create-user      Create a new user in django (default: admin), will prompt for password.
  makemigrations   Run Make Migration in Django.
  nbshell          Launch a nbshell session.

测试

  tests            Run all tests for this plugin.
  pylint           Run pylint code analysis.
  pydocstyle       Run pydocstyle to validate docstring formatting adheres to NTC defined standards.
  bandit           Run bandit to validate basic static code security analysis.
  black            Run black to check that Python files adhere to its style standards.
  unittest         Run Django unit tests for the plugin.

项目详情


下载文件

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

源分布

axians-netbox-plugin-pdu-0.0.3.tar.gz (17.1 kB 查看哈希值)

上传于

构建版本

axians_netbox_plugin_pdu-0.0.3-py3-none-any.whl (26.3 kB 查看哈希)

上传于 Python 3

由以下支持