我想监控 openstack 项目的配额级别使用情况,并且我需要能够监控网络、端口和路由器的当前和最大级别(来自 Python 代码)。
请注意,我说的是项目级访问权限,因此执行监控的用户不是开放堆栈管理员。
我能够成功读取 nova 指标(计算)的当前级别和最大级别,但对于与中子(网络)相关的那些,API 和命令行似乎只返回最大限制而不是当前级别。
自己测试很容易:
>openstack limits show --absolute
| totalFloatingIpsUsed | 0 | # broken, real value not 0
| maxTotalFloatingIps | 300 | # correct
...
# no network related limits reported at all
>openstack quota show
| floating-ips | 300 |
| networks | 200 |
| ports | 425 |
| routers | 200 |
| subnets | 200 |
...
# These are the MAX limits, not the current usage levels.
>nova limits
| Name | Used | Max |
+--------------------+-------+--------+
| Cores | 14 | 150 | # correct
| FloatingIps | 0 | 300 | # broken, real value is not 0
| Instances | 3 | 200 | # correct
| Keypairs | - | 100 | # broken, real value is not 0
| RAM | 28672 | 307200 | # correct
# As you c
>neutron quota-list
User does not have admin privileges: Only admin can view or configure quota
我应该提一下,Web 界面(水平)确实已经正确报告了浮动 IP。它似乎没有显示任何网络仪表。
该解决方案应该适用于 openstack kilo
(7) 版本或更新版本。
参考
- https://docs.openstack.org/admin-guide/cli-networking-advanced-quotas.html
- openstack 的 datadog 监控插件- 我想修复
- collectd openstack 插件- 过时了,可能会在 datadog 一个之后尝试修复它。