使用Opsview监控OpenStack Swift

用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_USERST_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

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏