Openstack RDO ceilometer 报警动作可以执行脚本吗?

Openstack RDO ceilometer alarm action can execute script?

是否可以使用命令 --alarm-action 'log: //' 来 运行 任何脚本或在 OpenStack 上创建 VM 实例,例如: 我可以做这样的事情吗

 $ ceilometer alarm-threshold-create --name cpu_high/\ --description 'instance running hot' --meter-name cpu_util  --threshold 70.0 --comparison-operator gt  --statistic avg   --period 600 --evaluation-periods 3   --alarm-action './script.sh'    --query resource_id=INSTANCE_ID

其中 --alarm-action './script.sh' 启动 script.sh

Ceilometer 操作无法 运行 脚本。

OpenStack API 的设计通常假设 运行执行客户端命令的人 (a) 是 运行远程执行它们,而不是在服务器本身上执行,并且 (b ) 不是系统管理员。特别是 (b) 意味着允许您在服务器上 运行 任意脚本将是一个可怕的安全问题,因为您首先需要一种方法来在服务器上安装脚本,然后需要一个防止您尝试 运行 的方法,例如 /sbin/reboot.

因此,云高仪动作需要 URL。您可以设置一个简单的网络服务器来接收来自云高仪的信号并执行脚本作为响应。

如果您使用 Heat 部署资源,您可以设置自动缩放组并让 ceilometer 警报触发自动缩放操作(例如,创建新服务器或删除服务器)。