Ceilometer 是 Openstack 的监控管理计费模块,我所用的版本为 Mitaka 版本。在 Ceilometer 中,可以使用 SNMP 监控服务器的实时硬件资源信息。
系统环境为 Centos 6.7。
安装 SNMP
sudo yum install -y net-snmp net-snmp-utils
修改 SNMP 配置文件
sudo vim /etc/snmp/snmpd.conf
默认的 snmpd.conf 如下:
# sec.name source community
com2sec notConfigUser default public
# groupName securityModel securityName
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser
# name incl/excl subtree mask(optional)
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1
# group context sec.model sec.level prefix read write notif
access notConfigGroup "" any noauth exact systemview none none
syslocation Unknown (edit /etc/snmp/snmpd.conf)
syscontact Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
dontLogTCPWrappersConnects yes
我所做的修改是:
- 添加多一个名为 all 的 view。
view all included .1
- 把 access 里的 read 权限改为 all。
access notConfigGroup "" any noauth exact all none none
当然修改方式并不唯一。
启动 SNMP 服务
sudo chkconfig snmpd on
sudo service snmpd start
修改 pipeline.yaml
sudo vim /etc/ceilometer/pipeline.yaml
在 pipeline.yaml 中的 meter_source 下添加 resources:
---
sources:
- name: meter_source
interval: 600
meters:
- "*"
resources:
- snmp://127.0.0.1
sinks:
- meter_sink
- name: cpu_source
interval: 600
meters:
- "cpu"
sinks:
- cpu_sink
- cpu_delta_sink
····
修改方式并不唯一。
运行
在启动了 keystone 认证服务及 ceilometer 的 API 服务后,运行 ceilometer-polling
以启动对物理机的轮询监控。
可能日志里会出现以下错误信息:
2016-08-25 04:54:02.097 44342 INFO ceilometer.agent.manager [req-71ccaf39-39a4-491a-8147-b395b224ec15 admin - - - -] Polling pollster switch.port in the context of meter_source
2016-08-25 04:54:02.097 44342 WARNING stevedore.named [req-71ccaf39-39a4-491a-8147-b395b224ec15 admin - - - -] Could not load snmp
2016-08-25 04:54:02.098 44342 WARNING ceilometer.agent.manager [req-71ccaf39-39a4-491a-8147-b395b224ec15 admin - - - -] Continue after error from switch.port: No 'network.statistics.drivers' driver found, looking for 'snmp'
2016-08-25 04:54:02.098 44342 ERROR ceilometer.agent.manager Traceback (most recent call last):
2016-08-25 04:54:02.098 44342 ERROR ceilometer.agent.manager File "/usr/local/lib/python2.7/site-packages/ceilometer/agent/manager.py", line 193, in poll_and_notify
2016-08-25 04:54:02.098 44342 ERROR ceilometer.agent.manager for sample in samples:
2016-08-25 04:54:02.098 44342 ERROR ceilometer.agent.manager File "/usr/local/lib/python2.7/site-packages/ceilometer/network/statistics/__init__.py", line 77, in get_samples
2016-08-25 04:54:02.098 44342 ERROR ceilometer.agent.manager ext = self.get_driver(parse_url.scheme)
2016-08-25 04:54:02.098 44342 ERROR ceilometer.agent.manager File "/usr/local/lib/python2.7/site-packages/ceilometer/network/statistics/__init__.py", line 70, in get_driver
2016-08-25 04:54:02.098 44342 ERROR ceilometer.agent.manager scheme).driver()
2016-08-25 04:54:02.098 44342 ERROR ceilometer.agent.manager File "/usr/local/lib/python2.7/site-packages/stevedore/driver.py", line 46, in __init__
2016-08-25 04:54:02.098 44342 ERROR ceilometer.agent.manager verify_requirements=verify_requirements,
2016-08-25 04:54:02.098 44342 ERROR ceilometer.agent.manager File "/usr/local/lib/python2.7/site-packages/stevedore/named.py", line 72, in __init__
2016-08-25 04:54:02.098 44342 ERROR ceilometer.agent.manager self._init_plugins(extensions)
2016-08-25 04:54:02.098 44342 ERROR ceilometer.agent.manager File "/usr/local/lib/python2.7/site-packages/stevedore/driver.py", line 98, in _init_plugins
2016-08-25 04:54:02.098 44342 ERROR ceilometer.agent.manager (self.namespace, name))
2016-08-25 04:54:02.098 44342 ERROR ceilometer.agent.manager NoMatches: No 'network.statistics.drivers' driver found, looking for 'snmp'
可以看到:
Continue after error from switch.port: No 'network.statistics.drivers' driver found, looking for 'snmp'
里的类似 switch.port
的字样,这是因为没有部署好 SDN 的原因,不用管。
结果
查看数据库,可以通过 resource 、meter 表单看到轮询到的资源信息。
meter 种类有以下: