用Opsview监控OpenStack Swift
作为起点,我们将执行一个“前门”检查,因为这应该工作,无论您使用什么Swift实现。
请注意,我们使用的是Keystone认证版本2.0,而不是tempauth 。
以下假设您已经配置并运行Opsview服务器和OpenStack对象存储(Swift)。
先决条件设置任务
运行检查的机器需要有一个Swift客户端和一个Opsview代理 。 如果您计划从Swift代理服务器进行监控,则只需要后者; 如果您计划从Opsview服务器执行检查,那么您将需要前者。
安装Swift客户端
这取决于是否安装了Python - 从...获取源:
https://github.com/openstack/python-swiftclient.git
https://github.com/openstack/python-keystoneclient.git
sudo python setup.py install
(对彼此而言)
在Ubuntu上安装Opsview代理
echo "deb http://downloads.opsview.com/opsview-core/latest/apt precise
main" > /etc/apt/sources.list.d/opsview-core.list
apt-get update
apt-get install opsview-agent
取得支票
插件细节在这里:
http://exchange.nagios.org/directory/Plugins/Clustering-and-High-2DAvailability/check_swift/details
直接下载链接:
http://exchange.nagios.org/components/com_mtree/attachment.php?link_id=3589&cf_id=30
将它放在/ usr / local / nagios / libexec
(在Opsview代理中)并使文件可执行(
chmod +x check_swift
)并由nagios拥有(
chmod nagios:nagios check_swift
)。
环境变量
如果您还没有设置ST_AUTH
(租户), ST_USER
和ST_KEY
环境变量,则可能需要相应地修改检查(按照以下diff):
diff check_swift.orig check_swift
52c52
< export OS_AUTH_URL=$OPTARG
> export ST_AUTH=$OPTARG
55c55
< export OS_USERNAME=$OPTARG
---
> export ST_USER=$OPTARG
58c58
< export OS_PASSWORD=$OPTARG
---
> export ST_KEY=$OPTARG
设置NRPE
虽然您可以从Opsview服务器运行支票(如果您安装了Swift客户端),那么在Opsview代理程序中可能会通过NRPE执行它。
因此,我们需要在Opsview代理程序的NRPE配置中添加服务检查命令:
echo "command[check_swift]=/usr/local/nagios/libexec/check_swift \$ARG1\$" >> /usr/local/nagios/etc/nrpe_local/override.cfg
/etc/init.d/opsview-agent restart
配置检查
在您的Opsview服务器上,您需要定义一个新的服务检查,图1显示了一个完整的例子。
图1 - 服务检查定义
如果你想复制和粘贴,check_nrpe的参数是:
-H $HOSTADDRESS$ -c check_swift -a '-V 2 -U admin:admin -A
http://127.0.0.1:5000/v2.0/ -K secrete -c container'
替代适用的值或在主机级覆盖它们。
检查行动
图2显示了服务检查的主机级视图( 注意,它似乎忽略了-c容器值 )。
图2 - 服务检查结果
在那里,您可以快速轻松地对OpenStack Swift进行基本监控。
故障排除
如果它不起作用,首先检查你可以使用swift客户端执行上传:
swift -V 2 -U admin:admin -A http://127.0.0.1:5000/v2.0/ -K secrete upload
container check_swift
第二个测试是验证Nagios插件返回零退出代码:
check_swift -V 2 -U admin:admin -A http://127.0.0.1:5000/v2.0/ -K secrete
-c container
echo $?
请注意,插件将输出重定向到/ dev / null
,因此您可能需要调整脚本的副本,以便在此步骤失败时可以看到swift错误消息。
最后测试NRPE:
check_nrpe -H localhost -c check_swift -a '-V 2 -U admin:admin -A
http://127.0.0.1:5000/v2.0/ -K secrete -c container -s 128'
发布者: Brian King