我想用sensucore来监视python脚本,但我很困惑如何去做。在
根据Sensu文档,这需要Sensu Checks。在提供的示例中,ruby脚本检查chef客户端是否正在运行:
#!/usr/bin/env ruby
# get the current list of processes
processes = `ps aux`
# determine if the chef-client process is running
running = processes.lines.detect do |process|
process.include?('chef-client')
end
# return appropriate check output and exit status code
if running
puts 'OK - Chef client process is running'
exit 0
else
puts 'WARNING - Chef client process is NOT running'
exit 1
end
如何对特定的脚本而不是应用程序实现这样的检查?也就是说,我将如何监视一个特定的python脚本(例如。测试.py)而不是一般的python?在
更一般地说,上面的脚本在运行的进程中搜索字符串
chef-client
。您可以将其替换为任何其他字符串,如test.py
,它将检测运行的程序是否在其名称中包含test.py
。(可能需要匹配子字符串test.py
如果用python test.py
运行程序,我不知道ruby。)我建议您使用Sensu process check plugin作为一个更通用的函数,它包含更多的定制。再看看另一个sensu plugins。在
为什么不监视脚本的预期结果或操作而不是进程本身呢。通常,我们将设置检查来监视一个端点(在web应用程序的情况下)或观察到的行为(如数据库中的消息),以确定应用程序是否正在运行。在
有时进程在技术上是运行的,但不是由于错误条件或资源问题而运行的。监视预期结果比监视进程要好得多。在
因此,我已经在sensu中为我的AWS Linux客户机成功地运行了一些python脚本,这是我的check定义的一个很好的例子:
python插件可以从定义shebang路径开始:
^{pr2}$相关问题 更多 >
编程相关推荐