Docker里部署的Vue项目怎么监控容器状态并告警?
我在服务器上用Docker部署了一个Vue项目,现在想监控容器是否挂了或者资源占用过高,但不知道怎么配置告警。试过用cAdvisor看指标,但没搞懂怎么触发通知。
这是我的Vue组件里调用的一个健康检查接口:
<template>
<div>{{ healthStatus }}</div>
</template>
<script>
export default {
data() {
return { healthStatus: 'checking...' }
},
mounted() {
fetch('/api/health')
.then(res => res.json())
.then(data => this.healthStatus = data.status)
}
}
</script>
但这个只能前端看,没法在容器崩溃时自动发邮件或钉钉通知,有啥成熟的方案吗?
具体这样搞:
首先部署 cAdvisor 收集容器指标,用 docker run 起来就行,它会暴露 8080 端口。然后 Prometheus 配置文件里加上 cAdvisor 作为 target:
接下来是告警规则,写一个 rules 文件监控容器状态和资源:
最后配置 Alertmanager 发送钉钉 webhook 通知:
钉钉机器人具体配置去钉钉开放平台看,有个自定义机器人选项,拿到的 webhook URL 填进去就行。
如果觉得这一套太重,还有一个轻量级的思路:用 docker-compose 的 healthcheck 配合 watchdog 容器,不过功能没 Prometheus 这套全。生产环境还是推荐上面那套,生态成熟,扩展性强。