我自己的服务器上有一个服务器应用程序,它依赖于由第三方维护的另一台服务器上运行的远程 MySQL db。我如何监控他们的 bd 何时工作,何时不工作?我希望我已经部署的 Prometheus 能够抓取它,但我无法在他们的机器上安装导出器。是否有某种适用于 Prometheus 的 mysql pinger 之类的东西?如果没有,也许还有其他方法?
答案1
当我需要监控远程 MySQL 实例时,绑定到数据库的简单脚本对我来说很有用。我更喜欢 Python,因为它可以很好地与我的监控系统集成,但任何绑定到数据库并执行简单查询的脚本都可以。我喜欢使用SELECT NOW()
,但实际对数据集运行查询可能会有所帮助。
下面是我用来确保远程服务器启动的脚本的粗略示例:
#!/usr/bin/python
import MySQLdb as mdb
import sys
try:
con = mdb.connect('Your Remote Host', 'DB User', 'DB Password', 'DB Name');
cur = con.cursor()
cur.execute("SELECT NOW()")
ts= cur.fetchone()
## Query was successful
print "Today's date : %s " % ts
except mdb.Error, e:
## Something failed, add logic to catch errors here
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit(1)
finally:
if con:
con.close()