是否有可能使用命令--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
答案 0 :(得分:0)
Ceilometer操作无法运行脚本。
OpenStack API通常是在假设运行客户端命令的人(a)远程运行它们而不是服务器本身的情况下设计的,并且(b)不是系统的管理员。特别是(b)意味着允许您在服务器上运行任意脚本将是一个可怕的安全问题,因为您首先需要一种方法来在服务器上安装脚本,然后需要一种方法来阻止您试图运行,比如/sbin/reboot
。
因此,云高仪动作需要是URL。您可以设置一个简单的Web服务器,它将从云高仪接收信号并执行脚本作为响应。
如果使用Heat部署资源,则可以设置自动缩放组并让云高仪警报触发自动缩放操作(例如,创建新服务器或删除服务器)。