美文网首页
monitoror/monitoror 最轻量的监控大屏

monitoror/monitoror 最轻量的监控大屏

作者: LinkinStar | 来源:发表于2021-02-12 14:11 被阅读0次

    前言

    一提到监控大屏,那第一想法就是 grafana 对吧,各种样式图形都非常好看,而且支持各种数据源。而今天要分享的是一个更加轻量的监控大屏 monitoror/monitoror

    有了它能帮你快读构建一个的对于网站或者应用的监控页面,特别是在小应用数量多的时候非常简单易用,作为一个大屏展示时它我觉得它足够简洁

    image.png

    demo & repo

    https://demo.monitoror.com/

    https://github.com/monitoror/monitoror

    优点

    • 部署轻量

    • 配置简单

    • 大屏简洁

    部署

    二进制部署

    https://monitoror.com/documentation/get-started/

    非常简单,只需要将二进制文件下载,然后按照要求配置对应的配置文件,就可以了

    chmod +x monitoror
    ./monitoror
    

    配置文件.env

    MO_CONFIG="./config.json"
    

    配置文件config.json

    {
      "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 部署

    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 的配置很简单

    监控端口

    只需要填入对应的地址和端口即可

    {
      "type": "PORT",
      "label": "Welcome config example",
      "params": {
        "hostname": "127.0.0.1",
        "port": 8080
      }
    }
    

    监控HTTP

    只需要填入对应的地址,然后还可以做简单的处理,还有可能监控对应的 http code 状态码

    {
      "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 模块应该能直接抄过来吧。

    DINGDING

    地址:https://github.com/LinkinStars/monitoror/tree/add-notification

    可以直接拿下来编译使用,注意需要配置:.env 文件

    MO_CONFIG="./config.json"
    
    # 钉钉的 webhook 地址
    MO_MONITORABLE_DINGDING_WEBHOOK="https://oapi.dingtalk.com/robot/send?access_token=xxxxx"
    # 钉钉的 secret 如果不配置 secret 使用 monitoror 关键字应该也可以
    MO_MONITORABLE_DINGDING_SECRET="SECxxxxxx"
    

    当前通知规则:

    最大连续出错通知 3 次,超过这个次数不会继续通知,当服务恢复后计数清零,再次出现异常时会重新通知,同样是 3 次;(这个是临时设置的规则,等全部写完之后会抽离为配置或者调整为更加合适的规则)

    相关文章

      网友评论

          本文标题:monitoror/monitoror 最轻量的监控大屏

          本文链接:https://www.haomeiwen.com/subject/ezolxltx.html