一提到监控大屏,那第一想法就是 grafana 对吧,各种样式图形都非常好看,而且支持各种数据源。而今天要分享的是一个更加轻量的监控大屏 monitoror/monitoror
有了它能帮你快读构建一个的对于网站或者应用的监控页面,特别是在小应用数量多的时候非常简单易用,作为一个大屏展示时它我觉得它足够简洁
demo & repo
https://demo.monitoror.com/
https://github.com/monitoror/monitoror
优点
部署
二进制部署
https://monitoror.com/documentation/get-started/
非常简单,只需要将二进制文件下载,然后按照要求配置对应的配置文件,就可以了
1 2
| chmod +x monitoror ./monitoror
|
配置文件.env
1
| MO_CONFIG="./config.json"
|
配置文件config.json
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| { "version": "2.0", "columns": 2, "tiles": [ { "type": "PORT", "label": "Welcome config example", "params": { "hostname": "127.0.0.1", "port": 8080 } }, { "type": "HTTP-RAW", "label": "Monitoror stars", "params": { "url": "https://github.com/monitoror/monitoror", "regex": "(\\d+) users starred" } } ] }
|
k8s 部署
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| apiVersion: apps/v1 kind: Deployment metadata: name: monitoror namespace: monitoror labels: app: monitoror spec: replicas: 1 selector: matchLabels: app: monitoror template: metadata: labels: app: monitoror spec: containers: - name: monitoror image: monitoror/monitoror:latest env: - name: MO_CONFIG value: "/conf/monitoror.json" volumeMounts: - name: config-volume mountPath: "/conf" ports: - name: web containerPort: 32000 resources: limits: cpu: 100m memory: 200Mi volumes: - name: config-volume configMap: name: monitoror-config items: - key: monitoror.json path: monitoror.json
|
其中需要注意的就是配置文件 configmap 挂载的位置
还有环境变量 MO_CONFIG 需要指定对应的配置文件路径
配置
https://monitoror.com/documentation/#configuration
monitoror 的配置很简单
监控端口
只需要填入对应的地址和端口即可
1 2 3 4 5 6 7 8
| { "type": "PORT", "label": "Welcome config example", "params": { "hostname": "127.0.0.1", "port": 8080 } }
|
监控HTTP
只需要填入对应的地址,然后还可以做简单的处理,还有可能监控对应的 http code 状态码
1 2 3 4 5 6 7 8
| { "type": "HTTP-RAW", "label": "Monitoror stars", "params": { "url": "https://github.com/monitoror/monitoror", "regex": "(\\d+) users starred" } }
|
多平台
https://monitoror.com/guides/
甚至可以将这个安装到树莓派上去,这个就很有意思了,因为轻量的关系,这个作为一个监控随便插到哪里,还蛮有意思的
总结
如果你需要最快速的搭建一个可用的监控大屏,或许这就是一个不错的选择;当然如果你需要更多的数据监控,需要一些流量数值等等还需要一些图表,那么或许它还没有那么强大。
后记
当前这个监控还没有通知模块,也就是说,也只能大屏盯着看,emmm…,这个还是有点小鸡肋的,因为确实不可能一直盯着看。当然已经有人提 issue 了,但是官方的 roadmap 里面还没有这个计划,于是我自己先加了一个钉钉的监控意思一下,这样至少能保证出现问题的时候有个反应提醒。比较隔壁的 grafana 做了那么久 alert 模块应该能直接抄过来吧。
地址:https://github.com/LinkinStars/monitoror/tree/add-notification
可以直接拿下来编译使用,注意需要配置:.env 文件
1 2 3 4 5 6
| MO_CONFIG="./config.json"
MO_MONITORABLE_DINGDING_WEBHOOK="https://oapi.dingtalk.com/robot/send?access_token=xxxxx"
MO_MONITORABLE_DINGDING_SECRET="SECxxxxxx"
|
当前通知规则:
最大连续出错通知 3 次,超过这个次数不会继续通知,当服务恢复后计数清零,再次出现异常时会重新通知,同样是 3 次;(这个是临时设置的规则,等全部写完之后会抽离为配置或者调整为更加合适的规则)