是否有可能使用命令--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
。
因此,ceilometer操作需要是URL。您可以设置一个简单的web服务器,接收来自ceilometer的信号并执行一个脚本作为响应。
如果使用Heat部署资源,则可以设置自动缩放组,并让天花板报警器触发自动缩放操作(例如,创建新服务器或删除服务器(。