NetBox的PDU信息展示插件。
项目描述
Netbox PDU插件
Netbox的插件,用于获取配电单元信息。
axians-netbox-plugin-pdu
使用 Easy SNMP、Django-RQ 和 RQ-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实例
编辑PDUConfig实例
查看PDUStatus设备视图
查看PDUStatus机架视图
贡献
欢迎Pull requests。
项目包含一个基于docker-compose
的轻量级开发环境,以帮助项目的本地开发。
- Black、Pylint、Bandit和pydockstyle用于Python代码检查和格式化。
- Django单元测试以确保插件正常运行。
CLI辅助命令
项目包含一个基于invoke的CLI辅助工具,以帮助设置开发环境。命令分为以下3个类别:dev environment
、utility
和testing
。
每个命令都可以使用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 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 63dc38349daee03b33f75cea8e91920af1f9c9de940eca96f48d39dcb394c74d |
|
MD5 | 57c39f1819302eb7abfa4e9bf8a4c3f3 |
|
BLAKE2b-256 | a3bc0b1db10b9e62a54249bf067f34567207b8701d4dc807e95744dd43fc2a47 |
axians_netbox_plugin_pdu-0.0.3-py3-none-any.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a147af7466914f41ef876156562749050570372172ece5c1099b834cc4448bb9 |
|
MD5 | 47b0a3e5ebed3bda695db6ce09be584d |
|
BLAKE2b-256 | 61ae12586df5cc6745e661ac352a7008d3778864f6384a587142a5863c2e32a0 |